Book Cover - Book Review: Structure and Interpretation of Computer Programs

Brilliant. A classic to understand what programming is really about.

There are many books to learn how to write computer programs. This book is different.

It was the textbook for the introductory programming course at MIT where authors were teaching starting from the 80s, and was largely used by teachers all around the world. But the book is not an easy ride.

You will learn so much more than just how to write a program in a given programming language. You will learn the art of computer programming by understanding the different paradigms (functional, imperative, logic), what is a programming language through building an interpreter and a compiler, all of this using only LISP (variant Scheme). The content is incredible, brilliant, and impressive.

I’ve been an “experienced” professional programmer since more than a decade. What is the point of reading an introductory book? Personally, I found in this book the best demonstration of how functional programming makes it easier to reason. But that’s not all. I think any programmer will find profound insights even on topics we think we master.

The book uses mathematics as the basis for most examples: prime numbers, Fibonacci numbers, square root, Pi evaluation (but also bank account withdrawal to discuss mutability). Nothing too complicated even if like me, your mathematical background is stored in an arcane part of your memory. I enjoyed that the authors use the same examples to illustrate different variants/paradigms/implementations. The book is wonderful to appreciate the full range of programming. It’s the kind of book that makes you see programming differently.

The book also contains numerous exercises (without their solutions), but if like me, you can’t spend a semester working on them, you may safely ignore them and still enjoy the reading.

The Wizard Book, as it is known in hacker culture, should definitely be on every programmer’s reading list. It has since been replaced in 2008 by a new introductory course at MIT, which uses Python. I can easily imagine the motivations but this doesn’t make this book obsolete. Not at all!

About the author

Julien Sobczak works as a software developer for Scaleway, a French cloud provider. He is a passionate reader who likes to see the world differently, to better understand the extent of his ignorance. His main areas of interest are productivity (doing less and better), human potential, and everything that contributes in being a better person (and a better developer).

Read Full Profile

Tags