6 ms·
Anyone else feel like this book is really overrated? I've enjoyed the classical mechanics book by the same authors a lot more since it goes over a particularly
by formalsystem 7y ago
Anyone else feel like this book is really overrated? I've enjoyed the classical mechanics book by the same authors a lot more since it goes over a particularly good application where functional ideas shine
- methehack 7y agoI totally respect and even admire dissenting opinions, but, on the contrary, this book is magic for me. For me, it connects programming to larger and vital human endeavor. K&R does that for me too, so maybe it's a me thing.
- dorfsmay 7y agoThat's an interesting comparison. K&R did nothing for me, I honestly did not understand C until I read Harbison & Steele.
- catalogia 7y agoK&R blew my mind when I was a teenager, but years flipping through it again it does nothing for me. I think the experience somebody will have with K&R depends greatly on their previous experiences.
- zabzonk 7y agoIt's certainly not "mind-blowing", and is not intended to be, but it is a brilliant example of how a technical book on a specific programming language should be written.
- dorfsmay 7y agoThe point some of us are trying to make here is that K&R works for some learning styles but not others. It's definitely not universal.
- catalogia 7y ago"Blow my mind" might be a bit of an exaggeration, but whatever magic was once in the book is now gone for me. Experience with other books and other languages has shifted my perspective such that K&R no longer feels special to me.
- sireat 7y ago30 years later I still love K&R . Harbison & Steele is a fantastic reference. However, I could never get into SICP mostly because it was so... impractical and pure. Besides i'd had enough of RPN working on https://en.wikipedia.org/wiki/Elektronika_MK-61 https://en.wikipedia.org/wiki/Elektronika_MK-61 . I suppose one should get into SICP when one is still at the right age (<25)
- zabzonk 7y ago> it connects programming to larger and vital human endeavor What endeavour exactly?
- methehack 7y agoGood question -- I appreciate it. The application of human ingenuity to solving problems maybe (engineering in the widest sense). But there's something even more abstract, I think... Something more like _thinking_ most generally. It's almost like reading philosophy in the way it carefully and openly walks through a progression of thoughts...
- Zanni 7y agoK&R still holds a place for me as one of my favorite programming books. It may not hold up today, especially not for new readers, but at a time when the alternatives were Pascal, Fortran, Basic and Assembly, the C Programming Language was an intoxicating blend of power and elegance. In addition to serving as an introduction to C, K&R was opinionated in a way that I hadn't seen from other programming books to that point, with as much emphasis on style as how to get things done. It's the Strunk and White of programming (or was at the time).
- kps 7y ago> It's the Strunk and White of programming (or was at the time). On the chance you don't know — and because many don't — Kernighan & Plauger wrote The Elements of Programming Style a few years earlier.
- omaranto 7y agoI know you probably mean it as a compliment to K&R, but you shouldn't compare K&R with S&W: while both are opinionated, the advice in K&R is coherent and sensible! S&W is a bizarre book: it's a pleasure to read because the authors are both excellent writers, but they don't know anything about grammar so their advice often makes no sense. Seriously, read it again (it's a short book) and count how many times they actually follow their own grammatical advice (their advice not about a technical grammar point is usually sound, and you should, for example, omit needless words). My opinion is that you should take S&W as style exemplar, but not a style guide. Geoffrey Pullum's article 50 Years of Stupid Grammar Advice explains all this better than I can: http://www.lel.ed.ac.uk/~gpullum/50years.pdf http://www.lel.ed.ac.uk/~gpullum/50years.pdf
- dunefox 7y agoEven when the alternative was (Common) Lisp?
- inimino 7y agoWhat was your exposure to the book? I have gone through it twice with study groups, and have done all the exercises, and feel if anything it's underrated.
- brians 7y agoIt covers unification in a first term class, plus functional, OO, and machine models of computation. I’ve used SICP as a student, and comparing it to HtDP, CTM, or some ad box stuff as an instructor—there’s no contest. Each of the others is excellent in its own way; none is as ambitious in its intent nor goes so far in satisfying it.
- nextos 7y agoI agree SICP is better than HtDP, but CTM? CTM is in many ways a SICP sequel, and equally ambitious.
- zabzonk 7y agoPresumably https://www.info.ucl.ac.be/~pvr/book.html https://www.info.ucl.ac.be/~pvr/book.html - and one of the ugliest web sites I've seen in recent years.
- nextos 7y agoWhat does a plain HTML academic site have to do with the quality of a book? The book itself is beautifully typeset in LaTeX. Some other pointers: http://wiki.c2.com/?ConceptsTechniquesAndModelsOfComputerProgramming http://wiki.c2.com/?ConceptsTechniquesAndModelsOfComputerPro...
- CalChris 7y agoYes. 61A at Berkeley was nominally based on SICP. Berkeley has since abandoned the book and the class is now taught in Python. MIT 6.01 has abandoned the book as well and recreated the course using Python as well. Scheme was wonderfully elegant but then we never used it again which was annoying. If the choice is between Scheme knowing I'd never use it again and Python then I'd take Python. We never had any readings from SICP. It sat on the shelf like an unread bible. I went back to it much later but I didn't like its conception of computer science. I compare it directly to Knuth's Fundamental Algorithms and it just didn't inspire me at all whereas FA did. I'll grant that I can't imagine a freshman course using FA, mostly because assembly language is very much de-emphasized. However, I'll second someone else's comment about the beauty of the typesetting of this edition. And I really liked Scheme. But neither 61A nor SICP are touchstones for me.
- armitron 7y agoSussman is still teaching SICP through his Adventures in Advanced Symbolic Programming [1]. The Python course happened clearly due to politics and popular appeal. Sussman expressed his disappointment about it multiple times. Abelson did the same in the interview that's linked in this thread. It is sad but a good example of how far the academic institution has fallen in this century. Ultimately it is the students that really lose out. [1] https://groups.csail.mit.edu/mac/users/gjs/6.945/ https://groups.csail.mit.edu/mac/users/gjs/6.945/
- FiberBundle 7y agoThe programming language itself is irrelevant. After you have learned the concepts sicp introduces you can learn any language much faster.
- inimino 7y agoI feel these moves are part of a general move towards "industry ready" skills and away from fundamentals earlier and earlier in computer science programs (even prestigious ones). Whether that's a good or bad thing is a separate discussion from your opinions on SICP. What's your personal experience with SICP? It sounds like you were a student in one of these courses ("we never used it again") but you also wrote "We never had any readings from SICP." so I'm not sure what you took and when. Did you work through SICP and still find it overrated?
- bitwize 7y agoSICP is not about FP, it's about all forms of programming. It starts with FP because that's the easiest model to reason about. Then it shows you how if you add state to FP, that can get you to OO. Then it shows you how you can use that to build an evaluator for your favorite programming language, or a virtual machine that can serve as a target for many languages. As a deep dive into a single topic it's not very good, but as an overview of much of computer science it's unparallelled. Knuth appears to have gone for the deep dive approach, and good on him -- but that's why TAOCP is yet unfinished.
- jholman 7y agoI do think it's a book of quality, which admittedly is a relatively rare category. But yes, I think it's hugely overrated, especially when characterized as the "one true best way" or something, to learn programming. (Note that I am commenting on the first half or so of the book, never having gotten past that. Maybe the last half of the book is the best book ever written, I do not know.) For one thing, half of the examples are calculus. If you are an engineering graduate student with experience in fortran (which is the original intended audience, just watch the original lectures), that's a great idea. For humans with little to no formal mathematical training, it's pretty poor. I once helped to lead a study group on SICP with half a dozen highly motivated junior-to-intermediate programmers, and everyone found the exercises insanely hard for this reason. (Of that group, btw, I would say one student greatly benefited, two dropped out, and the rest got some benefit.) For second, I strongly disagree with the claim that functional is a "more natural" or "more intuitive" way to think about programming. I've helped teach hundreds of adult students to program (and become working developers), most of them with no prior experience, and I would say that less than 1% of them found recursion anything other than a crushing mindfuck. Whereas more than half of them took to imperative programming in a much shorter length of time (a few weeks, say). (None of these students were given SCIP, tho.) Based on the perennial praise in threads like this, I concede that must be those in the world for whom it's a great book, and that's great. I am firmly convinced that these people are atypical. On the other hand, it is a book that concerns itself with important questions, where IMO most books do not, so that alone makes it, as I said at the beginning, a member of a rare and distinguished category.
- branweb 7y agoNot sure about the video lectures, but I'm fairly certain the original course was taught to MIT undergrads as an intro to CS and EE. See https://people.eecs.berkeley.edu/~bh/sicp.html https://people.eecs.berkeley.edu/~bh/sicp.html and https://mitpress.mit.edu/sites/default/files/sicp/course.html https://mitpress.mit.edu/sites/default/files/sicp/course.htm.... I don't totally disagree with you btw. Pretty sure in that interview with Hal Abelson someone mentioned above, he admitted the book leaned a little heavily on calculus because all MIT freshmen had to take that course, so it seemed a natural source for examples. Perhaps not as natural to someone who hasn't taken a calculus course in a decade (me). I still got a lot out of the book though.