For some reason, I seem to learn better from books — actual, printed books — than I do from other forms of documentation. You’d think that programming of all things would be best learned at a keyboard, web tutorial in one window and shell in the next, but somehow when I need to absorb a big chunk of information in one go, books work better for me. I suppose they are more isolating, and encourage more concentration.
Anyway, books have been very important in my development as a programmer, and I want to talk on this blog about some of those important books. As I write this, I have eight books in mind, though I may well think of others as I gradually make my way through these.
Most of the books on my list are quite old (one of them from 1974, which I think is the oldest). That’s not accidental — I think that, even in as fast-moving a discipline as programming, it takes time for a book to establish itself as a classic; and the really good books are timeless. So there will be no Learn Head-Rush Turbo Enterprise Java Enterprise Beans For Dummies In The Enterprise In Twenty Minutes in this series. (Bonus points, by the way, for anyone who can guess what the 1974 book on my list is.)
But although I love old books, I want to start this series with the most recent book on my list (although as you’ll see the 2009 publication date is in some ways misleading, as it’s largely about programs written long ago). That’s because it’s the book I’m reading right now — I’m in the middle of the last chapter as I write this — and it’s the book that probably did more than anything else to provoke me to start this blog.

Coders at Work: Reflections on the Craft of Programming -- Peter Siebel
Continue reading →