Hey internet friend, welcome back to another book review. If you want to just see the dog picture, click here. I decided to put this under the “stuff about computers” section, because I think it falls more into that category than philosophy. In this review, I am going to be writing about “Coders at work: reflections on the craft of programming” by Peter Seibel. a programmer who has written books outside this one, and thus isn’t just approaching the subject of programming as an academic – although he does interview a few.
If you have not heard of the book, let me briefly elaborate on the concept. As you might be able to tell from the “reflections” part of the title, this work is over 600 pages of interviews many of the giants in the history of computer programming. It starts with JWZ, aka Jamie Zawinski – a hugely influential developer who wrote a bunch of code and then started a night club in San Francisco. It ends with one of the biggest giants in computer programming history, author of “The Art of Computer Programming” series, Donald Knuth. After an initial discussion of what I like about the book, we will turn to a brief critique, and then end with a picture of my dogs.
First, there was a tremendous amount of knowledge to be gained from reading this book. Some of the people interviewed were around when computers was first becoming publicly available. That is to say that some of the people had been hacking on machines for as long as there were machines to hack on. Others were younger and grew up with the personal computer, although to be clear, they were much less powerful than most of our phones in our pockets today. Personally, I appreciated the human element of the book. It read like two people were sitting around and having a conversation and you got to be a fly on the wall.
In fact, there was so much information from these interviews it is hard to put it all together. One theme was that many (most) thought that programming was easier when they were younger. There are likely a few reasons for this, perhaps most important that younger people don’t have many (or any) obligations. Without having to get the kids ready for school, or any number of things that distract a parent has to deal with – when you are younger you can just hack on code all day. You can also spend time not at the keyboard thinking about the problem. When you have a job and responsibilities and meetings and kids and everything else, it is almost impossible to maintain the same focus when you are only responsible for yourself. Put a different way, the older you get, the less bandwidth you have available to keeping problems in your head.
Continuing to think about what I liked, the text confirmed what I suspected that some people just have a mind for programming. I think it was Knuth who said that roughly 2% of any population intuitively thinks like programmers. Given a machine and time, they will figure out how to make the computer do what they want it to do. I’ve often had the feeling that my mind was just not designed for writing code, and while some of the people interviewed thought the programming could be taught, to really have the special gift was just something that some people had innately. I think this struck home the most in the interview with one of my favorite people from computer science, Ken Thompson. This was the person who (according to legend) wrote the first version of UNIX in three weeks. Reading the interview it feels like listening to someone who just understands something in a level that almost cannot be explained. Almost like a wizard explaining magic.
Another thing that is good about this book is that you are exposed to a number of different programming philosophies. Some people evangelize one thing or another – whether that is functional, literate, or object-oriented programming. Like listening to someone who is really excited about something talk, it is fun to be a fly on the wall for people who are passionate about something. In a way, it makes you excited and want to try some things. It made me want to look at both literate programming as well as Lisp, just to see what all the fuss was about.
As much as I enjoyed this book, there were a few things that I want to highlight as being less than ideal. First and most important is that there was only one woman interviewed for the book. Out of all six hundred plus pages and fifteen interviews, that there was only one woman feels very wrong. There were plenty of women involved in programming and this felt like a real problem to me. Even in that interview, it felt like the author didn’t understand why more women were not programming. Perhaps it is because people who write the record don’t give enough credit or space to women?
There were some people that were chosen that could have been replaced. Ann Hardy is just one example of someone who could have (should have?) been included and would have been interesting. Margaret Hamilton contributed to the software of the Apollo space program to put dudes on the moon. There are other examples and I don’t want to put too fine a point on it, but if the author really wonders why the push to have more women in computer science isn’t successful, I wonder if it is because they did not know about who came before them?
I am not so myopic as to think that there is just one thing preventing women from getting into computer science. There are a number of reasons, and I want to make it clear that I am not trying to pile on to the author of this book. I think that there are a number of things that were good about it, and this was my biggest critique.
Ultimately, I thought the book earned its reputation for being a classic. Getting a broad idea of the way famous programmers think helped confirm some suspicions that I had, as well as provide some insight into common ways of thinking. Many programmers thought that it was something innate and that some people “had it” while others didn’t. That’s always been my suspicion as well. There was also a question asked of nearly everyone about how aging impacted programming. Most agreed that as they got older, it was tough to keep as much in their head at once.
In the lecture series I watched with Richard “Dick” Hamming one of the things that is suggested is that some people (such as hard sciences like math, chemistry, and physics) do their best work when they are young. While others (softer sciences and arts like composers, poets, writers) do their best work towards the end of their career. This idea (or at least the first half) was confirmed by most of the interview subjects in the book. Even though Ken Thompson would later contribute to the development of the “Go” programming language, it wasn’t like writing the first version of UNIX in three weeks while his wife and kids were on vacation. Which isn’t to say that you can’t do great work when you are older, just that you don’t have the time or focus you do when you are younger as you get older. Partially because of life obligations, but this was something that many of the interview subjects agreed on as well.
If you are interested in learning more about programming or want to read one programmer asking others about code, I think it is worth checking out. If I had to rate it out of five stars, I would give it a solid four out of five.
Thanks for reading this far, internet friend. Enjoy this picture of my dogs for getting through it (or if you skipped it and wanted to see the dogs, that’s cool too. I don’t blame you, they are cute and this review was long!) Finally, I hope you have a very nice day and a great rest of your week. Cheers!