30 books · curated reading list
Library
The books we'd hand to a learner sitting next to us. Algorithms, interview prep, language deep-dives, and the engineering classics. Filter by tier or family, search by title or author. Press / anywhere on the page to focus the search.
Some links on this page are affiliate links — see the disclosure.
Top picks
10 books
Automate the Boring Stuff with Python (2nd Edition)
Language-specificTop pickby Al Sweigart
Practical Python for office workers, students, and anyone with a pile of repetitive tasks.
Free online; print sells because the examples (parsing PDFs, scraping websites, sending email) are immediately useful.

Clean Code
Engineering practiceTop pickby Robert C. Martin
A handbook of agile software craftsmanship — naming, functions, comments, error handling.
Every team has at least one engineer who quotes this book. Read it once early, re-read it once you have a year of code under your belt.

Cracking the Coding Interview
Interview prepTop pickby Gayle Laakmann McDowell
189 programming questions and solutions plus the meta-skills of how tech interviews actually work.
The default prep book for FAANG-style interviews. Sixth edition; still the highest-recommended title in the genre.

Eloquent JavaScript (3rd Edition)
Language-specificTop pickby Marijn Haverbeke
Free online; the print edition still sells because the pacing is unmatched.
Pairs with the JavaScript / HTML+CSS tabs in our Playground. Builds up a tiny computer simulator in pure JS by the end.

Grokking Algorithms
AlgorithmsTop pickby Aditya Y. Bhargava
Hand-drawn illustrations + 400+ pages of friendly walkthroughs of the algorithms that matter.
The closest book to CodeFlow in spirit. Second edition (2024) doubles the illustrations and adds a chapter on probabilistic data structures.

Head First Design Patterns
PatternsTop pickby Eric Freeman · Elisabeth Robson
Twenty-three patterns explained the way your brain actually wants to learn them.
Once you've internalised classes, this teaches you how grown-up codebases stay flexible. Updated for Java 8+ — the patterns themselves are language-agnostic.

Head First Java
Language-specificTop pickby Kathy Sierra · Bert Bates · Trisha Gee
Pictures, stories, puzzles — the original Head First book and still the gentlest path into Java.
CodeFlow's pedagogy IS Head First. If you like the lessons here, this is the book those lessons descend from. Third edition (2022) covers modern Java.

Head First Python
Language-specificTop pickby Paul Barry
Pictures and projects all the way down — Python from the syntax up to a working web app.
Pairs perfectly with the Pyodide tab in our Playground. Same brain-friendly format you already like.

Python Crash Course (3rd Edition)
Language-specificTop pickby Eric Matthes
Two halves: the language, then three projects (a game, a data viz, a web app).
Highest-selling Python beginner book on Amazon for a reason. The project half is what makes it stick.

The Pragmatic Programmer (20th Anniversary Edition)
Engineering practiceTop pickby David Thomas · Andrew Hunt
The career-shaping advice book — DRY, orthogonality, plain text, fixing broken windows.
Updated 20 years after the first edition with modern examples. Less tactical than Clean Code, more about how to think about your craft.
Catalog
13 books
Code: The Hidden Language of Computer Hardware and Software
FoundationsCatalogby Charles Petzold
How a computer works, built up from flashlights and Morse code to a working CPU.
The single best book if you've always felt like you're missing the layer below "the code." 2nd edition (2022) refreshes the diagrams and adds modern context.

Designing Data-Intensive Applications
SystemsCatalogby Martin Kleppmann
Replication, partitioning, transactions, consistency — every distributed-systems decision explained without the marketing.
The book every senior backend engineer recommends to mids. Kleppmann's clarity on consistency models alone is worth it.

Effective Java (3rd Edition)
Language-specificCatalogby Joshua Bloch
90 specific items: best practices, idioms, design choices.
Required reading for anyone shipping Java. Bloch wrote the standard Collections API; he knows the corners.

Effective Modern C++
Language-specificCatalogby Scott Meyers
42 specific ways to use C++11 and C++14 well — auto, smart pointers, lambdas, move semantics.
The book that turned modern C++ from "what does this even mean" into a working mental model.

Introduction to Algorithms (4th Edition)
AlgorithmsCatalogby Thomas H. Cormen · Charles E. Leiserson · Ronald L. Rivest · Clifford Stein
CLRS — the algorithms textbook. Comprehensive, mathematical, the reference that every other reference cites.
When you outgrow Grokking Algorithms and need rigour, CLRS is where you go. 4th edition (2022) adds machine learning and online algorithms chapters.

Refactoring (2nd Edition)
Engineering practiceCatalogby Martin Fowler
A catalog of small, named, mechanical transformations that keep behavior the same while improving design.
The 2nd edition rewrites all examples in JavaScript. The point of the book isn't the catalog — it's the discipline of taking small steps you can undo.

Structure and Interpretation of Computer Programs
FoundationsCatalogby Harold Abelson · Gerald Jay Sussman · Julie Sussman
The MIT intro book, in Scheme. Builds an interpreter, a compiler, a register machine — from primitives.
Ages well because it's about thinking, not syntax. Working through it changes how you read code afterwards.

The Algorithm Design Manual (3rd Edition)
AlgorithmsCatalogby Steven S. Skiena
A practitioner counterweight to CLRS — half techniques, half a catalog of problems and which algorithm solves each.
When CLRS feels too dense, Skiena reads like a smart friend. The "war stories" chapters are worth the cover price alone.

The C Programming Language (2nd Edition)
Language-specificCatalogby Brian W. Kernighan · Dennis M. Ritchie
K&R — the original tutorial for C, written by the language's designer.
40 years old and still the most readable introduction to C. Tight, beautiful prose; every page earns its keep.

The Go Programming Language
Language-specificCatalogby Alan A. A. Donovan · Brian W. Kernighan
The K&R for Go — co-authored by Kernighan again, decades later.
Concise, beautifully edited, and covers concurrency the way Go expects you to think about it.

The Mythical Man-Month
Engineering practiceCatalogby Frederick P. Brooks Jr.
Essays on software project management from 1975, mostly still right.
"Adding people to a late project makes it later." Read it for the prose; keep it for the recurring vindication.

The Rust Programming Language (2nd Edition)
Language-specificCatalogby Steve Klabnik · Carol Nichols
The official book — free online ("The Book"), better in print.
Walks you through ownership, borrowing, and lifetimes the way they should be taught. The print edition is updated against the latest stable Rust.

You Don't Know JS Yet (Books 1 & 2)
Language-specificCatalogby Kyle Simpson
Deep-dive series on JavaScript's actual semantics — closures, this, prototypes, types.
After Eloquent JavaScript, this is where you stop guessing about JS edge cases. Simpson is famously precise.
Deep dives
7 books
Computer Systems: A Programmer's Perspective (3rd Edition)
SystemsDeep diveby Randal E. Bryant · David R. O'Hallaron
Bridges the gap between source code and what the CPU actually does. Used at CMU, MIT, and most top CS programs.
The lab assignments alone (bomb lab, attack lab, malloc lab) are a full education in C, assembly, and the OS abstractions.

Crafting Interpreters
SpecialtyDeep diveby Robert Nystrom
Build two complete interpreters for a small language — first in Java (tree-walking), then in C (bytecode VM).
Free online; the print edition is gorgeously typeset. Nystrom wrote it across six years and you can feel it.

Database Internals
SystemsDeep diveby Alex Petrov
How databases actually store and retrieve data — B-trees, LSM trees, replication, consensus.
After Designing Data-Intensive Applications, this is the implementation-level layer. Worth it if you've ever wondered why Postgres and Cassandra make different trade-offs.

Designing Machine Learning Systems
SpecialtyDeep diveby Chip Huyen
How to build production ML systems — data, models, deployment, monitoring, the messy parts.
Most ML books teach algorithms. This teaches you how to ship them. Huyen has shipped real systems at Snorkel, Stitch Fix, NVIDIA.

Hacking: The Art of Exploitation (2nd Edition)
SpecialtyDeep diveby Jon Erickson
Network attacks, shellcode, buffer overflows — explained at the bytes-and-registers level.
Comes with a Linux LiveCD so you can try every exploit safely. Stays relevant because the underlying assumptions of C and the CPU haven't changed.

Introduction to Reliable and Secure Distributed Programming
SpecialtyDeep diveby Christian Cachin · Rachid Guerraoui · Luís Rodrigues
The textbook on distributed-system primitives — failure detectors, consensus, broadcast, shared memory.
When you've absorbed the practical side from DDIA, this is the formal layer. Used in graduate distributed-systems courses.

Operating Systems: Three Easy Pieces
SystemsDeep diveby Remzi H. Arpaci-Dusseau · Andrea C. Arpaci-Dusseau
Free online; print exists. Three pieces: virtualization, concurrency, persistence. The clearest OS textbook in print.
The Arpaci-Dusseaus write the way you wish your professors did. Every chapter is short and focused.