Beautiful Code is probably the best programming book I’ve read (and I’ve read a lot of them!).
Bookshops are filled with books about the mechanics of programming; “Learn X in N days”. But there are precious few books which manage to capture the thought processes and the wisdom of good programmers. Reading “Beautiful Code’ is like spending several hours in the pub in deep conversation with a bunch of really sharp programmers. If you care about programming, it’s a must-read.
When you write code, you make lots of decisions. Some are small scale, like whether to split a long conditional across two lines. Others are larger scale, like how to model concurrency in a large system. Ideally, each decision you make should be an informed one where you are aware of the trade-offs you are making. However, that thought process is rarely captured in source code. When another programmer reads your source in six months, they are probably going to wonder why you did it that particular way instead of different way.
So that’s the great thing about “Beautiful Code”. There are 33 articles, all written by programmers about systems they’ve built and care deeply about. The articles talk about the trade-offs and choices they made. Some articles focus on the design of small bits of software, such as Python’s dictionary implementation. Others focus on cool new techniques, such as Simon Peyton Jones’ article on transactional memory. There’s an amazing article about designing software for Stephen Hawking’s computer system (he can only operate a single input button). These are not trivial toy examples; they are real world systems with history and design.
There’s both a breadth and a depth to this book which really impresses me.