7 ms·
Hm. Not entirely sure what to think. I find SICP to be a mind-blowing book - a truly enlightening experience. But not, perhaps, entirely suited for beginners.
by veddox 8y ago
Hm. Not entirely sure what to think.
I find SICP to be a mind-blowing book - a truly enlightening experience. But not, perhaps, entirely suited for beginners. I first started reading it four years ago, just over two years after I had started to teach myself programming in high school. Although I already found it interesting and its functional programming approach did have a lasting impact on my programming style, I recall finding it somewhat too challenging on the whole and didn't get very far. Half a year ago I started it again and have been blown away by the elegance and fundamental importance of the concepts it presents (although I'm still not done yet). For one thing, I understand the foundation of OOP a lot better now than I ever did from reading Java books...
So if the author is saying that SICP is a bad programming textbook because it doesn't include a "How to build a webapp in 12 easy steps", well, he rather missed the point. But if he is arguing that it perhaps isn't the most suitable textbook for a first year CS student fresh out of high school - that is a fair criticism.
- simias 8y agoI agree, I started reading SICP a few years ago when I was already a professional dev. I enjoyed it quite a lot, it's a very elegant book. That being said if I try to put myself back in 16 yo old me learning to code to write games for my calculator, I would've been incredibly frustrated by this book. The insights on the nature of programing constructs would've flown completely over my head and at the same time it wouldn't have given me the practical information I needed to get things done.
- johan_larson 8y agoIt is useful to consider the audience the book was written for: first-year students at MIT in the 1980s. That was a formidably bright and meticulously prepared group. Many of them already had some programming experience from high school. It's not too surprising that a book tailored to such a crowd's particular needs is not particularly suited to other students, whether less bright, less prepared, or simply true beginners to programming.
- randcraw 8y agoAgreed. Fashion and perspective change with time, and the approach taken in SICP doesn't match up well with the cognitive impedence of 18 year olds today, some 40 years after the book was written. Then, PCs were not yet integrated in university teaching. It was still common for students to sketch out new software in pseudocode on paper before sitting down at a terminal they'd waited hours to get access to. And of course, editors were crude, IDEs nonexistent, and the compile-run-edit cycle often took 15 minutes or longer. Programming was more deliberate, involving absolutely no cutting and pasteing. Coding then was much closer to writing a proof, which goes a long way to explaining why SICP put more emphasis in principles, formality, and derivation than we do today.
- darkpuma 8y ago> "Many of them already had some programming experience from high school." Supposedly those that did found SICP to be more challenging than those who didn't.
- cdmcmahon 8y agoI agree. I think the quoted professor-authors' point in the quoted passages is to make a book like SICP, designed to teach deeply rooted computer science concepts more approachable to beginners without going to the extreme of "How to build a webapp in 12 days". I support the effort, as I think it's a bummer that the choice as a beginner is often between a too-difficult SICP and overly abstract and non-theory-based tutorials.