Opinions on SICP

I just got some good advice from one of the smartest programmers I know (Anders Conbere) on learning functional programming.  He recommended Structure and Interpretation of Computer Programs (aka SICP) and The Little Schemer as good candidates.

I’ve never read it, but I’ve always heard great things about SICP.  Imagine my surprise when I searched on Amazon and found that about 1/3 of the 153 votes were for one star.

What’s that about?

Advertisements

5 Responses to “Opinions on SICP”


  1. 1 Anders Conbere September 26, 2008 at 9:50 am

    I suspect there are a couple of reasons for this.

    first it’s a very common “introduction to programming” book. Unfortunately it presupposes a desire arrive at an understanding of computation beyond what most introductory students are prepared for. I know that in the classes I had that used SICP there were a number of students that complained (loudly) about the book and the complaint I heard most often was that the book was simply “impractical”, that this wasn’t “what programming was like”.

    It takes some maturity of thought to recognize that there are lessons to be learned beyond the ability to simply put code down into a file and have it run.

  2. 2 Marina Martin September 26, 2008 at 3:01 pm

    Anders read a single paragraph of the SICP book to me and I knew I just had to have it. It made me want to solve logic problems on a white board (which may not seem like SUCH a stretch for me, I know).

    I’m particularly wary of the average rating of any programming book because you’ll have reviewers who are just learning the basics when who I really care to hear from are the more advanced programmers who can speak to whether the book actually forms a solid foundation, whether example code is efficient, etc. I recently bought (and currently love) “Core Web Application Development with PHP and MySQL” based on a single Amazon reviewer who was looking back on it after becoming a more experienced dev.

    If Anders suggests a book, I’d buy it 🙂 {Anders: you need an Amazon affiliate link!]

  3. 4 Jon Harrop September 29, 2008 at 5:56 am

    Static vs dynamic typing lies at the core of the discrepancy. SICP predates modern type systems and encourages a typeless form of programming only suited to dynamic languages like Scheme. I consider this to be extremely damaging for anyone trying to learn modern techniques (e.g. .NET generics).

    The best example I have ever seen of this impeding the development of a programmer trying to learn modern static techniques is given here:

    http://curiousprogrammer.wordpress.com/2006/12/22/speed-comparison-plt-scheme-ocaml-and-c/

    See my comment therein for a vastly more succinct and efficient typeful solution to the same problem.

  4. 5 Ridho Reinanda October 14, 2008 at 3:21 am

    I guess that happened because it’s not as ‘introductory’ as some people expected it to be. To appreciate it, you really need the motivation to learn, to be a good programmer. I read SICP and watch the video lectures five years after my introductory programming classes, and still gain a lot of insights from the book. This definitely goes to my essential programming bookshelf! The book (and the video lectures) really grows on me..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s





%d bloggers like this: