By some accident of history, I’ve never touched Python, though I’d had this feeling that a language with a lambda and a read-eval-print loop couldn’t be all bad. So I picked up this book (partly because everyone told me it rocked), and it’s a perfect intro.
Having written a technical book that can’t exactly be described as concise, I have a sneaking admiration for books at the other end of the spectrum. Here’s the introduction to Chapter 2, in its entirety:
“You know how other books go on and on about programming fundamentals, and finally work up to building a complete working program? Let’s skip all that.”
I was ready not to like this book (even though everyone said it rocked), because I’d run into short pieces of his before, and had an instant allergic reaction to his attitude.
Graham’s primary stylistic device is the flat, oversimplified, totally unsupported assertion. He simply tells you the way things are, in short declarative sentences. He does this equally confidently with subjects he knows a lot about (e.g. programming languages) and subjects you suspect he knows less about, like history. (“The English Reformation was at bottom a struggle for wealth and power, but it ended up being cast as a struggle to preserve the souls of Englishmen from the corrupting influence of Rome.”)
At first I found this purely annoying, just as I expected to, and found myself thinking “What a dick!” as often as I did “How insightful!”. But if you willingly suspend any beliefs you might have that things are complicated, and follow Graham into his vision, the insights do grow on you. The best essays are about the subjects he really does know well (programming, Lisp, design, tech startups), but even when writing about other things he surprises you with his unusual clarity, and you realize that the clarity and the blunt certainty aren’t easily separable.
For example, here’s Graham’s (paraphrased) explanation for modern teen attitude: teens are just bored, because schools are warehouses which exist for the sole purpose of keeping children out of the way of busy adults, whose modern jobs are too complex for teens to help with. And what is a teenaged nerd? A kid who is prematurely focused on real (adult) subjects, and so isn’t working on the popularity game full-time.