4 ms·
SICP is the one text I wish I'd known about when studying computer science at uni. When I finally discovered and read it, it was a truly eye-opening experience
by ldjb 10y ago
SICP is the one text I wish I'd known about when studying computer science at uni. When I finally discovered and read it, it was a truly eye-opening experience and revolutionised the way I thought about tackling problems and designing software. It may have been around for a while, but the ideas presented still hold water today.
As others have mentioned, the linked version has some definite improvements over the web version provided by MIT Press [0], which doesn't have particularly clear diagrams.
In fact, MIT Press does have an alternative version with larger diagrams [1], but the footnote links don't work.
Do also check out the 1986 Abelson and Sussman lectures [2] that accompany the text. Those two present the course in such an interesting and (dare I say it) fun way.
And for those who have already watched that and are curious, I've recently uploaded a 2004 version of the lectures to YouTube [3]. They're sourced from the SICP iCampus site [4], which is another fantastic resource, though I find the way that site presents the lectures to be a bit annoying. Completing the problem sets is a good way to check your understanding, though!
[0] http://mitpress.mit.edu/sicp/full-text/book/book.html http://mitpress.mit.edu/sicp/full-text/book/book.html
[1] https://mitpress.mit.edu/sicp/full-text/sicp/book/ https://mitpress.mit.edu/sicp/full-text/sicp/book/
[2] http://www.youtube.com/playlist?list=PLE18841CABEA24090 http://www.youtube.com/playlist?list=PLE18841CABEA24090
[3] http://www.youtube.com/playlist?list=PL7BcsI5ueSNFPCEisbaoQ0kXIDX9rR5FF http://www.youtube.com/playlist?list=PL7BcsI5ueSNFPCEisbaoQ0...
[4] http://icampustutor.csail.mit.edu/6.001-public/ http://icampustutor.csail.mit.edu/6.001-public/
- babyrainbow 10y ago>it was a truly eye-opening experience and revolutionised the way I thought about tackling problems and designing software. Really curious. Can you share a bit more details about this. Like specific instances of how it changed your thinking..
- ldjb 10y agoFor example, I previously tended to use a bottom-up approach to development. However, SICP showed me the benefits of what it calls "wishful thinking" with a more top-down approach. It also helped me finally 'get' functional programming. Even in situations where other programming paradigms make more sense, I'll still opt for a functional style a lot of the time and avoid state. I'm also a lot more confident with higher-order functions and closures after SICP help me understand them better. Seeing how cons pairs can be implemented as functions was simply mind-blowing. I think being able to use some of these techniques have improved the way I code. There are a lot of other topics, such as the meta-circular evaluator, that I haven't had the opportunity to put into practice, but are nonetheless absolutely fascinating.
- agumonkey 10y agoI have no idea why I started a lisp quest in my final uni year, but I felt the same when I found SICP. ps: beside the very bad quality images, I'm still in love with the old layout.