Structure and Interpretation of Computer Programs is arguably the best book ever written about computer programming, in precisely the same way that the Feynman Lectures on Physics is the best book about physics. Both SICP and Feynman are the product of genius; both were addressed to freshmen at high-powered schools; and both are virtually impossible to learn from. Impossible, that is, until you've spent years wrestling with their subjects from other, more pedestrian perspectives. Then and only then does the god-like viewpoint start to make sense.
SICP is about how to think; Feynman is about how the universe works. The big secret, in both cases, is abstraction: the ability to see through the particular to the general — that is, discovering how to look at specific individual cases and recognize the overarching principles that unify them.
In SICP the chapter "Metalinguistic Abstraction" begins with an excerpt from yet another book that's on my far-too-long list to read someday, John Barth's novel Chimera:
... It's in words that the magic is — Abracadabra, Open Sesame, and the rest — but the magic words in one story aren't magical in the next. The real magic is to understand which words work, and when, and for what; the trick is to learn the trick.
... And those words are made from the letters of our alphabet: a couple-dozen squiggles we can draw with the pen. This is the key! And the treasure, too, if we can only get our hands on it! It's as if — as if the key to the treasure is the treasure!
And that reminds me of a children's picture book by Fulvio Testa titled If You Take a Pencil. It's arguably the best counting book ever written, with clever, lovely pictures of cats, trees, sailors, treasure chests — and then, the real treasure is revealed. I won't spoil the ending ...
(see Abelson & Sussman; cf Thinking Tools Examples (8 Apr 1999), Books to Consider (16 Apr 1999), Data vs Program (1 May 1999), Genius and Complexity (25 May 1999), Late Physicists (24 Sep 2000), Creative Devices (1 Jan 2001), No Concepts At All (22 Feb 2001), Personal Programming History (2 Apr 2002), Parting Advice (21 Jun 2002), Fractal Feynman (30 Jan 2003), ... )
TopicLiterature - TopicScience - TopicProgramming - 2004-04-23
(correlates: UndeadTrafficIncident, BookCoverJudgment, LearningInconsistency, ...)