Coders at Work: Reflections on the Craft of Programming
Terrific account of programming adventures and convictions by some of the disciplines stars. My favorite chapters were on Jamie Zawinsky; Netscape, Brad Fitzpatrick; author of Memcached and now working on Go at Google, Douglas Crockford, Joe Armstrong, Simon Peyton Jones, and Peter Norvig. I found most of the other chapters fairly weak, hence the 3-star rating, despite the interviews with the ones named easily being 4-5 stars.
It's interesting how a few of them have somewhat quit the disciplines and now live far away from computers. I can see the appeal in that, but, I can't really see myself doing it long-term, which many of them have done. The amount of commonalities in what they've each discovered is great. They alll describe it in slightly different ways, however: solving the problem at the right level of abstraction, not using every feature under the sun, defining data structures before anything else, and encouraging that atmosphere where people have enough slack in their workday to experiment—but also enough direction to be successful and not screw around all day.
A phrase that Simon Peyton Jones used a lot I haven't been able to stop thinking about is: "[..] your code should obviously have no bugs rather than having no obvious bugs." I like that a lot. I can really appreciate that from all the code that's come back to bite me where I've said "this is solved now!", where, really, it's band-aid onto a ship rather than taking the ship back to the shipyard.