Apps Industrial Deals Beauty Save up to 85% on textbooks Women's statement sneakers nav_sap_plcc_ascpsc Unlimited Music. Always ad-free. Learn more. STEM Introducing Fire TV Cube Grocery Handmade Personalized Jewelry modern furniture and decor Book a house cleaner for 2 or more hours on Amazon TheGrandTour TheGrandTour TheGrandTour  Echo Fire tablets: Designed for entertainment Kindle Paperwhite GNO Shop now SWMTVT18_gno



on August 26, 2014
This was the book that made me want to be a computer programmer. When I read it, I had no knowledge of programming beyond a little Pascal, and rudiments of C.
It had a massive impact on me. It consumed me, to the point where I had difficulty finishing assignments for my classes (I did not study CS as an undergrad). What the book does is give you a vocabulary and knowledge about programming that is hard to find anywhere else.

The text, the examples and exercises, have a mathematical flavor, and that may turn off many potential readers, who would rather gadget around than find elegant solutions for the 8-queens puzzle or efficient algorithms to compute Fibonacci numbers.

I've lent this book to several friends who were interested in learning to program, and in all cases they have returned it to me, saying it went over their heads.
There seem to be two camps in computer programming:
- the gadgeteers, who want to hook devices together and make them do fun things
- the scientists, who appreciate computing as a medium in itself
This book is for the second type.
59 people found this helpful
11 comment Report abuse
on August 5, 2017
Structure and Interpretation of Computer Programs is one of those much admired, frequently discussed, oft purchased but rarely read classics. It's not an easy read: It took me four tries to get through it.

But it's worth the effort: By the time you are done you will know about imperative programming, functional programming, meta programming, lazy data structures and everything in between.

This is one book that should be on every programmer's list.
9 people found this helpful
11 comment Report abuse
on August 19, 2018
I have only worked part of the way through the book, but it is one of the best books I've had the pleasure of learning from. It has an academic mathematical flavor to it, and the material is fairly dense; but the authors are masterful teachers and the exercises are very effective. Scheme is a fascinating language. At first it is uncomfortable to look at, especially if you're used to more mainstream languages. But once you get acclimated, you begin to see the beauty and raw power it holds. I recommend using the Racket IDE with the SICP extension when working through the book.
0Comment Report abuse
on January 27, 2009
You need it, too. I won't pretend to have more useful insight into the art and craft of programming, or into SICP's relationship to it, than Paul Graham or Peter Norvig- if you want to know which reviews to trust, look these cats up.

The discussion in the reviews usually concludes that this is the book that separates the computer scientists from the mere programmers. There is a definite logic to this. If you want a book that will have you churning out code that does something helpful in half an hour(because you don't think the several ways to calculate the Fibonacci Sequence are helpful), by all means, pick up Learning Perl or just read the Python documentation. They are great tools. If, however, you want to tool up on problem-solving technique a whole level or three higher up, SICP is for you. The Wizard Book is about learning to think better.

Here is where I diverge from the idea that this book is for only computer scientists, though. I am an artist, graduated from college with a BA in art, going to graduate school for an MFA. SICP is one of the books that changed how I work and think. It will make you a better programmer if you read (and reread (and reread)) it in the same way that learning Latin will make you understand language itself in a whole new way. I use ideas from SICP constantly, to design software, but also to design staircases. The book is slow-going, no doubt about it, but you'll have a whole new mental toolset at the end.

One caveat- this book is freely distributed in its entirety on MIT's website. I still bought a copy, though: who knows how long this internet thing will last, but SICP is going to be relevant forever.
30 people found this helpful
0Comment Report abuse
on December 31, 2016
Great book. Has changed my perspective on the subject. I would classify it as an advanced book in the subject of computer programming. If you have a solid understanding of the fundamentals of computer science I recommend reading this book.
4 people found this helpful
0Comment Report abuse
on October 18, 2009
The authors have an ambitious goal - to fundamentally change the way you think about computing. Scheme is used as a vehicle to illustrate how large, complex systems can be designed by abstraction. Several real-world examples are used: a picture language, a circuit simulator, a compiler and a PROLOG-like pattern matching language.

To get a flavor of this book, search for "SICP Lecture 1a" in Google Video. It's the first of 20 lectures delivered by the authors of the book in 1986. If you decide to purchase the book, use it in conjunction with these lectures to get the complete SICP experience. You will come out of a smarter, wiser software engineer.

Also, how often do you see visionary computer scientists like Peter Norvig and Paul Graham give 5 stars to a book?
13 people found this helpful
0Comment Report abuse
on August 21, 2013
I've worked through the first three chapters of exercises, and they are challenging and fun. I'm learning scheme so that I can get better at functional programming in general, mostly in Clojure and Javascript. Scheme is a perfect "teaching language", though, and I think that this book should be any aspiring programmer's first introduction to programming before they even touch a compiled language.
10 people found this helpful
0Comment Report abuse
on November 27, 2017
One of my favorite textbooks from undergrad. It was used in my first CS class. It was first exposure to a language other than BASIC, so I acknowledge the bar was pretty low, but I was blown away.
0Comment Report abuse
on March 16, 2007
This text introduces CS essentials in an engaging and practical way. The first two chapters on procedural and data abstraction are much better CS preparation than learning Java or C++ or Ada or Pascal. Abstraction and specification in software development are absolutely necessary if software "art" is ever to become a "science."

I used this text last year to teach a one year introduction to computer science to some rather advanced homeschooled high school students. Scheme is a much better choice for a teaching language than C++ or Java. There is no need to deal with memory management issues as with C++ and the development model is simpler than with Java. And scheme makes many things easier to achieve than with other languages: higher-order procedures (chapter 1) and hierarchical data (chapter 2).

For my own enjoyment and personal enrichment I have used chapters 4 and 5 as a basis for my own explicit control evaluator for scheme in C++.

A classic. Every CS graduate should do remedial work now and read this text, if they have not done so already.
13 people found this helpful
0Comment Report abuse
on March 14, 2011
This is hands down the most personally influential book I've ever read on computer science. It's on "computer science," so the going can get pretty heady sometimes. It's also deep. Unless you're exceptionally gifted, you won't grasp all the material the first time around. I'm on my third run through of some parts, and still feel like I've barely scratched the surface. On a side note, chapters 1-3 should be required reading for all programmers. Four and five, while much more interesting (imho,) will be much less useful in your day to day software engineering tasks.
7 people found this helpful
0Comment Report abuse

Sponsored Links

  (What's this?)