The Pragmatic Programmer is one of those books that feels different the second time you read it. The first time, you absorb techniques. The second time, you recognise which ones you've already internalized and which ones you keep ignoring.
What the book covers
The book is structured as a series of independent tips — 100 in the 20th anniversary edition. Topics include:
- DRY principle: Don't Repeat Yourself. More than just code duplication — it applies to documentation, tests, and team knowledge.
- Tracer bullets: Build thin slices end-to-end rather than completing each layer before moving to the next.
- Broken windows: Don't leave bad code in place. A single ugly workaround invites more.
- Orthogonality: Components that don't depend on each other are easier to change.
Favourite insight: "Good enough software"
The authors argue that software doesn't need to be perfect — it needs to be good enough for its users today. Shipping working software and iterating beats endlessly polishing before release. This sounds obvious, but in practice it's hard to accept.
Who should read it
Anyone writing software professionally. Junior developers will get immediate practical value. Senior developers will appreciate the philosophical grounding.
Verdict
One of the few books I recommend without any caveats. Read the 20th anniversary edition — it's been substantially updated.