Live data from Hacker News

Structure and Interpretation of Computer Programs (1996) [pdf]

opendocs.github.io

71–80 of 151 posts

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#71
post #33

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

It 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.

I agree SICP is better than HtDP, but CTM?

CTM is in many ways a SICP sequel, and equally ambitious.

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#72
post #71
post #33

Earlier quoted context omitted.

It 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.

I agree SICP is better than HtDP, but CTM? CTM is in many ways a SICP sequel, and equally ambitious.

Presumably https://www.info.ucl.ac.be/~pvr/book.html - and one of the ugliest web sites I've seen in recent years.

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#73
post #61

Earlier quoted context omitted.

K&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.

It'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.

"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.

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#74

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

I 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.

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#75
post #72
post #71

Earlier quoted context omitted.

I agree SICP is better than HtDP, but CTM? CTM is in many ways a SICP sequel, and equally ambitious.

Presumably https://www.info.ucl.ac.be/~pvr/book.html - and one of the ugliest web sites I've seen in recent years.

What 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/?ConceptsTechniquesAndModelsOfComputerPro...

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#76
post #20

The contents of the book are wonderful, but I can't stop admiring the TeX typesetting itself. It's startling how effortless it is to read this document compared to 99% of Web-based reading I do every day. The things that stand out to me most are the lack of vertical whitespace "rivers" due to the smart kerning & tracking, the small-caps for technical initialisms like 'HTML', and the beautiful beautiful Garamond of th…

TeX isn't so bad when you use a typeface other than the eyeball-scarring, madness-inducing Computer Modern.

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#77
post #74

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

I 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 exa…

Not 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 and 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.

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#78
post #32
post #27

Question: will you recommend SICP as an intro to programming book for say high schoolers? Or, does it assume some prereqs?

It does not assume anything except algebra (and I think some minor calculus concepts are mentioned in passing, as using higher-order functions to estimate derivatives or some such, but not at all required). However, it is designed to be used in an introductory university course led by experienced instructors. Without support, even a highly motivated high school group would have a hard time with the material and pace.…

This is not true. I've watched conversations on this over the years on HN, and inevitably you get a few people saying the math is nothing to worry about, and then a bunch of people saying they had to give up because they didn't have the math background (oftentimes these are professional programmers).

My recollection from the bit of time I spent with it was that most of the examples were drawn from mathematics, often times relying on implicit bits of knowledge that would lose a reader unless they'd had long interest/experience in math.

I think the issue in divided opinions here is a matter of lost perception of the range of math knowledge: I've noticed this same communication difficulty when playing new people at Go and they ask whether I'm good or not. I never really know how to reply because on an absolute scale I'm an abysmal player—but against anyone who's never really studied the game I'll appear incredibly skilled.

When people answer that SICP requires very little math background, I think that's an accurate phrasing relative to a more global scale of math knowledge. But in the realm of folks with no particular interest in math, it requires a relatively sophisticated knowledge of mathematics.

If a high-schooler is training for math olympiads or they're on track to study math/CS/etc. at a top-tier university, they'll probably be fine. All the others will likely be completely lost.

Here's another example from today's thread: https://news.ycombinator.com/item?id=21301474

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#79
post #74

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

I 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 exa…

The second half of the book (Ch 4 & 5) I think are paramount to SICP, and arguably the apex of the book.

Re: Structure and Interpretation of Computer Programs (1996) [pdf]

#80
post #62

Earlier quoted context omitted.

I 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.

K&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 poi…

> 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.

Post reply on HN