Rating: ![4 stars](http://www.reviewfocus.com/images/stars-4-0.gif) Summary: Challenging, rigorous, and fun. Review: This book is an excellent companion to The Little Schemer. TLS is a profound and witty tour of recursion theory, but does not touch on the practical considerations of creating efficient programs (and does not claim to do so). SICP provides the assiduous reader with the distinction between a procedure's definition (which may well be recursive) and the process it generates (which may be iterative). It provides the means to make informed choices about program design. In particular, the book centers on writing language interpreters, which is an excellent strategy for understanding all of the problems faced in real-world programming.Because the book evolved from an MIT undergraduate course, the exercises tend to be thematically related to engineering concerns (math, physics, etc.), whereas TLS uses food. Do not be put off by this emphasis on math applications; the book is broadly applicable to all domains of program design, and is not *about* mathematics or engineering. Then again, you might consider the book to be an engineer's approach to program design, in that its emphasis is on correctness and efficiency, and not on abstract beauty or brevity. It should go without saying that you will not get anything out of the book if you do not do as many of the exercises as you are able.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: A great book and a magnificent vocational test Review: SICP is an excellent, perhaps the best, advanced introduction to computer science and programming. It covers topics such as functional abstraction, data abstraction, OOP, program design, constraint programming and logic programming, always from a language design point of view. You will need a decent mathematical background to follow it. If it's such a great textbook, then why half of the reviewers hate it? Elementary: SICP is not just a textbook, it's also a Computer Science aptitude and vocational test. If you read it and like it, then Congratulations! You are a real programmer and computer scientist, with hair on your chest. If you don't like it, then you should be studying something else. Law, mortuary science, whatever, but not CS.
Rating: ![3 stars](http://www.reviewfocus.com/images/stars-3-0.gif) Summary: This book has very little to do with modern software enginee Review: I would have to agree that this book has very little to do with modern software engineering. While some experience with meta-languages is certainly beneficial, spending an entire semester writing scheme progs is a solid waste of time. C++ and Java have been on a market for a Number of years (c was founded in 81), and all of the potential employers "appreciate" ur knowledge of them. Another point I want to bring is in regard to some previous reviews oversimplifying the transition from meta language to C++. Not only it is not easy, but it is also quite confusing. May be reading C++ in 24 hours gives you the idea that you are a big guy, but believe me, C++ is much more powerful than that. Take a look at The C++ Programming Language by Bjarne Stroustrup is you feel you are ready to face the challenge, but please don't stop your quest at the page X.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: More important then Finnegan's Wake Review: Review the quagmire the reviews, phew! Ok, what is going on with this book? Clarity in a nutshell, to boot! The Book; in 300 years folks will be studying scheme and will be studying scheme right out of this book. However; Graham's, Norvig's and Knunth's books will be as accessible as a horse and carriage on I-95, I-90, I-80, I-40, and "the five." Why is scheme important and why will scheme last? Simple. Scheme was the first version of "Lisp" to really get "lambda" correct. Scheme's ties to pure mathematics is terse complementing ~sicp~ is dense. Sicp is the most important printed literature to develop from our species in the 20th century. Why is scheme important and why will it last. Ok, onto the Lisp posse: Suggest a ~better~ book. Let's write "different." On scheme, Simply Scheme and How to Design Programs rock! Maybe sicp is not for you? Yeah, that does not mean you are not interested in functional programming, and you are not interested in scheme, and you are not interested in pure mathematics. Suggest a different book. The missing case of the Lisp posse: Maybe you are interested in C, C++ and interested in functional programming, and maybe you do not find scheme friendly. Try Haskell. And remember that there are other functional languages too: ml, o'caml. Maybe you are not satisfied with a course, a functional programming course, a CS theory course, whatever, that is taught in scheme. Well, get some guts and goto your CS dept's. Dean and demand that the university/college teach Haskell. I think the coolest version of Lisp I have ever seen is Chaitin's version he cooked up for "~the books~." And Chaitin rocks! ~peace yo!~
Rating: ![1 stars](http://www.reviewfocus.com/images/stars-1-0.gif) Summary: solid waste .... of time Review: I'm not sure who the target audience is (besides the poor MIT undergrads who are force to sift through this [junk]), but having taught (as an assistant to a professor) a lower-level computer science class (one not dealing with Scheme, thankfully) I have asked many freshmen abou their thoughts on this book and the class taught out of it. *ALL*hated it. Some PhD students, whose specialty was programming languages, tolerated it, while other PhD students also hated it. So there you have it. If you are into programming languages like Scheme, this text is for you to salivate over Hal Abelson's self fornication (how else would you call the senseless drivel he wrote?). Otherwise, stay away. Beginning CS students will come away frustrated, as virtually every conventional algorithm is NOT implementable in scheme, and those who aren't beginners and have no inherent interest in Scheme will simply find the book a waste of time.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Brilliant Book for the Gifted Beginning and Advanced Persons Review: This book might be a good read if you are at the beginning level or have at least ten years of computer experience. Don't read it in an intermediate state. Also it is the type of book that is a great enjoyment for people with idle brainpower. To be a successful professional in the computer field it is not necessary. It maybe even misleading. Here you have to manage solid day-to-day work and not feel like an inventor of a new language. Prerequisites for the book are some interest in philosophy and linguistic and a slight remembrance of a few years of college math. It contains lots of small intellectual gems. Complete explanations of a language interpreter and a compiler are more down to earth.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: SICP interpretations by a UC Berkeley undergraduate Review: This book, is the first part of a 3-course introductory sequence (AKA the 61 SERIES) in "Computer Science" here at Berkeley. I'll tell you this,,, I must say that the word "INTRODUCTORY" doesn't belong there..! I am currently enrolled in what most CS students from berkeley would recognize as CS 61A. This is one BEAST of a course! I am struggling really hard to get that "A" grade. It is a very time consuming course (that is,,if you really try to truly grasp the essence of SICP and want a good grade). There are soooo many times where i went through extreme pain and frustration just to solve "ONE" of those problems in the book! FOr example, THE MOBILE PROBLEM!!!!!! -for those of you that know Though, i have to say, the book is an "underlying" foundation for the Upper Division courses. It introduces you to many real-world topics,techniques, concepts like parallel distributing, object-oriented programming, streams, data-directed programming, message-passing,,, coercion, as well as environment diagrams, how to keep track of changing local state, and the main BIG IDEA,,, DATA ABSTRACTION! It teaches you how to write programs efficiently. Although it doesnt teach you how to program in JAVA, or C/C++,, who cares!!!! Scheme is da bomb!! and besides, after getting through with this book, you can LEARN ANY PARTICUlAR PROGRAMMING LANGUAGE ON YOUR OWN!! and in a FEW DAYS!!!! ITs cuz this book stresses you the main concepts in computer science and programming, and so...if you wannna learn JAVA, all you gotta do is just learn the syntax! Same with any other high-level programming language!!!
Rating: ![3 stars](http://www.reviewfocus.com/images/stars-3-0.gif) Summary: Has nothing to do with modern software engineering Review: I can see why this book gets mixed reviews. On the one hand, it is very well written and covers some interesting ideas, but on the other hand, it has absolutely nothing to do with modern software engineering practice. If you just want a good stimulating read, then by all means buy it, but if you want to learn something of practical value to the software engineer you must look elsewhere. It also strikes me as being rather old fashioned and doesn't issues such as distributed computing or object orientation adequately.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: The usefulness of this book is not immediately obvious. Review: This book is not about learning lisp. It's even only fringely about learning how to program. What's contained in it is more than a simple description of abstraction, or modularity, or anything else you'd find in an introductory text. It even escews talking about those concepts in their simplest form to a degree. It approaches them from a 50,000 foot level, discussion how everything is an abstraction, and by layering these abstractions we can build comprehensible programs. This book has the possibility to change how you think if you listen to it. That being said, it is _not_ a book on how to build software. I've seen many good software engineers discard this book because most of the code presented has no business anywhere near a real software engineering project. Even a lot of the concepts portrayed don't belong in day to day use. But at the end of the day, this book gets the closest I've seen to explaining the hard parts of computer science and software engineering. It's a book about patterns without explicitly discussing them. It's a book about how design software without much explicit discussion of the design process. Much like some of the abstractions and "meta" concepts that it presents, it's a book that teaches you how to learn how to learn about programming...
Rating: ![2 stars](http://www.reviewfocus.com/images/stars-2-0.gif) Summary: Stack Overflow Review: Scheme is a great language for writing Scheme interpreters and compilers. This book is just as self-referential as Scheme is. It is a book by MIT professors for an MIT class and is published by MIT Press. What works for a programming language doesn't work for a book. The class this book is designed for is on introductory programming. But don't expect to learn programming here. The authors have too many axes to grind to have time to worry about the best way to teach beginners about programming. They must point out that the C language suffers "defects" and that C programmers can be "reformed" by programming in Scheme. Every member of the MIT computer science department circa 1980 must show up somewhere in the footnotes, another distraction for the authors. There is plenty of good computer science here, but you already have to be a computer scientist to appreciate it. And the Scheme language is itself wonderful. Just don't try to learn it here. The teaching method used in the book is adding successive layers of abstraction. To the authors, the world beyond Cambridge, Massachusetts is nothing but a vague abstraction.
|