Reviews

Beautiful Code: Leading Programmers Explain How They Think by

cstack's review

Go to review page

3.0

Definitely don't read it in order. I started doing that and got bored. It's much better if you skip around. Some of my favorite chapters:

1. A Regular Expression Matcher
3. The Most Beautiful Code I Never Wrote
18. Python's Dictionary Implementation
28. Beautiful Debugging
29. Treating Code as an Essay

lolindrath's review

Go to review page

5.0

A great collection of essays, don't read it straight through, pick out authors you know or topics that are interesting to you and don't feel bad if you don't read every single essay.

spiralnode's review

Go to review page

informative slow-paced

2.0

I had high expectations of 'Beautiful Code': I wanted to learn. Learn from how some of the best people in the industry view beautiful code, how they define it, how they work towards it, how they identify smells (for lack of a better word) and any techniques I could replicate too. But this book is borderline unreadable: the essays are disjointed, the quality of writing and explanations is all over the place, and it reads indulgent rather than educational.

There is a vast range of code approached here - from C to Java to Fortran to Matlab and even assembly, and if you are looking to learn how to judge the beauty of code, it becomes quite the exercise if you aren't versed in all of the programming languages it's going to be difficult to grasp all the intricacies you should be criticising. And I would even argue it's not useful to try, Fortran isn't used in the industry today apart from highly specialised weather predictions, and the code presented aged pretty badly with some examples being as old as from the 70s. Other essays were useless for me personally, but other readers might interact with them differently - having read the MapReduce paper by Jeffrey Dean, this abridged version did nothing for me, it's literally a fragment of the paper.

Where was the editor? The contributors seem to have been given complete free reign to the degree that the text turned from teaching to bragging. Also, the quality goes down very rapidly, and some essays don't even feature code, but are more akin to meditations on characteristics of refactored code or high level architectural concepts, like the principles in Ruby.

I did have a favourite, though! The essay on Quicksort optimisation was interesting, a step by step journey into code analysis, how to view performance, how to look under the hood at how each instruction runs. Also towards the beginning of the book was an essay on three-way diffs, how trees model them, and that I also thought was explained well, was approachable yet challenging. Out of the later essays, probably the ones focused on Python, on the internal dictionary implementation and Numpy, were interesting to read about and potentially applicable.

scottkirkwood's review

Go to review page

2.0

It's a real hodgepodge.

kejadlen's review

Go to review page

4.0

Not as good as I had hoped, although there are a few gems between the covers. There's a lot of actual code in this book though, so be prepared to do some serious reading and thinking should you pick it up. Overall, it was fun to read, but I'm not sure how much I took away.

davesw's review

Go to review page

2.0

The quality (and my enjoyment) of these essays varied quite a bit. The overall quality seem much higher in the first half of the book, the last half was a big slog for me. I ended up skimming some of them, as otherwise I never would've finished.

It's not just that the essays were outside my areas of interest (I enjoyed some of them for that very reason), but more that they had little of interest to say. The "beautiful code" theme was also rather broadly interpreted. One essay in particular was about some VB6 codebase that even the author admitted was low quality (that particular piece should not have been included in the book).

I'd say the book is worth skimming; some of the essays were very thought provoking.

Not a book that I see myself referencing or even re-reading.
More...