/ reading
A self-taught systems syllabus
I think of programming as a kind of writing, and the way I get better is deliberate: a path through the books that shape how I design, architect, and reason about systems. Here's the whole path — what I'm reading now, what's next, and what's worth going back to.
24 books · 2 reading
Currently reading
The Pragmatic Programmer
Hunt & Thomas
Thinking in Systems
Donella Meadows
● reading ✓ done ↺ revisit · untagged = on the list
01
Craft & fundamentals
- The Pragmatic Programmer Hunt & Thomas ● reading
- Smalltalk Best Practice Patterns Kent Beck
- A Philosophy of Software Design John Ousterhout
02
Design & architecture
- Design Patterns Gamma, Helm, Johnson, Vlissides
- Clean Architecture Robert C. Martin
- Refactoring Martin Fowler
- Patterns of Enterprise Application Architecture Martin Fowler
03
Domain-driven design
- Domain-Driven Design Distilled Vaughn Vernon
Start here — read before the Evans book.
- Domain-Driven Design Eric Evans
- Architecture Patterns with Python Percival & Gregory
- Fundamentals of Software Architecture Richards & Ford
04
Distributed systems & system design
- Designing Data-Intensive Applications Martin Kleppmann
- System Design Interview, Vol. 1 & 2 Alex Xu
- Understanding Distributed Systems Roberto Vitillo
05
Systems thinking & problem-solving
- Thinking in Systems Donella Meadows ● reading
- Are Your Lights On? Gause & Weinberg
06
DevOps & delivery
- Accelerate Forsgren, Humble, Kim
- The Phoenix Project Kim, Behr, Spafford
07
Product, strategy & leadership
- Inspired Marty Cagan
- Good Strategy Bad Strategy Richard Rumelt
- The Staff Engineer's Path Tanya Reilly
08
Communication & writing
- Crucial Conversations Grenny, Patterson, McMillan, et al.
- The Elements of Style Strunk & White
- On Writing Well William Zinsser
A handful of books like these give your craft more nutrition than a couple of years of blog posts and tutorials — though I write some of those too: the blog →