SICP stands for “Structure and Interpretation of Computer Programs”, also known as “The Wizard Book” is a book known for its challenging subjects, exercises, and rather “weird” writing style.

I finished the first chapter and working on the second chapter. The “LISP enlightenment” that people jokes about has not came upon me yet, but I found my thoughts on programming better already.


Here are some interesting excerpts from the book:

[…] computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology.

[…] programs must be written for people to read, and only incidentally for machines to execute.

The general technique of isolating the parts of a program that deal with how data objects are represented from the parts of a program that deal with how data objects are used is a powerful design methodology called data abstraction.

The basic idea of abstraction is to structure the programs that are to use compound data objects so that they operate on “abstract data.” […], our program should use data in such a way to as to make no assumption about the data that are not strictly necessary for performing the task at hand.

The way you “suppose” to read the book is not usual, either. From my experience, trying to skim the text and understand it leaves you a shallow confusion at best. I am not a fan of the writing style, but do read them carefully, and try your best implementing every exercises throughout. Only look at a solution on the internet after you did spend your time and get stuck.

Also, do not be worry that LISP seems “dead”. Its syntax does not look familiar to the current popular languages (C, Java, Go, etc.), but its the thinking that sticks. You will definitely become a better programmer and thinker, no matter which language are you using.

Good luck to you (and to my future self) on being a SICPers (mind you, a website with the name do exists).