Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) second edition
Use the Amazon App to scan ISBNs and compare prices.
"Devoted" by Dean Koontz
For the first time in paperback, from Dean Koontz, the master of suspense, comes an epic thriller about a terrifying killer and the singular compassion it will take to defeat him. | Learn more
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Frequently bought together
About the Author
Gerald Jay Sussman is Panasonic Professor of Electrical Engineering at MIT.
- Grade Level : 12 and up
- Item Weight : 2.05 pounds
- Paperback : 657 pages
- ISBN-13 : 978-0262510875
- ISBN-10 : 0262510871
- Product Dimensions : 9 x 6 x 1.2 inches
- Publisher : The MIT Press; second edition (September 1, 1996)
- Reading level : 18 and up
- Language: : English
- Best Sellers Rank: #23,339 in Books (See Top 100 in Books)
- Customer Reviews:
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
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.
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.
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.
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?
Top reviews from other countries
2) Exercises: For me the exercises were so intrinsic to learning from this book. It is not a book meant to be read like fiction. The exercises while not begin way above the level taught in the text are just slightly tougher to enable you to reinforce your learning. Many times the exercises would contain a great algorithm and ask you to fill in a small bit. The exercises therefore are not supplementary to the text but an intrinsic part of it and contribute to what makes this book so good.
3) Built from the base: The book takes us on a journey from primitives (functions provided in most assembly languages) to writing programs. This is one benefit of writing with the functional programming language Lisp. One revelation for me was his much of programming could be done without for loops but just with recursive calls. Many times in between functional programming language topics are touched upon. The final chapter competes the story of registers to programs. Good amount of ground covered for a thin book.
4) Who should attempt this: irrespective of what others might say, this book is definitely not for beginners. I would suggest attempting this book only after atleast a thorough course in algorithms, and atleast a few months experience in coding. A good path to learning before this course for beginners to CS might be 1) 6.001 MiT watch. full course online, dont necessarily have to solve all the problems. 2) Take the coursera course in algorithms to strengthen learning. Do all the problems here in language of choice 3) attempt edx IIT bombay 'introduction to programing : Algorithms'. Thus particular course (as taught by Ajit Diwan and Pathak) creates a good foundation to recursive thinking. One that you will appreciate and strengthen when you learn SICP.
5) Lisp is not a constraint : The book is written in a language called lisp. You dont need to know lisp to understand the book. The language is easy enough to pick up as you read the book. Further at the end of the book you can claim to understand a new language.
6) How long does it take to read: A book this size to read from cover to cover might take a day. But to make the most of this book you may have to stick with it for a fortnight (at least) of learning. Even legendary coders like John Cormack have found the book challenging.
7) Is this book for you: This is one of those where you do not choose the book, the book chooses you. Are you excited about coding or is coding a means to get the job done. Do you find yourself thinking about problems or do you immediately look up the answer on stackoverflow. Are you willing to invest time in becoming a better programmer or would you rather earn a new skill /language in that time. If the answer to any or most of these is the former, then what are you waiting for? Get the book, download scheme or Dr. Racket (Lisp IDE) and get started!