A whole bunch of people have been talking about and reviewing Peter Seibel‘s Coders at Work since it came out several weeks ago. I love this kind of book anyways, but seeing the buzz around it moved it up my reading queue. I particularly enjoyed Jeff‘s review at Coding Horror, and Bryan‘s reviews on Journal of a Programmer.
I’ll get to my conclusion first, since there are many details: this book is great fun to read. I really enjoyed it. It doesn’t necessarily have the best writing, the most clarity, or the most riveting interviews I’ve ever seen. But it ranks highly on all counts, it’s well-organized, consistent, and insightful on almost every page.
If you’re a programmer or coder, and especially if you see that as a badge of honor, you should buy and read this book.
There are software developers out there who look down on the craft of programming. They prefer to think in abstract notions, designing “system architectures” or being architects, and they treat the implementation as trivial.
To me, that has always been incomplete at best, and more often just foolish or useless. The devil is often in the details, and the devil matters, as it turns out. Because those who ship (release products) win.
Most (maybe all) of the programmers in this book agree with the above. They share plenty of battle stories, each one getting asked about the worst bug they ever had to deal with. They share plenty of opinions, some of which I agree with, some I don’t.
There is a lot of ego in this book as well. Some of the claims border on the ridiculous, even. But if you’ve ever been in the zone as an athlete, or achieved flow as a programmer, you know that given the right conditions and the right problem, you can be 100x as productive as usual for a short while.
So when I read a claim like Brad Fitzpatrick writing memcached overnight, I actually believe it. And it makes me smile in understanding. To me, that’s far more impressive than any system architecture that never left the whiteboard or PowerPoint deck. The deliverables of consultants, in other words, which are mostly worthless by themselves.
I’ll probably post a separate blog entry about some detailed bugs, answers, and other thoughts on the book. I wanted to get the basics out of the way first. I love this book.