Rating: Summary: terrible Review: Well, considering that I'm a computer science major, i figure that I know a great deal about programming and the such. However, I found this book to be simply incomprehensible. I've never wasted more time than I did trying to read this book. Worse than its failed attempts at instruction are its failed attempts at humor to "liven up" its instruction. After taking my class, i burnt this book.
Rating: Summary: Poorly written Review: Regardless of what you think is useful computer knowledge, this book does a bad job of presenting its topics. Especially for beginners, this book is very frustrating. The first few chapters often employ obscure mathematical tricks as examples of how the computing concepts can be applied. In the end, the reader doesn't see the forest for the trees and tries to figure out the math just to understand what the code samples are doing. Other parts of the book either mention in passing, or devote very little space to interesting ideas, and instead devote pages and pages to something fundamental, to the point that it gets very boring. Finally, I personally think this book is poorly organized. The first four chapters try to focus on maximum abstraction, and the last chapter presents a totally oposing view of computers--as register machines...which is a completely different paradigm. This confuses many people.I'd give this book zero stars if I could.
Rating: Summary: wrong way to start Review: I'm assuming this book is intended for beginners, since those who are advanced will only be wasting their time reading this childish text. If you're a beginner, starting to learn programming by reading this book is like discussing the next major physics theory without know any physics. You'll learn to philosophize and throw around grand but meaningless ideas. Starting with C and machine organization books (i.e. assembler) is a better way. You'll learn the internals first, find out what's behind programming. You'll know how procedures are actually called, and what some of the issues are. Than you can read books like these. In fact, towards the end of chapter 4, the authors themselves admit that their simplistic view of computers and languages is severely deficient if they want to descirbe things properly, so in ch.5 they introduce register machines (i.e..they teach you abou how CPUs work). Beginners learning from this text is akin to space scientits planning a complex trajectory, and than getting down to learn basic Newtonian mechanics. No wonder so many beginners I've talked with complained. They couldn't understand what all of this encapsulation meant, since they had no idea of the basic underlying process--simple pushes onto a stack and jmp instructions. Aside from the book's wrong approach, it's also terribly written. I tired to like it, but books can only be so boring before you start to feel aversion towards it.
Rating: Summary: not interesting Review: When will the professors learn, pedagocially correct curriculums don't always teach useful things. This book/course combo is an example. Nothing in this book is applicable. Nothing. Except for control of complexity through encapsulation, but just about any computer science course teaches that. It's the whole essense of computer science and we don't need yet another boring course to teach us that. I actually learned C and Pascal first, and I'm thankful I didn't get my mind screwed up by Abelson and Co. From those 2 languages, I went on to learn others and even assembler. I got the essential concepts. Had I read SICP first, and didn't know any better, I might be writing bloated, confusing code this very moment. I sincerely hope this book doesn't get widespread. It won't, all students I talked with hate it.
Rating: Summary: not too bad... Review: ...but only if you skim it quickly, brainwash yourself into thinking you learned a lot, and glorify this book because of its prestigious MIT roots. If you are one of those who think deep about the things you read, you'll realize most of this book doesn't make any sense. I learned the material from my college professor. (who hates the book, btw.)
Rating: Summary: Does a shoddy job of teaching Review: I liked some of the ideas in this book, but I later realized they were not presented by the author, but where merely good features of Lisp. After reading this book, I haven't learned all that much, and whatever I did learn, was a long and boring process. Regardless of subject matter, books *can not* be this inconsiderate of the reader. The author should show some enthusiasm and present the topics clearly. Instead, I found a haphazardly organized book with rushed discussion. Some interesting ideas were mentioned in passing, and instead, the boring drivel was dwelled on, sometimes for 20 pages. I often fell asleep after reading this book for 5 minutes. Lisp is worth learning, it's an interesting langauage, but don't learn it from this book. Read the book by Dybvig and Dybbig, for example.
Rating: Summary: The hardest course in the world just got harder Review: ...and more boring. I read this book in 10 sittings. In all honesty, it took me that long to understand material that came in chapter 3 and later. And I'm no novice. I've been programming for 10 years now, having done everything from compilers to database systems. I have never seen a worse book in my life. It is as if the authors are not trying to teach anything but are merely writing for glory and self gratification. I got the book in February based on some good comments on this page, and now I see that those people either had learning support in school, or they simply skimmed it and now have an illusion of having learned something profound. I certainly don't think the ideas here are of any practical value, and if they are (very few in this book) they have been known to all for a long time now. The first two chapters are a waste of space, and the rest are a waste of everyone's time. It is obvious this book was written to fill some dubious requirement at MIT and now other copycat colleges use it as well. I just feel sorry for the students who have to go through it all. At least I was able to return the book at will, having learned absolutely nothing.
Rating: Summary: I don't want to sound harsh but Review: the bipolar distribution of ratings shows how well this book separates the masters from the code monkeys. Read it. Study it. Find out which side of the fence you're on.
Rating: Summary: The best general book on computer science ever written Review: This is not a book for mass consumption, as the negative reviews below (and eventually above) clearly indicate. This is a book about how to structure complexity so that it remains easily understandable and manageable. You may think this is obvious, yes? But do you know how to do it for immensely complex systems? That's what this book is about. It's the difference between being a mediocre programmer and a virtuoso. If you plan on writing code that will actually be looked at again, if you plan on designing anything anyone will ever care about, if you want your view of computational systems to change how you look at the world, this book is first on your reading list. If you want to write spaghetti code for a living, get "C++ for Dummies" instead.
Rating: Summary: There is no easy way Review: If you are looking for the easy way out, you have the wrong book. SICP goes deep into the material and you have to go even deeper to understand it and come out as the better programmer. Reading this book in one sitting only works for the patient and intelligent. I consider myself to be both and I still had to work through it. I am a sophmore at MIT and when I took the course I had never programmed before, but after reading SICP and taking the course along with it, I believe I have come out to be the better person and programmer. The course is 4 months long, and I still found it difficult and falling short on time. The course is one of the hardest courses at MIT and probably the world and the book is equally difficult. Time with the material took me about 25+ hours per week on class time, reading and problem sets. I have never looked for the easy way out and neither does MIT and neither should the serious programmer. Reading this book has made me the better programmer and helped me understand programming in general as a whole. It has made my transition into more mainstream languages a whole lot easier. That is probably the only easy part about this book. I advise you to go online and try the problem sets along with reading this book and you will find that this is no frolic in the park, but definitely beneficial and even indispensible. If you are not serious and willing to work, then don't buy this book and stick with your "Learn Pseudo-Programming in 21 days". But if you are serious, buy the book and read it religously. It is no easier than reading the Bible itself, but it is as informative to Programmers, as the Bible is to "the believer". It is the "Messiah of programming" and you will benefit from it no matter what language you "speak",(program in).
|