Honest Take — Before You Begin
This is the meta-module. Everything before this taught you specific algorithms — how to sort, how to search a graph, how to match strings. This module teaches you how to design al…
Step back from specific algorithms to master the paradigms — divide and conquer, greedy, dynamic programming, randomization, amortized analysis, NP-completeness. This module teaches you how to design new algorithms, not just implement known ones.
N+1 query detection is an algorithmic problem — tools like bullet gem use graph analysis to detect dependency patterns in your queries. Rails caching strategies (fragment caching, Russian doll caching) are approximation algorithms: they trade perfect accuracy for O(1) lookups. Understanding NP-completeness helps you recognize when a feature request is computationally intractable. When a product manager asks "can we find the optimal assignment of N tasks to M workers?" and N and M are large, you can explain why an approximation is necessary. Algorithm design paradigms also appear in background job design: divide-and-conquer for splitting large imports into parallel chunks, greedy algorithms for task scheduling in Sidekiq.
This course unlocks once you've finished its prerequisite. Open prerequisite →
This is the meta-module. Everything before this taught you specific algorithms — how to sort, how to search a graph, how to match strings. This module teaches you how to design al…
Approach: READ: Ch 1-6 (stable matching, analysis, graphs, greedy, divide & conquer, DP), SELECTIVE: Ch 7-8 (network flow, NP-completeness)
Approach: READ cover-to-cover
Approach: SELECTIVE: chapters on recurrence analysis, amortized analysis, and probabilistic analysis
Approach: READ: Ch 33 (NP-Completeness), Ch 34 (Approximation Algorithms)
Work through each item before the checkpoint.
Given 5 novel algorithm design problems (not from any textbook), design solutions using appropriate paradigms. For each: (1) identify the paradigm, (2) write the algorithm in pseu…
7 lessons. Read in order; spiral back when you need to. By the end you'll have used the core ideas twice — once on the abstract, once on something you'll meet at work next week.