Program overview

The 125-week path

Two interpreters, then The Art of Computer Programming from Volume 1 to 4B. Two NeetCode 150 problems a week for the first 75 weeks, and three Zachtronics games to play along the way. About 8 to 12 hours a week.

The phases

  1. Weeks 1–16

    Crafting Interpreters

    Work through Crafting Interpreters (free online) and build both of its interpreters for Lox: jlox, a tree-walker in Java, then clox, a bytecode virtual machine in C with its own garbage collector. Every coding chapter is checked against the book's official test suite.

  2. Weeks 17–47

    TAOCP Vol 1: Fundamental Algorithms

    Knuth's mathematical preliminaries, the MIX machine, and information structures: lists, trees, dynamic storage. You write real MIX programs and grade them in the browser emulator.

  3. Weeks 48–72

    TAOCP Vol 2: Seminumerical Algorithms

    Random numbers (how to make them and how to tell if they are any good) and arithmetic: positional number systems, floating point, multiple precision, factoring, polynomials.

  4. Weeks 73–99

    TAOCP Vol 3: Sorting and Searching

    Every sorting algorithm you have heard of and plenty you have not, analyzed to the last comparison, then searching: trees, hashing, and retrieval on secondary keys.

  5. Weeks 100–115

    TAOCP Vol 4A: Combinatorial Algorithms, Part 1

    Bitwise tricks, Boolean functions, BDDs, and generating all tuples, permutations, combinations, partitions and trees.

  6. Weeks 116–125

    TAOCP Vol 4B: Combinatorial Algorithms, Part 2

    Backtracking, dancing links, and satisfiability. The end of the path, and the current edge of the series.

Alongside

NeetCode 150

Two problems a week for the first 75 weeks, which is the whole list. They keep your interview muscles warm while the big books do the deep work. Verified from your public LeetCode profile.

Zachtronics

TIS-100, Shenzhen I/O and EXAPUNKS: puzzle games where you write assembly for made-up machines. They are the most fun way to get comfortable before you meet MIX.

Week 0

An on-ramp before week 1: enough Java, C, Git and the command line to start Crafting Interpreters without drowning.

Time

Plan on 8 to 12 hours a week for about two and a half years. Crafting Interpreters weeks are mostly typing and debugging. Knuth weeks are reading slowly with a pencil, and some take longer than others. If that is too much, switch to half pace: two calendar weeks for each week of the path, 250 weeks in all.

What you need

  • A Java JDK for jlox, the tree-walking interpreter.
  • A C toolchain (gcc or clang, and make) for clox, the bytecode VM.
  • Git and a GitHub account, so GitHub Actions can run the book's test suite on your code.
  • Crafting Interpreters, free to read online at craftinginterpreters.com.
  • The Art of Computer Programming, Volumes 1, 2, 3, 4A and 4B. Not free; you need Volume 1 by week 17. Libraries and used copies work.
  • A LeetCode account with a public profile, and Steam for the three games.

What it all costs: $0 with a library card, about $150 to $220 buying used and cheap, about $495 to $710 buying everything new. See the breakdown.

What you need, with free and cheapest options

Cohorts and pace

Every learner gets their own dated schedule from the start date they pick. Join a monthly cohort (each starts on the first Monday of the month) to start alongside other people on the same chapter, or pick any date you like. Full pace is a week of the path every week; half pace gives each one two. If you fall behind, catch-up re-dates the rest of the path from where you actually are instead of leaving a wall of overdue weeks. A weekly email says what is due, and you can export the schedule to your calendar or Things.

Verification

InterpretersGitHub Actions
Push your jlox or clox to GitHub. A workflow runs the chapter's tests from the book's official suite, and the chapter is done when they pass.
LeetCodeYour public profile
Link your LeetCode username. Accepted NeetCode 150 problems on your public profile count toward the week.
KnuthA MIX emulator in your browser
MIX exercises are graded by running your program against test cases in an emulator. Reading is on your honor; the guides help you know when you actually understood it.

Your public profile shows what you verified, with share cards for the milestones.

Be honest with yourself

This is hard on purpose and most people won't finish it. That is fine. Every interpreter chapter and every Knuth section you really understand is yours for good.