the item

Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
1996

the questions

  1. How to learn to program

more about the



the consensus



recent reviews

  1. Zen and the Art of Motorcylce Maintenance
  2. The Sparrow
  3. SEOMoz
  4. Mythical Man-Month
  5. Code Complete
  6. Pragmatic Programmer: From Journeyman to Master
  7. This Perfect Day


join our mailing list


if you liked
'Structure and Interpretation of Computer Programs'
you also might like



Your Ad Here



comment on
'Structure and Interpretation of Computer Programs'




book ideas? feature requests?
other information not related to 'Structure and Interpretation of Computer Programs'?




continue the research

















all external links are affiliate links. bit.ly is used to provide real-time tracking

   

the buzz

Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along


Abelson and Sussman's classic Structure and Interpretation of Computer Programs teaches readers how to program by employing the tools of abstraction and modularity. The authors' central philosophy is that programming is the task of breaking large problems into small ones. The book spends a great deal of time considering both this decomposition and the process of knitting the smaller pieces back together.

The authors employ this philosophy in their writing technique. The text asks the broad question "What is programming?" Having come to the conclusion that programming consists of procedures and data, the authors set off to explore the related questions of "What is data?" and "What is a procedure?"

The authors build up the simple notion of a procedure to dizzying complexity. The discussion culminates in the description of the code behind the programming language Scheme. The authors finish with examples of how to implement some of the book's concepts on a register machine. Through this journey, the reader not only learns how to program, but also how to think about programming.

  


What is this?

A while back I wrote an article on my blog listing all the books that hackers recommended to each other from the site HackerNews. The purpose was to provide a place to list book recommendations so that people didn't have to type in the same list over and over again. (HN gets several requests for book recommendations a week. I also get at least a couple each month). It was very well received, and many posters and commenters either asked that I make a site or sent me an email asking me to do so.

How is this any different from the list on the blog?

This list has more books. This list is sortable both by what question you have and your skill level. In addition, once you sort the list, you can save the link with your sort and send it to somebody else. So, for instance, when somebody wants a book for noobs learning to program, you can make a link for that and then reuse it

How did you collect these books?

Initially the list came from Googling HackerNews.com "best book" and taking the books from the first few pages returned. Later, I added all the books that were mentioned "You left that out!" when Jacques posted the link. While adding those books, I came across a Stack Overflow link where programmers were asked to list their favorite tech books, so I included those too.

If I ask you to put a book on here, will you?

It depends.

These books were all gathered by finding places where hackers hang out and are suggesting books to other hackers and other hackers agree with them by voting up their suggestion. If I can find an example of this for your book, I'm happy to include it.

How are the books ranked?

I did the best I could with ranking. I am sure there are many things you do not agree with. It would be possible to add voting and personal ranking -- that would make the system much better. Heck, you could rank the books yourself and use it as a customized book list to show to people who want your advice. I'd like to do that, but if I've learned anything is to not let your featureset get ahead of the users. This first version will test the waters to see what kind of interest the community might have.