Easing into SICP
First, read "Concrete Abstractions" by Max Heilparin (http://gustavus.edu/+max/concrete-abstractions-pdfs/index.html) and "Simply Scheme" by Brian Harvey (http://www.cs.berkeley.edu/~bh/ss-toc2.html). Neither of these books assume much programming knowledge, and should be accessible to anyone.
Next, listen to or watch Brian Harvey's lectures for "The Structure and Interpretation of Computer Programs" (http://webcast.berkeley.edu/course_details.php?seriesid=1906978502). This course uses SICP as a text book, but takes a less mathematical approach. The lecture notes are also available (http://www-inst.eecs.berkeley.edu/~cs61a/reader/vol2.html). This is a full semester course, so it will take you a while to get through it, but Harvey's lectures are easy to listen to.
Third, watch the lectures by Holly Yanko (http://www.aduni.org/courses/sicp/index.php?view=cw) for a SICP course. These follow the book very closely, but Yanko covers the material at relaxed pace. Unfortunately, these videos are Real Player, so you may have difficulty playing them. There are notes for the first few lectures.
Finally, watch the videos of Abelson and Sussman (http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/). At this point, you will certainly be able to understand the more subtle and/or complex points that they make.
Overall, this is a big commitment of time, but it will certainly shake you out of any rut that your current languages have put you in regarding how to solve problems with computers.
47 comments
[ 5.3 ms ] story [ 113 ms ] threadI've read the authors' presentations and thinking behind the program's design and I was impressed, but I think the end product they came up with just lacks anything special to recommend it. It's dry, slow, and not particularly fun.
I haven't done SICP so I don't know what a good prereq would be, but I remember The Little Schemer being entertaining and covering the same sort of ground as HTDP at a better pace.
I didn't quit after one chapter. I explained my experience in hopes of saving someone else from wasting time.
Edit: I didn't downvote you.
Other potential prerequisites to SICP, all of which use Scheme: The Little Schemer (http://www.ccs.neu.edu/home/matthias/BTLS/; a quick read, but a bit overly cute), EoPL (http://www.cs.indiana.edu/eip/eopl.html; a great book in its own right; I recommend the _first_ edition), PLAI (http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/).
Good story about it here: http://www.trollope.org/scheme.html
It was cut from later editions, for some reason. Too advanced? Too tangential to the rest of the book? Too bad.
The first edition is also really cheap. FWIW.
I've also used Picturing Programs (http://picturingprograms.com/philosophy.html) and "How to Design Worlds" (http://world.cs.brown.edu/) with a few students that had a great deal of math anxiety and wanted a more graphics-intensive approach. I myself had/have a great deal of math anxiety, so I appreciate all of their efforts on this front. All of these materials help student's get their feet wet before they get too scared of the waves.
BTW, Does anyone know if someone has worked out the kinks so that you can use SICP examples directly in DrScheme/Racket to make the transition from HTDP to SICP easier for students? The last time I tried it, there were too many little gotchas and I gave up due to (volunteer work) time constraints.
http://www.neilvandyke.org/sicp-plt/
Hope it helps.
[1] http://icampustutor.csail.mit.edu/
Can anyone here who's read it/is familiar to it comment on it?
I disagree with the recommendation for 'Simply Scheme', though. I didn't learn much from it, and I was disappointed with the amount of code in it that was non-standard stuff created by the authors purely for pedagogical purposes. I would personally recommend spending more time on HTDP or SICP instead of reading 'Simply Scheme.'
Several people have brought up HTDP, which is very much in the same SICP-inspired vein as these other books in the list. I personally find it to be different enough from SICP as to not be considered a precursor to SICP. YMMV.
I'm determined to learn Lisp now just so I can buy myself a cape and a fez.
This was my order of execution in learning Scheme: Schemer series -> HTDP -> SICP
I love what Eli Bendersky did here to track his progess as he was going through the book: http://eli.thegreenplace.net/category/programming/lisp/sicp/
http://eli.thegreenplace.net/2008/06/06/signed-copy-of-sicp/
One suggestion I have is to never skip any of exercises. They extend the discussions and are often very thought provoking.
If there are like minded people in your city, it is a good idea to meet regularly and discuss solutions after working through them.
I admit that I indeed skipped over that one.
It's an easy way to keep track of your work and collaborate with other people.
http://www-inst.eecs.berkeley.edu/~cs61a/su10/
(This is just one semester, you can find materials for almost every semester for the past few years with-some Google-fu)
You qualified your inference with a conditional (to be fair); but I still find the implication irritating.
I don't know about the other lectures listed but the 1986 lectures are worth a watch, they are quite motivating since both authors exhibit an infectious enthusiasm.
For someone who does not know programming at all, I'd recommend SICP first. The text is dense, no doubt there; but, IMHO, not dense enough to deter reading.
Of course, I'm more of a "learn-it-the-hard-way" person; mileage may differ for more easygoing people.