22 comments

[ 3.3 ms ] story [ 22.6 ms ] thread
(comment deleted)
(comment deleted)
These 1986 lectures are the definitive SICP experience — the Hal and Gerry show at its peak. The presentation quality holds up remarkably well, and seeing the metacircular evaluator built live is something no textbook can fully capture. For those who find the book dense, these lectures provide the pacing and intuition that make the abstractions click.
If you want to work through SICP, you can use MIT Scheme, but another option is to use Racket or DrRacket, with this add-on package: https://docs.racket-lang.org/sicp-manual/
I think we should only be recommending MIT Scheme. Everything else has got too much going on and can become distracting, for the purposes of education.
I second the recommmendation, for these two systems with a caveat. MIT Scheme has not been made to run on Apple Silicon, though with a few tricks, the amd64 version is usable on a modern Mac (this will presumably go away once Apple takes away Rosetta2). Racket might therefore be a better choice.

It is possible to use pretty much any decent Scheme system with SICP, but the language has changed since even the Second Edition, so I don't recommend it. That said, once you are working on your own projects, nothing stops you from using a different system, even though you might have to RTFM to see modern equivalents to ancient idioms.

I tried SICP straight from the book once, but I think the lectures are much better and the book acts as a supplemental reference.
Cannot recommend these enough. Watch the first one and you'll be hooked
These sound a little better than I remember. I wonder if the sound was cleaned up?
Should I do the JS or Scheme SICP
The JS version of the book (I still bought it when it came out) is just weird. It has you writing JS in a non-idiomatic way that you'd never see (nor should you be the person introducing) in the industry. SICP teaches a very LISP-y way of thinking through problems. It's not that you CAN'T apply these tactics in other languages... they're just far more "at home" in Scheme/DrRacket/heck... even Clojure.
Part of the point of SICP is to be generic about its programming principles. The core principles and concepts are independent of any particular programming language (so long as it has first class functions, and probably a few other common features). Since Scheme has virtually no syntax it was an ideal language for Ableson & Sussman’s course. It’s notable that SICP spends hardly any time teaching the language.

I’ve never understood, therefore, the motivation behind trying to “translate” SICP into a language like JS (or Python, etc.) It over emphasizes the importance of the preferred language in a way that very obviously undermines the book.

The point being: if you’re gonna do SICP do it in Scheme. You’ll get more out of it.

The thing about Scheme is that learning the syntax takes 10 minutes and then you can just focus on computation.
I always recommend these lectures, awesome!
The audio is so bad on these lectures.

Is there any way to clean them up?

This is how I learned lisp. I then went on to learn Clojure and built a career around it.
What could someone interested in systems programming gain from this?
Every programmer should learn LISP. or at least give an earnest attempt to study it. The vast majority of applied programmers only know how to think like C programmers (procedural). LISP is a “beautiful” language in that it is about concepts, not hardware. Totally changed my brain when I worked on a graduate project for a few years at my Alma mater in 1990.
I worked through these videos and the full book. Via news groups I organized an in-person study group. What a blast and a big unlock for me. The study group started having attrition about halfway through the book.
You don't have to do the exercises or follow along with the book. No matter if you are new to the field or have decades of experience: almost everyone would benefit from watching these videos if they haven't already (or done an SICP course).
Reading SICP was some of the best advice I got from /g/