Reflections on the Art of Programming
The interviews in Coders at Work have several common themes that come up: is programming an art or a science? the changing environment for programmers and the changing nature of writing software.
The changing environment for programmers is frequently coming up. As it’s pointed out in the introduction, it’s only been about 70 years since the first fully operational electro-mechanical computer, Konrad Zuse’s Z3, arrived in 1941. Hence, the profession of “programmer” only goes back about two generations. However, it is one that has changed a lot relative to other occupations, most of the interviewees are in at least their early 40s, so many of the interviews jump back and forth from the present to 15 or 30 years ago covering history, trends and names from previous eras. Readers in their 20s might be wondering why to read a book about writing assembler for machines with memory measured in a thousandth of a megabyte. However, chances are, even if you’re not naturally curious by nature (and what programmer isn’t?) this book isn’t a just a history lesson; many of the people interviewed have been thinking in the future for a long time.
The layout is simple; each chapter is one interview, starting with a brief overview of what the person achieved to make it into the book. Many of the names will be familiar to readers who have spent some time in programming, but chances are you’ll learn a few things you didn’t know about their achievements.
However, readers will sometimes need to google acronyms, names and other terms that pop up. An example would be the reference by Simon Jones to the BCPL language, which while historically significant as an indirect ancestor to C/C++, it’s now probably mostly vaguely remembered by ageing Amiga fans – and some readers might have to google “Amiga” too while they’re at it. However, since this book is likely to be read by programmers, having access to the Internet is a fair assumption to make.
The interviews are mostly quite readable, Netscape alumni Jamie Zawinski’s interview is filled with some great quotes like, “This is not teaching people to program; this is teaching people where the semicolon goes.” that captures the problem with how computer programming is often taught today. The problem with learning computer languages is that the grammar always has to be correct, hence the need to show where to put the semicolon. But what Zawinski means is that once you show someone to write a sentence, they’re a writer but they’re not Stephen King.
Zawinski, like most of the people in the book, didn’t learn their craft in a computer science class. It’s maybe not surprising that C++, Java to a lesser degree (both taught heavily in schools), get derided a fair bit in some interviews, while less-known obscure languages like Smalltalk and Lisp get mentioned a lot.
So who is this book for? Readers will need to know a bit about the industry- or have the Internet nearby; there are some projects, theories and companies mentioned that someone outside the field would likely not be familiar with, though the author does make an excellent attempt to explain things at points. There are a lot of interviews that go from the macro (like theories and principals) and down to specific aspects of specific languages and programs that might be quite old. If you’re a programmer, this book is worth at least skimming- you probably won’t learn anything about where to put the semi-colons, but you’ll gain a bit of history about how we got here.