Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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

[1] https://mitpress.mit.edu/sicp/full-text/sicp/book/

[2] http://www.youtube.com/playlist?list=PLE18841CABEA24090

[3] http://www.youtube.com/playlist?list=PL7BcsI5ueSNFPCEisbaoQ0...

[4] http://icampustutor.csail.mit.edu/6.001-public/



>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..


For 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.


I 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: