POPULARITY
Eventy stanowią naturalny sposób komunikacji w systemach rozproszonych. Jednak przesyłanie i dalsze przetwarzanie zdarzeń z jednego systemu do drugiego zazwyczaj wymaga określonej infrastruktury i wprowadza do systemu nowy rodzaj złożoności. Zawodność przesyłania danych, unikanie wielokrotnego przetwarzania tych samych wiadomości, zapewnianie kolejności ich przetwarzania czy odpowiedniej wydajności całej aplikacji - to tylko niektóre z czekających tu wyzwań.Dziś zapraszam na rozmowę o message brokerach i event-streamingu. Wraz z dzisiejszym gościem, Piotrem Gankiewiczem, rozmawiamy między innymi o:różnicach pomiędzy message-brokerami a platformami do event-streamingu,wykorzystywanej w obu przypadkach terminologii,zrównoleglaniu procesów i zapewnianiu odpowiedniego porządku przetwarzania pochodzących ze strumieni zdarzeń.Zapraszam!Materiały dodatkowe:Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, Martin Kleppmann, 2015Distributed Systems lecture series, playlista materiałów na temat projektowania systemów rozproszonychBuilding a Distributed Log from Scratch, seria artykułów na temat tworzenia systemów rozproszonychThe Consistent Hash Exchange, artykuł na temat opisywanego w odcinku algorytmu przypisywania konsumerów w RabbitMQOrdering Distributed Events, artykuł Vaidehi Joshi na temat porządkowania zdarzeńDistributed Systems: Time and order, teoria porządkowania w systemach rozproszonychYou Cannot Have Exactly-Once DeliveryZapraszam także do odwiedzenia:Iggy.rs, strona domowa projektu IggyPiotr@GithubPiotr@X / Twitter
Who's ever had to deal with burnout? In this episode, we are joined by two guests, Vaidehi Joshi, and Eli to share their experiences dealing with burnout. We all share how burnout has shown up for us throughout our careers and how we've found ways to deal with it or prevent it. Guests: Vaidehi Joshi - @vaidehijoshi Eli Fitch - @EliFitch Panelists: Ryan Burgess - @burgessdryan Jem Young - @JemYoung Shirley Wu - @sxywu Picks: Vaidehi Joshi - Geo Guesser Vaidehi Joshi - Opal Vaidehi Joshi - Hundred Foot Wave Vaidehi Joshi - Watch the sound Vaidehi Joshi - Vipassana Meditation Eli Fitch - Drive to Survive Eli Fitch - Going to therapy Ryan Burgess - Money Heist - Part 5 Ryan Burgess - Austin Maples - Nothing to Lose Jem Young - Basecs podcast Jem Young - Inside Jem Young - Working hours in Slack Jem Young - 2020 in memoriam: Tiger King, Animal crossing Shirley Wu - Burnout: The Secret to Unlocking the Stress Cycle by Amelia Nagoski and Emily Nagoski Shirley Wu - Alice Lee & Amy Wibowo: Making Art, Breaking Hearts Shirley Wu - Alice Lee & Amy Wibowo: Animal Crossing planters Shirley Wu - Yamazaki Home
Vaidehi Joshi stops into the café to help fix the temporal stabilizer, and stays to chat with Jason and Bojan about teaching, teams, and where bugs come from in the first place.
In this episode, we talk about our 2021 Forem Roadmap with Lisa Sy, lead product designer at Forem, and Vaidehi Joshi, lead software engineer at Forem. Show Notes DevNews (sponsor) CodeNewbie (sponsor) RudderStack (sponsor) Cloudways (sponsor) Cockroach Labs (sponsor) DEV Forem
In this episode, we talk about a huge update to C++, TikTok’s algorithm and Oracle partnership, and NVIDIA’s Arm acquisition. We then chat with senior engineer at Forem and rotating co-host of DevNews, Vaidehi Joshi, about Google’s carbon footprint, and the environmental impact of our data. Show Notes DevDiscuss (sponsor) Triplebyte (sponsor) CodeNewbie (sponsor) Vonage (sponsor) C++20 Approved Treasury Secretary Steven Mnuchin on Oracle winning bid for TikTok’s U.S. assets Inside TikTok's killer algorithm It’s Official- NVIDIA Acquires Arm For $40 Billion To Create What Could Be A Computing Juggernaut Save Arm Our third decade of climate action: Realizing a carbon-free future The Cost of Data with Vaidehi Joshi Cloud Sustainability Console thecostofdata.dev The State of Data Center Energy Use in 2018
Vaidehi Joshi — Twitter, GitHub, Websitechantastic — Twitter, GitHub, WebsiteLinksbasecs.org — Exploring the basics of computer science, every Monday, for a yearbaseds.org — Exploring the basics of distributed systems, every alternate Wednesday, for a yearReact Component Patterns by chantastic (2017 — when I still used "dumb" inappropriately)Bits, Binary, and Bytes — basecs podcast where Vaidehi and Saron Yitbarek talk binaryCompressing Radix Trees Without (Too Many) Tears — The most difficult post in the seriesVaidehi on dev.toBaseCS Video series and dev.toBaseCS Season 2 series on dev.toByte Sized Season 1 series on dev.toSponsorsRetoolBuild internal tools, remarkably fast with Retool.Connect to anything with an API. Drag-and-drop React components.Write JS anywhere.Learn more at retool.com/reactpodcastInfinite RedIn over your head with a React or React Native app?Infinite Red can help.They are React Native core contributors who've been designing, building and shipping apps for over 10 years.Learn more at reactpodcast.infinite.red.Get involvedBlack Lives MatterPlease join us in donating to the Equal Justice Initiative
DevNews is the second original podcast by DEV, a global community of software developers of all backgrounds and experience levels. DevNews is the news show for developers by developers, hosted by Saron Yitbarek, founder of CodeNewbie, and DEV senior engineers Josh Puetz and Vaidehi Joshi. Each season these experienced devs cover the latest in the world of tech, and speak with diverse guests from a variety of backgrounds to dig deep into meaty topics such as security, the pros and cons of outsourcing your authentication, and the latest bugs and hacks. Show Notes DevDiscuss (sponsor) Triplebyte (sponsor) CodeNewbie (sponsor) Vonage (sponsor)
Ruby is a scripting language created in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan. It's popularity surged in Japan by 2000, which was also when the first English language book about the language, Programming Ruby was printed. After that, Ruby had its sunrise and sunset in terms of favor amongst developers, but continues to have a robust community of users. In this episode, we talk about the history of the language, some of its benefits and pitfalls, and why we continue to use it at DEV, with Vaidehi Joshi, senior software engineer at DEV, and James Harton, software engineer at Balena, and author of the 2018 DEV post, "Please stop using Ruby." Show Notes DevNews (sponsor) Triplebyte (sponsor) CodeNewbie (sponsor) RudderStack (sponsor) GitHub Distributed system Ruby Balena Please stop using Ruby Please keep using Ruby Rails Ruby New Zealand Yukihiro "Matz" Matsumoto Rust Elixir MINASWAN JavaScript Open source https://elm-lang.org/ Duck typing Node Shopify Stripe COBOL Go Java The Odin Project reddit PHP Crystal Base.cs Python C Perl Smalltalk
01:47 - Vaidehi’s Superpower: Learning new things and teaching them to other people * Teaching Things Helps YOU Learn * Deciding on Things to Learn 05:01 - Approaching Learning * Reading * Relating Things to Things Already Known * Ask Yourself, “Why do I need to know this?” * Tricks for Reading Papers * Read the Abstract & Conclusion * Pick Fights with the Paper * Using Tutorials * Accountability & Motivation * Learning with Others * Unraveled (https://www.youtube.com/playlist?list=PLaDrN74SfdT7Ueqtwn_bXo1MuSWT0ji2w) * Hermeneutic Circle (https://en.wikipedia.org/wiki/Hermeneutic_circle) 20:15 - Having Aha! Moments & Epiphanies: Brain Percolation * Russell Ackoff (https://en.wikipedia.org/wiki/Russell_L._Ackoff) * Absolution * Resolution * Solution * Dissolution * Paradoxes 32:02 - Technologists Are Good Storytellers 39:03 - Improving Over Time and Doing Your Best * Hindsight Bias (https://en.wikipedia.org/wiki/Hindsight_bias) * Blameless Retrospectives: Accountability 47:55 - Creating Spaces for People to Succeed * Manager Training * “Managing Up”: The Phrase – meh 52:58 - Effective Mentorship * Mentorship vs Sponsorship * Trust * Lara Hogan (https://larahogan.me/) Reflections: Jamey: Incremental learning and progress – biting off small chunks and not beating ourselves up while learning. It’s not a waste of time to just do a little at a time. Rein: Soft skills are technical skills. Vaidehi: It’s hard to measure and quantify these things. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Special Guest: Vaidehi Joshi.
For our final episode, we answer your burning questions including the Base.cs origin story, Saron and Vaidehi's favorite niche data structure, and what are some good resources to check out next. We also take a look back at some of our favorite moments from the show's history, and find a couple of fun themes. Based on Vaidehi Joshi's blog post, "Base.cs".
We've been talking a lot about the differences between compilers and interpreters, and how both of them work, and the ways that allowed one — the compiler — to lead to the creation of the other — the interpreter. Now we get into the Just In Time compiler, or a JIT, which is fusion or combination of the interpreter and the compiler, which are each two types of translators in their own right. A just-in-time compiler has many of the benefits of both of these two translation techniques, all rolled up into one. Based on Vaidehi Joshi's blog post, "A Most Perfect Union: Just-In-Time Compilers".
We have been talking a lot about compilers, and in this episode we discuss the differences between compilation versus interpretation. An interpreter is also a translator, just like a compiler, in that it takes a high level language (our source text) and converts it into machine code. However, it does something slightly different: it actually runs and executes the code that it translates immediately (inline) as it translates. Based on Vaidehi Joshi's blog post, "A Deeper Inspection Into Compilation And Interpretation".
In this episode, we take our parse tree, an illustrated, pictorial version of the grammatical structure of a sentence, and we take a metaphorical broom to sweep away repetitive bits, sliming it down, and leveling it up by creating an abstract syntax tree (AST). Based on Vaidehi Joshi's blog post, "Leveling Up One’s Parsing Game With ASTs".
In this episode, we get into what a compiler is and does. In short, a compiler is a program that reads our code (or any code, in any programming language), and translates it into another language. You'll want to listen in to find out just how it does this! Based on Vaidehi Joshi's blog post, "Reading Code Right, With Some Help From The Lexer".
In this episode, we get into parse trees, an illustrated, pictorial version of the grammatical structure of a sentence, which is important to understanding how computers understand coding syntax. Based on Vaidehi Joshi's blog post, "Grammatically Rooting Oneself With Parse Trees".
We continue our journey with the Traveling Salesman Problem (TSP), where this we imagine a salesperson has to travel to every single city in an area, visiting each city only once. Additionally, they need to end up in the same city where they starts their journey from, and do this in the most efficient manner. However, in this episode, we are going to speed our salesperson up by using a bottom-up approach! Based on Vaidehi Joshi's blog post, "The Trials And Tribulations Of The Traveling Salesman".
We start our season off with something that often pops up in technical interviews: the Traveling Salesman Problem (TSP). In this problem, a salesperson has to travel to every single city in an area, visiting each city only once. Additionally, they need to end up in the same city where they starts their journey from. Find out how to make our salesperson do this in the most efficient way possible! Based on Vaidehi Joshi's blog post, "The Trials And Tribulations Of The Traveling Salesman".
In this last episode of the season we continue our discussion of dynamic programming, and show just how efficient it can be by using the Fibonacci sequence! Based on Vaidehi Joshi's blog post, "Less Repetition, More Dynamic Programming".
In this episode we talk about different paradigms and approaches to algorithmic design: the Divide and Conquer Algorithm, the Greedy Algorithm, and the Dynamic Programming Algorithm, which remembers the subproblems that it has seen and solved before so as not to repeat doing the same thing over again. Based on Vaidehi Joshi's blog post, "Less Repetition, More Dynamic Programming".
We continue our talk about Dijkstra's algorithm, which can be used to determine the shortest path from one node in a graph to every other node within the same graph data structure, provided that the nodes are reachable from the starting node. Based on Vaidehi Joshi's blog post, "Finding The Shortest Path, With A Little Help From Dijkstra".
In this episode, we talk about Dijkstra's algorithm, which can be used to determine the shortest path from one node in a graph to every other node within the same graph data structure, provided that the nodes are reachable from the starting node. It's super important, and you'll see why when you learn about the weighted graph! Based on Vaidehi Joshi's blog post, "Finding The Shortest Path, With A Little Help From Dijkstra".
We end our section of the DFS algorithm with a discussion on DAGs (directed acyclic graphs), because most implementations of depth-first search will check to see if any cycles exist, and a large part of that is based on the DFS algorithm checking to see whether or not a graph is a directed acyclic graph. DAGs are also somewhat infamous in computer science because they’re pretty much everywhere in sofware. For example, a directed acyclic graph is the backbone of applications that handle scheduling for systems of tasks or handling jobs — especially those that need to be processed in a particular order. So let's dig into DAGs! Based on Vaidehi Joshi's blog post, "Spinning Around In Cycles With Directed Acyclic Graphs".
Throughout our exploration of graphs, we’ve focused mostly on representing graphs, and how to search through them. We also learned about edges, the elements that connect the nodes in a graph. In this episode, we look at the different classifications of edges and how, in the context of a graph, edges can be more than just “directed” or “undirected”. Based on Vaidehi Joshi's blog post, "Spinning Around In Cycles With Directed Acyclic Graphs".
Last episode, we talked about traversing through a graph with the depth-first search (DFS) algorithm, which helps us determine one (of sometimes many) paths between two nodes in the graph by traversing down one single path until we can't go any further, checking one child node at a time. Now we talk about how you code BFS and what tools might you use. Based on Vaidehi Joshi's blog post, "Deep Dive Through A Graph: DFS Traversal".
We ended last season by starting our discussion of searching, or traversing, through a graph with breadth-first search (BFS). The breadth-first search algorithm traverses broadly into a structure, by visiting neighboring sibling nodes before visiting children nodes. Now we begin our new season with depth-first search (DFS), which also helps us determine one (of sometimes many) paths between two nodes in the graph, but this time by traversing down one single path in a graph, until we can't go any further, checking one child node at a time. Based on Vaidehi Joshi's blog post, "Deep Dive Through A Graph: DFS Traversal".
In this episode, we start our discussion of searching, or traversing, through a graph with breadth-first search (BFS). The breadth-first search algorithm traverses broadly into a structure, by visiting neighboring sibling nodes before visiting children nodes. The power of using breadth-first search to traverse through a graph is that it can easily tell us the shortest way to get from one node to another, which you'll experience first hand by brining muffins to your neighbors! Based on Vaidehi Joshi's blog post, "Going Broad In A Graph: BFS Traversal".
In this episode, we continue our discussion of representing graphs with adjacency lists -- a hybrid between an edge list and an adjacency matrix, which we learned about last episode! They are also the most popular and commonly-used representation of a graph. Based on Vaidehi Joshi's blog post, "From Theory To Practice: Representing Graphs".
Graphs come from mathematics, and are nothing more than a way to formally represent a network, which is a collection of objects that are all interconnected (this is all stuff you should already know if you have been religiously listening to this podcast, which you should be). Now we're going from theory to practice and talking about how to represent graphs. Based on Vaidehi Joshi's blog post, "From Theory To Practice: Representing Graphs".
In last episode, we talked about 2-3 trees, where the nodes of every tree contain data in the form of keys, as well as potential child nodes, and can contain more than one key. This takes us to b-trees, which is a generalized version of the 2-3 tree, and are super efficient for storing data in an indexed database, like MySQL. Based on Vaidehi Joshi's blog post, "Busying Oneself With B-Trees".
We continue our discussion of tree data structures with 2-3 trees, where the nodes of every tree contain data in the form of keys, as well as potential child nodes. Not only that, but it can contain MORE THAN ONE KEY. They are also the -key- to what we'll be talking about next episode, B-trees, and you won't tree-lieve how cool those are. Based on Vaidehi Joshi's blog post, "Busying Oneself With B-Trees".
In this episode, we are looking at a different type of self-balancing tree: red-black trees. By following four very important rules while we paint our tree red and black, we can make it not only self-balancing, but also make it run super efficiently in logarithmic time. Based on Vaidehi Joshi's blog post, "Painting Nodes Black With Red-Black Trees".
Last episode, we learned about AVL trees, a type of self-balancing binary search tree that follows a golden rule: no single leaf in the tree should have a significantly longer path from the root node than any other leaf on the tree. In this episode, we learn about a pattern that we can use to programmatically figure out the minimum number of nodes we’ll need to create any given height-balanced AVL tree, which leads us to the Fibonacci sequence, and relates to the "golden ratio" you might know about from fine art! Trust us, this is really neat stuff. Based on Vaidehi Joshi's blog post, "Finding Fibonacci In Golden Trees".
When you're dealing with data structures like trees, the balance of its "leaves" (data/nodes) matters. The moment a tree becomes unbalanced, it loses its efficiency, much like a real life tree bending to the weight of one side, unable to efficiently stand tall and grab the light of the sun. Don't let your garden grow full of lopsided saplings, and make sure to plant some AVL trees--your efficient runtime hangs in the balance. Based on Vaidehi Joshi's blog post, "The Little AVL Tree That Could".
In this episode, we continue our talk on Radix Trees and introduce the Practical Algorithm To Retrieve Information Coded In Alphanumeric trees, also known as PATRICIA trees. Yeah, I think we'll just stick with calling them PATRICIA trees. Based on Vaidehi Joshi's blog post, "Compressing Radix Trees Without (Too Many) Tears".
In this episode, join us as we adventure into the safari that is radix trees, where parent nodes eat their offspring nodes as they chomp them down and compress. Don't worry, with all of this new added space in the trie(b), they'll more efficiently keep their children's memory alive. Based on Vaidehi Joshi's blog post, "Compressing Radix Trees Without (Too Many) Tears".
In this episode we continue our talk on pies and tries, and how this data structure is used to power such things as auto-complete! Based on Vaidehi Joshi's blog post, "Trying to Understand Tries".
In this episode we go through some trie-als and tribulations to retrieve and build words using tries! Based on Vaidehi Joshi's blog post, "Trying to Understand Tries".
Vaidehi is a Staff Software Engineer at Tilde and creator of content series like BaseCS and BaseDS. She has built a career around educating others while building software. Vadehi and I discuss her experiences transitioning from a writing career, stepping into the dev community spotlight, and her strategies for self-improvement. Vaidehi's internet home: https://twitter.com/VaidehiJoshi
This episode we're diving into radix sort! The word has no relation to Raid, so it is definitely non-toxic and you don't have to bug out. It IS, however, a great integer sorting algorithm, and the first one at that! Based on Vaidehi Joshi's blog post, "Getting To The Root Of Sorting With Radix Sort".
You may have noticed that it's really hard to sort things efficiently. Well, that's where counting sort comes in! Based on Vaidehi Joshi's blog post, "Counting Linearly With Counting Sort".
We've gotten acquainted with heaps as arrays, now we're diving into heap sort with some help from a few condiments! Based on Vaidehi Joshi's blog post, "Heapify All The Things With Heap Sort".
So we've talked about heaps, but how do you represent heaps as arrays? And why would you want to? We break it down step by step! Based on Vaidehi Joshi's blog post, "Learning to Love Heaps".
Vaidehi Joshi found that many resources on the web about core computer science concepts she wanted to know more about were either too obtuse or too academic. She started a blog, basecs, where she wrote down something she had learned that week--every week--for an entire year. While learning something new in and of itself was a delight, her curiosity led her to question how people learn best. She discusses the Feynman Technique, which, through a processes of iteratively explaining a concept to someone who doesn't know anything about it, strengthens the knowledge for both the student and the teacher. The best way to do this is by telling a narrative. It keeps the listener engaged, while also serving as a way of identifying gaps in ones' own understanding, as new questions arise. Links from this episode basecs and baseds are two of Vaidehi's websites which teach concepts about computer science and distributed systems The Feynman Technique: The Best Way to Learn Anything
Now that you've got your heap, what do you do with it? Shrink and grow it of course! We talk about how to add and remove values from a heap with the help of a few cats. Based on Vaidehi Joshi's blog post, "Learning to Love Heaps".
In this episode Aaron Patterson joins our own developer advocate Jonan Scheffler to discuss his experiences as an open source developer within GitHub, and explains how he manages to balance his work as a member of the Ruby and Rails core teams with his other responsibilities. Aaron is the only member of both the Ruby and Rails core teams, and he's been working with Rails since 2005 when his friends attended the No Fluff Just Stuff (NFJS) Pacific Northwest Software Symposium and heard Dave Thomas speak.(1) In discussing his path to becoming a Ruby developer, Aaron walks through his time working with Perl and Java, covering language regular expression engines (PCRE, Oniguruma, POSIX), the joy he felt in finding Ruby, and how falling in love with Ruby eventually forced him to become a C programmer. Later in the episode Aaron offers some advice to aspiring open source developers and discusses the future of Ruby, along with some features he would like to see around deep freezing data structures(2) and concurrency/parallelism(3). If you’d like to learn more about Ruby development and how you can contribute, please visit https://bugs.ruby-lang.org. Links from this episode Dave Thomas "Ruby on Rails" talk abstract from NFJS PNW Software Symposium Vaidehi Joshi explains frozen hashes in Ruby Rob Pike explains concurrency and parallelism at Waza 2012:
What are heaps? How are they related to binary trees? We use losers, winners, and some cards to help us get to the bottom of heaps! Based on Vaidehi Joshi's blog post, "Learning to Love Heaps".
How does quicksort perform? And how do variables, like the pivot number, affect it? We walk through three examples to find out! Based on Vaidehi Joshi's blog post, "Pivoting To Understand Quicksort [Part 2]".
We learn all about our second "divide and conquer" algorithm, quick sort! We walk through how it works with help from a queendom, a few pointers, and a very helpful pivot number. Based on Vaidehi Joshi's blog post, "Pivoting To Understand Quicksort [Part 1]".
Finally, a sorting algorithm that doesn't suck! We explore how merge sort works and why it performs better than insertion, bubble, and selection sort. Based on Vaidehi Joshi's blog post, "Making Sense of Merge Sort ".
We dig into how insertion sort works, how we know where to do our inserting, and how this sorting algorithm performs, all with the help of our new boos. Based on Vaidehi Joshi's blog post, "Inching Towards Insertion Sort".
We are super bubbly about bubble sort! We dig into our second sorting algorithm and break down how it works and why it's actually not a great way of sorting things. Based on Vaidehi Joshi's blog post, "Bubbling Up With Bubble Sorts".
What is selection sort? How does this algorithm work? And just as importantly, how does it perform? We use broken books and cookies to tell you all about it! Based on Vaidehi Joshi's blog post, "Exponentially Easy Selection Sort".
We're at the end of the season! And to wrap things up, we're breaking down the last two ways to classify sorting algorithms: recursive vs. non-recursive and comparison vs. non-comparison. We bring it all together to talk about what we can do with all these classifications, and, in true basecs podcast fashion, we bring in seemingly unrelated topics like tomatoes! Based on Vaidehi Joshi's blog post, "Sorting Out The Basics Behind Sorting Algorithms".
Last week, we talked about two ways of classifying sorting algorithms: time complexity and space usage. This episode, we dig into two more! We explore how algorithms can be internal or external, and what "stability" means for a sorting algorithm. And we do it all with the help of cards, clovers, and a pair of Michaels. Based on Vaidehi Joshi's blog post, "Sorting Out The Basics Behind Sorting Algorithms".
You probably sort things all the time -- files, clothes, dishes. But have you thought about how to categorize your sorting? How do your sorting algorithms hold up in terms of, say, time complexity? We give you an introduction to sorting algorithms, what they are and what they're used for, and dig into the six ways we can classify them. Based on Vaidehi Joshi's blog post, "Sorting Out The Basics Behind Sorting Algorithms".
Today we're talking to Vaidehi Joshi about basecs where she explored the basics of computer science, every Monday, for a year. Basecs also has a new season of the podcast coming out and the basecs video series will be coming out early 2019! Vaidehi's Twitter basecs Blog basecs Podcast basecs Video Series
Sets are everywhere! If you've worked with relational databases, made a venn diagram, maybe touched some relational algebra, then you've already worked with sets. We talk about why they're so common, how well they perform (time for some Big O Notation!), and how they're actually implemented. Based on Vaidehi Joshi's blog post, "Set Theory: the Method To Database Madness".
Set theory might sound like a scary, super-math thing, but it's not! Well, it is a math thing, but it doesn't have to be super scary. In fact, if you already know how venn diagrams work, then you basically already know set theory. We'll walk you through it all and show you how it connects back to computer science with the help of our favorite foods. Based on Vaidehi Joshi's blog post, "Set Theory: the Method To Database Madness".
We're back in our hash table classroom with our multiple Brians that need their own tables! But don't you worry, we've got a brand new collision resolution called chaining to help us out. We talk about how it works and how it compares to linear probing. Based on Vaidehi Joshi's blog post, "Taking Hash Tables Off The Shelf".
School is in session, and the teacher is directing students to their assigned seat. Each unique name gets its own unique table. But there's an unexpected student in the class. There's another Brian! What do we do?! In this episode, we dig into how to manage these collisions in a hashtable, and how to use our collision resolution strategy to find new Brian his own desk. Based on Vaidehi Joshi's blog post, "Taking Hash Tables Off The Shelf".
We're kicking off a new season with a brand new topic: hash tables! This episode is full of bookshelves, pizza toppings, and helpful fridge operators who are teaming up to give you the most gentle (and the most fun) introduction to the world of hash tables. Based on Vaidehi Joshi's blog post, "Taking Hash Tables Off The Shelf".
If you've ever wanted to learn more about tech and computer science but thought that it was too inaccessible a field for you, Vaidehi Joshi wants to help change that. Vaidehi is a software engineer with Tilde, and she also co-hosts the Base.cs podcast. Producer Kat Batuigas chats with Vaidehi about the tech industry, learning as well as teaching, and putting together Base.cs. Bonus: Vaidehi lets us know which side she's on with Salt & Straw versus Fifty Licks. Follow Vaidehi on Twitter: https://twitter.com/vaidehijoshi Check out the original Base.cs series on https://medium.com/basecs, and listen to episodes of the Base.cs podcast on https://www.codenewbie.org/basecs Music and sound credits: Wire Ties by @Chops, Kitty in the Window by Podington Bear, and JarredGibb.
Let's break down how breadth-first search (BFS) actually works! We'll walk through a real example, explain the Big O notation of this algorithm, and explore how you might decide whether to use breadth-first search or depth-first search. Based on Vaidehi Joshi's blog post, "Breaking Down Breadth-First Search".
We're going broad with breadth-first search! Well, actually, we're getting in line, or enqueuing ;) We walk through the steps of how breadth-first search (BFS) works, complete with holiday themed analogies and reindeers that need a GPS. We also compare and contrast the steps of BFS to those in DFS (depth-first search). Based on Vaidehi Joshi's blog post, "Breaking Down Breadth-First Search".
In our final look at depth-first search (DFS), we explore how to implement this lovely algorithm in coding terms. We also dig into Big O notation, breaking down how to determine the time and space complexity of DFS. Based on Vaidehi Joshi's blog post, "Demystifying Depth-First Search".
Let's dig into another depth-first search strategy: in-order! This time, we walk through a numerical example, traversing the tree with fresh, animated voices and a broken washing machine. And when you're done learning all about inorder, take our postorder challenge! Tweet us the output of a postorder strategy applied to this binary search tree. Make sure to use the #basecs hashtag, and no cheating! :D Based on Vaidehi Joshi's blog post, "Demystifying Depth-First Search".
We dive into depth-first-search by exploring our first of three strategies: preorder! Let's walk through an example step-by-step and get to know members of Saron's fictitious tree family along the way. Based on Vaidehi Joshi's blog post, "Demystifying Depth-First Search".
How are algorithms related to brownies? And how do we navigate through the nodes of a tree when implementing depth-first search? Vaidehi and Saron break it all down one chocolatey step at a time. Based on Vaidehi Joshi's blog post, "Demystifying Depth-First Search".
We’re back in Königsberg, crossing bridges and taking names! We use a triangle to trace simple paths and finally get to the bottom of the seven bridges problem that helped launch graph theory. Based on Vaidehi Joshi's blog post, "Königsberg: Seven Small Bridges, One Giant Graph Problem".
We kick off season 3 with time travel! We go all the way back to 1735 to a lovely place called Königsberg. It had seven bridges and a tricky math problem that led to the creation of graph theory. Can you solve the problem? Based on Vaidehi Joshi's blog post, "Königsberg: Seven Small Bridges, One Giant Graph Problem".
We're joined by Vaidehi Joshi to discuss her multimedia empire, conference talk prep, getting started with computer science, and the applicability of a computer science education in every day development work. We wrap the episode with live Q&A from our RailsConf audience. Vaidehi Joshi on Twitter Base CS – The Blog Posts Base CS - The Podcast Base CS - The Video Series RailsConf 2018: Re-graphing The Mental Model of The Rails Router by Vaidehi Joshi Deckset for Mac: Presentations from Markdown RustConf 2017 - Type System Tips for the Real World by Sean Griffin EmberConf 2018: Closing Keynote by Saron Yitbarek & Vaidehi Joshi Conway's Game of Life Understanding Computation: From Simple Machines to Impossible Programs: Tom Stuart Announcing Skylight for Open Source!
In this special episode of Greater Than Code, the panelists and guest panelists talk to an audience live from RailsConf 2018 about our relationship with our code, and the ways we have emotional ties with what we do, but also how there’s more to it than that. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode). To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Amazon links may be affiliate links, which means you’re supporting the show when you purchase our recommendations. Thanks! Special Guests: Dinah Shi, Nick Quaranto, and Vaidehi Joshi.
Vaidehi loves graphs, and you will too! We end the season with an exploration of what they are, how to define them, and how they're related to discrete mathematics. Based on Vaidehi Joshi's blog post, "A Gentle Introduction to Graph Theory".
What does it mean for an algorithm to be logarithmic? We revisit Big O notation, this time in the context of binary search. Based on Vaidehi Joshi's blog post, "Looking For The Logic Behind Logarithms".
In the rush to learn the technical skills needed to get into work, many of us skip the deeper understanding of what makes our work possible. Vaidehi Joshi is the founder of BaseCS, a collection of podcasts, writing and videos aimed to teach you what you fear you should already have known about computers and computer science.
If you've heard of binary trees, you've probably heard of binary search. But how does a binary search algorithm actually work? And do you have to have binary trees, or can you use it on other things? Based on Vaidehi Joshi's blog post, "Looking For The Logic Behind Logarithms".
We dig into binary trees. What makes a tree binary, and why are they so popular in computer science? And how do you implement one? Based on Vaidehi Joshi's blog post, "Leaf It Up To Binary Trees".
We explore the world (forest?) of trees even further! We learn what a tree's depth and height are, why they're important, and why unbalanced trees can cause computational problems. Based on Vaidehi Joshi's blog post, "How To Not Be Stumped By Trees".
What's in a tree? And why do they always seem to pop up in computer science? We dig into the different parts of a tree, and how certain "tree truths" make them so special. Based on Vaidehi Joshi's blog post, "How To Not Be Stumped By Trees".
Vaidehi Joshi started BaseCS to document her self-guided journey into computer science. It turned into a much-loved blog, podcast, and video series. Vaidehi is an engineer at Tilde, in Portland, Oregon, where she works on Skylight (a smart profiler for Ruby and Rails applications). She enjoys building and breaking code, but loves creating empathetic engineering … Continue reading #012 – Learning Compilers with Cartoons with Vaidehi Joshi The post #012 – Learning Compilers with Cartoons with Vaidehi Joshi appeared first on Ardent Development Podcast.
Where do we see queues in real life? We explore how queues are used in different parts of the tech stack, and help us do awesome things like send emails, create animations, and manage requests. Based on Vaidehi Joshi's blog post, "To Queue or Not to Queue".
What's in a queue? And how does it relate to stacks? We explore what they do, how they work, and how to implement them. Based on Vaidehi Joshi's blog post, "To Queue or Not to Queue".
How a job interview inspired Vaidehi to understand Conway’s Game of Life and other computer science problems by creating a weekly series, basecs.
Where do you see stacks in real life? We look at how browser histories, call stacks, and undo/redo functionality in blogging are implementations of a stack. We also dig into what exactly a stack is made of and how it operates. Based on Vaidehi Joshi's blog post, "Stacks and Overflows".
CodeNewbie is teaming up with the incredible Vaidehi Joshi to turn her base.cs blog series into an awesome podcast. Listen to a clip from the first episode on binary, coming out Nov 8. Make sure to subscribe!
We go inside the RubyConf CFP review process before turning our attention to questions about the impact of code review. Stick around post credits for some spoiler-filled, lukewarm Game of Thrones takes. What Your Conference Proposal is Missing by Sarah Mei Add a configuration option to cause tests to fail if they write stderr or stdout Survivorship Bias Cultivating a Code Review Culture by Derek Goldilocks and the Three Code Reviews by Vaidehi Joshi
Vaidehi decided to take on a year-long challenge. She'd pick a computer science topic every week, do tons of research and write a technical blog post explaining it in simple terms and beautiful illustrations. And then she actually did it. She tells us about her project, basecs, how it's changed her as a developer, and how she handles the trolls and negativity from people who don't appreciate her work. Show Links Digital Ocean (sponsor) MongoDB (sponsor) Heroku (sponsor) TwilioQuest (sponsor) Bits, Bytes, Building With Binary (Vaidehi's blog post) 100 Days of Code Rust Hexes and Other Magical Numbers (Vaidehi's blog post) Conway's Game of Life basecs Technical Writer position at CodeNewbie Codeland Conf Codeland 2019