Programming

Follow Programming
Share on
Copy link to clipboard

Programming is a weekly podcast that aims to make us better software engineers! With each episode, you'll learn about a computer science concept in a brief and accessible way.

Minko Gechev

  • Jul 1, 2020 LATEST EPISODE
  • every other week NEW EPISODES
  • 12m AVG DURATION
  • 21 EPISODES


Search for episodes from Programming with a specific topic:

Latest episodes from Programming

Episode 21 - Maps, Hash Maps, Tree Maps, and Hash Tables

Play Episode Listen Later Jul 1, 2020 16:30


Today in less than 20 minutes, we'll explore what maps are and how they work under the hood. We'll talk about the differences between treemaps, hash maps, and hash tables. We'll dig pretty in-depth...By the end of the episode, you'll understand how to implement hash tables using an array, hash function, and a linked list!

Episode 20 - Static and Dynamic Systems

Play Episode Listen Later Jun 23, 2020 13:29


Today we'll look into static and dynamic systems. We'll discuss what does it mean for a programming language or a framework to be static or dynamic. In the second part of the podcast, we'll focus on some of the properties of static systems and how they can help in better compile-time optimizations, development experience, and more!

Type Systems and Type Checking

Play Episode Listen Later Jun 15, 2020 6:00


In this episode, we'll look at the very basics of type systems and their enforcement. We'll discuss strongly and weakly typed languages. After that, we'll dig into different enforcement strategies - runtime with dynamic typing and compile-time with static typing.

Episode 18 - How JavaScript Bundlers Work

Play Episode Listen Later May 25, 2020 11:12


In this episode, we'll look at what data structures and algorithms JavaScript bundlers use. We'll talk about ECMAScript modules, strongly connected components, depth-first search, and more! Enjoy!

Episode 17 - Dependency Injection

Play Episode Listen Later Apr 20, 2020 10:24


Today we'll talk about using dependency injection across paradigms! You'll understand what this pattern is all about and how to use it. During the episode, we'll touch on topics such as inversion of control, high-order functions, and testability.

Episode 16 - Memoization

Play Episode Listen Later Apr 13, 2020 10:46


Today we'll learn about memoization! Memoization is a practice that helps us improve the performance of our apps using caching. In the episode, we'll also discuss pure functions, caching strategies, and much more!

Episode 15 - Compilers, Linters, and Formatters

Play Episode Listen Later Apr 6, 2020 8:39


In this episode of the programming podcast, we'll discuss static analysis and code transformation. In particular, we'll look at the difference between compilers, linters, and formatters. By the end of the episode, you'll understand what tool you should use to improve your development experience and team processes.

Episode 14 - The Four Principles of OOP

Play Episode Listen Later Mar 30, 2020 14:08


In today's episode, you'll learn the four principles of object-oriented programming. We'll discuss abstraction, inheritance, encapsulation, and polymorphism. By the end of the show, you'll understand each one of them; you'll know how they relate to each other, and how to use them in practice.

Episode 13 - Binary Heaps

Play Episode Listen Later Mar 23, 2020 12:31


Today we're going to discuss the binary heap data structure. In this episode, you'll learn where to use heaps in practice, how they can come handy to you during a coding interview, and how to implement them! Along the way, we'll cover heap sort, priority queues, load balancing, and more!

Episode 12 - COVID-19. Epidemic modeling with SIR.

Play Episode Listen Later Mar 16, 2020 9:39


Instead of digging into algorithms and data structures, today, you'll learn about epidemic modeling. In 9 minutes in this episode, you'll get a mathematical intuition on the spread of COVID-19 and the essential variables we can control, which can help us fight the virus.

Episode 11 - Coupling and Cohesion

Play Episode Listen Later Mar 9, 2020 11:28


Today you'll learn how keeping your abstractions more cohesive and less coupled can improve the quality and maintainability of your software.

Episode 10 - Topological Sort

Play Episode Listen Later Mar 2, 2020 13:23


The chances are that the information from this episode will come in handy to you during a coding interview and likely in real life! In this episode, you'll learn the topological sort algorithm. Along the way, you'll understand what's a dependency graph and how topological sort operates on this data structure. We'll also discuss a few real-life examples where I had to implement topological sort myself!

Episode 9 - Sorting. Counting Sort.

Play Episode Listen Later Feb 25, 2020 13:25


Have you ever been frustrated during interviews thinking that your interviewer expects you to have memorized a bunch of sorting algorithms you'd never need in real life? In this episode of the podcast learn how to approach such situations. In performance critical systems you may have to implement an efficient sorting yourself. Learn how to beat the built-in algorithm in a few lines of code!

Episode 8 - Decorator Pattern

Play Episode Listen Later Feb 17, 2020 13:13


Today you'll learn how at runtime, you can enhance the behavior or existing objects using the decorator pattern. In this episode, we'll discuss the advantages of decorators over inheritance and look at two examples from real-life - implementing a network communication protocol and enriching user interface components.

Episode 7 - Tries

Play Episode Listen Later Feb 10, 2020 11:05


In the episode today, we'll talk about the trie data structure. You'll learn what tries are, how you can use them in practice, and how to implement them in your favorite programming language!

Episode 6 - Graphs and Graph Traversal

Play Episode Listen Later Feb 3, 2020 21:35


In this episode, we'll discuss graphs. You'll learn how this data structure looks like and what are its applications. Later on, we'll talk about algorithms for traversing graphs. You'll understand how breadth-first search and depth-first search work and when you should use one instead of the other. Topics we'll also touch on are chromatic graphs and finding the shortest path.

Episode 5 - Arrays and Linked Lists

Play Episode Listen Later Jan 25, 2020 19:11


In this episode, we'll discuss two fundamental data structures in computer science - arrays and linked lists. Their understanding is essential not only in your day to day job but also for performing well on your next coding interview. We'll discuss implementation details for both data structures, and we'll talk about when it's better to choose one instead of the other. Along the way, we'll touch on memory hierarchy, caching locality, and different interview problems.

Episode 4 - Quickselect

Play Episode Listen Later Jan 20, 2020 10:42


Today we're going to talk about quickselect. This algorithm helps us quickly find the n-th smallest element in unsorted arrays. It'll not only help you improve the performance of your applications, but it's also a very common white-board interview problem.

Episode 3 - Partial Application (not Currying)

Play Episode Listen Later Jan 13, 2020 9:05


Today we'll discuss partial application and currying. By the end of the episode, you'll understand what these two different concepts are how they are different from each other, and where you can apply them in practice. In between the episode, we'll also talk about the brilliant computer scientist Haskell Curry, and we'll mention the Curry-Howard isomorphism

Episode 2 - Binary Search

Play Episode Listen Later Jan 5, 2020 19:19


Today we'll discuss the binary search algorithm. We'll go through several examples when the algorithm makes sense and discuss in detail how it works. By the end of the episode, you'll know when to apply a binary search and know why it's more efficient than a linear search.

Episode 1 - How Compilers Work

Play Episode Listen Later Jan 5, 2020 11:35


In this episode, we discuss how compilers work. By the end of the show, you'll have a high-level understanding of the phases the source code you write goes though before executed!

Claim Programming

In order to claim this podcast we'll send an email to with a verification link. Simply click the link and you will be able to edit tags, request a refresh, and other features to take control of your podcast page!

Claim Cancel