Course · 6 lessons ~58 hr Advanced

Recursion, Backtracking & Dynamic Programming

Master recursive thinking, then build from simple recursion through backtracking to dynamic programming — the single most important and most feared topic in technical interviews. Rails uses memoization constantly — @user ||= User.find(id) is the simplest form of caching overlapping subproblems. Rails route matching uses a form of trie-based pattern matching that avoids recomputing prefix matches. Bundler's dependency resolution is a constraint satisfaction problem solved with backtracking. Understanding DP also helps you think about caching strategies: fragment caching, Russian doll caching, and counter caches are all ways of storing computed results to avoid recomputation — which is exactly what DP does.

reading · we frame, you read MIT or the canonical taught · we author, no canonical fits ↺ spirals back to earlier lessons
Course locked

Complete Sorting, Searching & Fundamental Algorithms first.

This course unlocks once you've finished its prerequisite. Open prerequisite →

6 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.