Curriculum

125 weeks. Two interpreters, then Knuth.

Crafting Interpreters first, then The Art of Computer Programming, volumes 1 to 4B, with two NeetCode problems a week for the first 75 weeks and three Zachtronics games on the side. Every week has a reading guide and a due date once you pick a start.

Dated. Pick a start date and a pace; every week gets a due date, in your calendar too.

Proved. The interpreter chapters check themselves: push your repo and the book's own tests mark them done.

Start the pathStart with Week 0: setup

0Week 0: setupTools, the repo, the books and games, your calendar. Doesn't count toward the 125.
1

Crafting Interpreters

Weeks 1 to 16 · Build two complete interpreters for Lox: a tree-walker in Java, then a bytecode VM in C.

Sixteen weeks building two complete interpreters for Lox, a small but real language with closures and classes. First jlox, a tree-walking interpreter in Java (weeks 1 to 7), then clox, a bytecode virtual machine in C with its own hash table and garbage collector (weeks 8 to 16). You type every line yourself. It is the most fun phase of the path and the one that changes how you see every language you use.

16 weeks
  1. Week 1Crafting Interpreters, chapters 1, 2 and 3
  2. Week 2Crafting Interpreters, chapter 4
  3. Week 3Crafting Interpreters, chapters 5 and 6
  4. Week 4Crafting Interpreters, chapters 7 and 8
  5. Week 5Crafting Interpreters, chapters 9 and 10
  6. Week 6Crafting Interpreters, chapter 11
  7. Week 7Crafting Interpreters, chapters 12 and 13
  8. Week 8Crafting Interpreters, chapters 14 and 15
  9. Week 9Crafting Interpreters, chapters 16 and 17
  10. Week 10Crafting Interpreters, chapters 18 and 19
  11. Week 11Crafting Interpreters, chapters 20 and 21
  12. Week 12Crafting Interpreters, chapters 22 and 23
  13. Week 13Crafting Interpreters, chapters 24 and 25
  14. Week 14Crafting Interpreters, chapter 26
  15. Week 15Crafting Interpreters, chapters 27 and 28
  16. Week 16Crafting Interpreters, chapters 29 and 30
2

TAOCP Vol 1: Fundamental Algorithms

Weeks 17 to 47 · Mathematical preliminaries, MIX, and information structures.

Welcome to Knuth. Volume 1 starts with a big block of math (induction, sums, binomial coefficients, generating functions, asymptotics), then MIX, Knuth's imaginary computer and its assembly language, then the data structures everything else is built on: lists, trees, garbage collection and memory allocation. The math weeks are the hardest stretch of the whole path for most people. That is normal. Push through them and the rest of Knuth opens up.

31 weeks
  1. Week 17TAOCP 1.1 Algorithms
  2. Week 18TAOCP 1.2.1 and 1.2.2
  3. Week 19TAOCP 1.2.3 Sums and Products
  4. Week 20TAOCP 1.2.4 Integer Functions and Elementary Number Theory
  5. Week 21TAOCP 1.2.5 Permutations and Factorials
  6. Week 22TAOCP 1.2.6 Binomial Coefficients (part 1)
  7. Week 23TAOCP 1.2.6 Binomial Coefficients (part 2)
  8. Week 24TAOCP 1.2.7 and 1.2.8
  9. Week 25TAOCP 1.2.9 Generating Functions
  10. Week 26TAOCP 1.2.10 Analysis of an Algorithm
  11. Week 27TAOCP 1.2.11 Asymptotic Representations
  12. Week 28TAOCP 1.3.1 Description of MIX
  13. Week 29TAOCP 1.3.2 The MIX Assembly Language
  14. Week 30TAOCP 1.3.3 Applications to Permutations
  15. Week 31TAOCP 1.4.1 and 1.4.2
  16. Week 32TAOCP 1.4.3 Interpretive Routines
  17. Week 33TAOCP 1.4.4 and 1.4.5
  18. Week 34TAOCP 2.1 and 2.2.1
  19. Week 35TAOCP 2.2.2 Sequential Allocation
  20. Week 36TAOCP 2.2.3 Linked Allocation
  21. Week 37TAOCP 2.2.4 and 2.2.5
  22. Week 38TAOCP 2.2.6 Arrays and Orthogonal Lists
  23. Week 39TAOCP 2.3.1 Traversing Binary Trees
  24. Week 40TAOCP 2.3.2 Binary Tree Representation of Trees
  25. Week 41TAOCP 2.3.3 Other Representations of Trees
  26. Week 42TAOCP 2.3.4 Basic Mathematical Properties of Trees (part 1)
  27. Week 43TAOCP 2.3.4 Basic Mathematical Properties of Trees (part 2)
  28. Week 44TAOCP 2.3.5 Lists and Garbage Collection
  29. Week 45TAOCP 2.4 Multilinked Structures
  30. Week 46TAOCP 2.5 Dynamic Storage Allocation
  31. Week 47TAOCP 2.6 and Vol
3

TAOCP Vol 2: Seminumerical Algorithms

Weeks 48 to 72 · Random numbers and arithmetic.

Volume 2 is about numbers as computers see them. Chapter 3 is random numbers: how to generate them, how to test them, and how to turn them into shuffles and samples. Chapter 4 is arithmetic: floating point, bignums, fast multiplication, gcd, factoring and polynomials. Some sections are deep number theory; the guides tell you where to dig in and where to skim.

25 weeks
  1. Week 48TAOCP 3.1 and 3.2.1
  2. Week 49TAOCP 3.2.2 Other Methods
  3. Week 50TAOCP 3.3.1 General Test Procedures
  4. Week 51TAOCP 3.3.2 Empirical Tests
  5. Week 52TAOCP 3.3.3 Theoretical Tests
  6. Week 53TAOCP 3.3.4 The Spectral Test
  7. Week 54TAOCP 3.4.1 Numerical Distributions
  8. Week 55TAOCP 3.4.2 Random Sampling and Shuffling
  9. Week 56TAOCP 3.5 and 3.6
  10. Week 57TAOCP 4.1 Positional Number Systems
  11. Week 58TAOCP 4.2.1 Single-Precision Calculations
  12. Week 59TAOCP 4.2.2 Accuracy of Floating Point Arithmetic
  13. Week 60TAOCP 4.2.3 and 4.2.4
  14. Week 61TAOCP 4.3.1 The Classical Algorithms
  15. Week 62TAOCP 4.3.2 Modular Arithmetic
  16. Week 63TAOCP 4.3.3 How Fast Can We Multiply?
  17. Week 64TAOCP 4.4 Radix Conversion
  18. Week 65TAOCP 4.5.1 and 4.5.2
  19. Week 66TAOCP 4.5.3 Analysis of Euclid's Algorithm
  20. Week 67TAOCP 4.5.4 Factoring into Primes
  21. Week 68TAOCP 4.6.1 Division of Polynomials
  22. Week 69TAOCP 4.6.2 Factorization of Polynomials
  23. Week 70TAOCP 4.6.3 Evaluation of Powers
  24. Week 71TAOCP 4.6.4 Evaluation of Polynomials
  25. Week 72TAOCP 4.7 and Vol
4

TAOCP Vol 3: Sorting and Searching

Weeks 73 to 99 · Sorting and searching.

The most directly practical volume. Chapter 5 covers sorting: the combinatorics of permutations, every classic internal sort with exact analysis, lower bounds, sorting networks and external sorting. Chapter 6 covers searching: binary search, balanced trees, B-trees, tries, hashing and secondary keys. You will finish it able to read any database or standard library internals.

27 weeks
  1. Week 73TAOCP 5.1.1 Inversions
  2. Week 74TAOCP 5.1.2 Permutations of a Multiset
  3. Week 75TAOCP 5.1.3 Runs
  4. Week 76TAOCP 5.1.4 Tableaux and Involutions
  5. Week 77TAOCP 5.2.1 Sorting by Insertion
  6. Week 78TAOCP 5.2.2 Sorting by Exchanging
  7. Week 79TAOCP 5.2.3 Sorting by Selection
  8. Week 80TAOCP 5.2.4 Sorting by Merging
  9. Week 81TAOCP 5.2.5 Sorting by Distribution
  10. Week 82TAOCP 5.3.1 Minimum-Comparison Sorting
  11. Week 83TAOCP 5.3.2 and 5.3.3
  12. Week 84TAOCP 5.3.4 Networks for Sorting
  13. Week 85TAOCP 5.4.1 Multiway Merging and Replacement Selection
  14. Week 86TAOCP 5.4.2 and 5.4.3
  15. Week 87TAOCP 5.4.4 and 5.4.5
  16. Week 88TAOCP 5.4.6 and 5.4.7
  17. Week 89TAOCP 5.4.8 and 5.4.9
  18. Week 90TAOCP 5.5 Summary, History, and Bibliography
  19. Week 91TAOCP 6.1 Sequential Searching
  20. Week 92TAOCP 6.2.1 Searching an Ordered Table
  21. Week 93TAOCP 6.2.2 Binary Tree Searching
  22. Week 94TAOCP 6.2.3 Balanced Trees
  23. Week 95TAOCP 6.2.4 Multiway Trees
  24. Week 96TAOCP 6.3 Digital Searching
  25. Week 97TAOCP 6.4 Hashing (part 1)
  26. Week 98TAOCP 6.4 Hashing (part 2)
  27. Week 99TAOCP 6.5 and Vol
5

TAOCP Vol 4A: Combinatorial Algorithms, Part 1

Weeks 100 to 115 · Combinatorial searching, generating all possibilities.

Volume 4A is Knuth at his most playful: puzzles, graphs, Boolean functions, bit tricks, binary decision diagrams, and efficient ways to generate every tuple, permutation, combination, partition and tree. It uses MMIX instead of MIX where it shows machine code, but most of it is plain algorithm steps.

16 weeks
  1. Week 100TAOCP 7 Combinatorial Searching intro (part 1)
  2. Week 101TAOCP 7 Combinatorial Searching intro (part 2)
  3. Week 102TAOCP 7.1.1 Boolean Basics (part 1)
  4. Week 103TAOCP 7.1.1 Boolean Basics (part 2)
  5. Week 104TAOCP 7.1.2 Boolean Evaluation
  6. Week 105TAOCP 7.1.3 Bitwise Tricks and Techniques (part 1)
  7. Week 106TAOCP 7.1.3 Bitwise Tricks and Techniques (part 2)
  8. Week 107TAOCP 7.1.4 Binary Decision Diagrams (part 1)
  9. Week 108TAOCP 7.1.4 Binary Decision Diagrams (part 2)
  10. Week 109TAOCP 7.2.1.1 Generating All n-Tuples
  11. Week 110TAOCP 7.2.1.2 Generating All Permutations
  12. Week 111TAOCP 7.2.1.3 Generating All Combinations
  13. Week 112TAOCP 7.2.1.4 Generating All Partitions
  14. Week 113TAOCP 7.2.1.5 Generating All Set Partitions
  15. Week 114TAOCP 7.2.1.6 Generating All Trees
  16. Week 115TAOCP 7.2.1.7 and Vol
6

TAOCP Vol 4B: Combinatorial Algorithms, Part 2

Weeks 116 to 125 · Backtracking, dancing links and satisfiability.

The final stretch: probability tools for analyzing search, backtracking, dancing links for exact cover problems (sudoku, polyominoes and much more), and a deep dive into SAT solving, the technology behind modern verification and constraint solving. You end the path implementing ideas that are still at the research frontier.

10 weeks
  1. Week 116TAOCP Mathematical Preliminaries Redux
  2. Week 117TAOCP 7.2.2 Backtrack Programming (part 1)
  3. Week 118TAOCP 7.2.2 Backtrack Programming (part 2)
  4. Week 119TAOCP 7.2.2.1 Dancing Links (part 1)
  5. Week 120TAOCP 7.2.2.1 Dancing Links (part 2)
  6. Week 121TAOCP 7.2.2.1 Dancing Links (part 3)
  7. Week 122TAOCP 7.2.2.2 Satisfiability (part 1)
  8. Week 123TAOCP 7.2.2.2 Satisfiability (part 2)
  9. Week 124TAOCP 7.2.2.2 Satisfiability (part 3)
  10. Week 125TAOCP 7.2.2.2 and Vol