Coders at Work

Coders At Work, by Peter Seibel, interviews 15 famous computer scientists about both the technical and non-technical issues in computer science.

Seibel starts off by asking every person how they learned to program. The person answers, and Siebel keeps digging for more wherever it goes, creating a conversational tone that makes the book an easy read with immense depth. Whenever a pause in the conversation is hit, Siebel asks another standard question. Rinse and repeat for 4 or 5 main questions. Siebel is quite a skilled interviewer. He goes in depth when he needs to and gives each question enough time to cover the major issues. The result is that you get to see how 15 respected people have totally different views on the same subject.

For example, how is computer science as a field, going to solve parallelism? We have so many cores and no idea what to do with them. Many say functional languages are the way to go as they give you this nice ability to go do some piece of work given an independent set of data. Others say transactional memory is just one of many ways to solve the concurrent problem.

The book also gives insight as to how differently people approach programming. Some like the "bottom-up" approach: you just start writing code, hashing things out as they go. Some, notably Donald Knuth, like to think about the program for months on end before even touching a computer. Some programmers need nothing more than a text editor and print statements to debug any program. Amazingly, one of the interviewees who is known for his debugging abilities, simply rewrites everything and magically bugs go away.

Since the programmers were good, many eventually moved into management. Siebel asked about managing computer scientists starting with one of the biggest problems: "how do you find great talent?". Some of the interviewees went with a very unsatisfying answer - it's a gut feeling. They have to talk with the person for an hour. They have to bounce ideas off someone's head, see how their head works. Or they just ask them about their old projects and see what problems they encountered and how they solved them. Thankfully, many of the interviewees didn't like the logic puzzle approach to finding people. (I bomb magnificently at such puzzles!)

Others such as the director of Yahoo pointed out that he looks at their writing skills. If they have great English, they probably have great code. A few other people said the same thing. Then it hit me that it could entirely be true. Both writing and coding are fundamentally about translating an idea into something understandable. English for humans; code for computers. Both use the same thought processes. An essay needs structure, needs to be edited, and rewritten numerous times, which sounds a lot like refactoring.

The great thing is that coders at work is filled with many more "ah ha!" moments. These 15 genius' just keep throwing insight after insight in such explicit glory that I found myself feeling like a better programmer just by reading the book. If you're a programmer that cares about the craft at all, you need this book.