4 ms·
> Structure and Interpretation of Computer Programs (SICP) by Gerald Jay Sussman and Hal Abelson. SICP is my all-time favourite programming book. It’s also wher
by so-cal-schemer 2mo ago
> Structure and Interpretation of Computer Programs (SICP) by Gerald Jay Sussman and Hal Abelson. SICP is my all-time favourite programming book. It’s also where I learned about the power of wishful thinking when coding. SICP uses wishful thinking as a design tool: write code as if the abstraction already existed. Pretend. Then, once the ideal abstraction has taken shape, you go ahead and implement those functions. This meta-level is what made SICP so valuable. Ultimately, it’s a book that teaches how to think about code and problem solving. I’m tempted to even say that SICP is more a work of art than a pure coding book, but I won’t go there. A beautiful book.
Obviously, this is a timeless classic. I too love the writing style and its precise, articulate prose; it sets a bar for what I expect at MIT. There is much wisdom to glean.
This note about "wishful thinking" is an important concept from the book that I rarely see mentioned, but is core to the authors' layered approach of building systems. In essence, it's a development style of hallucinating or confabulating appropriate functions and data structures during the design of your programs from the inside out, which you would implement later on. (A quite natural approach with a Lisp/Scheme REPL.)
It's also why I never understood the fuss about supposed failures in AI code generation. Some developers never read SICP, I guess.