Live data from Hacker News

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

opendocs.github.io

101–110 of 151 posts

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

#101
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…

Oh, boy, you should really finish reading the book! The second half is amazing. I just looked through the table of contents and almost all the things I remembered most fondly are in chapters 3, 4 and 5. It's all about understanding computing paradigms and related concepts by implementing them. It does circuits, object-oriented programming languages, dataflow languages, logic programming, register machines, garbage collection, compilers, etc.

Throughout the authors have very good taste in choosing the level of detail and realism in which to implement things to let you quickly get at the core ideas without getting bogged down in technical points.

As for the first half only being fit for fortran-programming engineering students, I remember that very differently. I only remember a few examples as requiring calculus, say Newton's method, some numeric integration procedures, symbolic differentiation, power series implemented as lazy lists of coefficients, maybe one or two more. And other than the power series, I don't remember any of those examples as requiring more than just high school calculus ---which makes sense, because I think the course is meant for college freshmen, which will have only completed high school calculus, and probably are taking a more advanced calculus class concurrently.

Although judging from my own undergraduate students it is probably best not to assume most students remember calculus from high school. Plus, I understand there are countries, such as the US, where calculus isn't even compulsory in high school! So maybe removing those few calculus examples would make the book seem friendlier and shorten it by 10 pages or so.

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

#102
post #88
post #27

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

How to Design Programs is probably the more appropriate choice: https://htdp.org/2019-02-24/

Thanks. How do SICP and HDP compare?

I did a quick glance and HDP seems to use DrRacket, but is the material comparable, with HDP just more appropriate for beginners??

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

#103
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…

I 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

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

#104
post #57
post #27

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

http://people.eecs.berkeley.edu/~bh/ss-toc2.html Bills itself as an intro to SICP for high schoolers.

Amusingly, the author of that book (Brian Harvey) was my professor for my first CS class, in 1996, where we used this very edition of SCIP.

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

#105
post #77
post #74

Earlier quoted context omitted.

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 calculu…

> but I'm fairly certain the original course was taught to MIT undergrads as an intro to CS and EE

This is correct: The course number was 6.001 and was a requirement in EECS in those days. I took it while SICP was still only notes in 1983, and the notes ended up as a book shortly after.

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

#107
post #96

SICP shows up every few months on HN, and I upvote enthusiastically every single time! I am a self-taught programmer, and survived a long time on C/C++/Java etc. I was smugly confident in my confined space. Then I came across SICP. I discovered a world of closures, streams, object-orientation done using closures, infinite series using streams, lazy evaluation, functional programming, and so much more. It was such a s…

Wow that is a fantastic story! Kudos for completing your PhD! Would you mind expanding a bit more about your PhD? Which school did you go to? Did you find that your age made it more difficult to get in/stay in once accepted? How did you handle family commitments (if you had them)? Reason I ask is because I've been considering going back to school to get a PhD. Again, that is quite an achievement, so congrats!

Thank you much. Sorry for the wall of text, but you got me going!

I had been living and working in California, and found myself at the crest of the dot-com wave of the late 90's and early '00s. But post-SICP, I _had_ to dig deeper.

I didn't feel prepared for the schools I wanted to apply to: Berkeley & Stanford. I am totally self-taught, and not having taken an exam in any CS subjects, the subject GRE was a huge mental barrier. So I applied to the Univ. of Cambridge in the UK.

That was a miscalculation. I was expecting to sit through a number of courses before figuring out what I wanted -- the US model -- but no, I was thrown into the deep-end right away, as an independent researcher. In my earlier life, I'd prided myself in knowing a whole lot of stuff just by building things in my own time (a TCP-IP stack from scratch, a Java compiler etc). But at Cambridge, I was told the "Dragon Book" (Compilers, by Aho, Ullman and Sethi) was so 1970's! I can't tell you how inadequate and how unprepared I felt.

In just the areas I was interested in (PL, concurrency, distributed systems), I was surrounded by researchers (at the cs dept and the microsoft research lab in the adjoining building) who _defined_ world-class. Robin Milner working on Distributed Pi Calculus, Tony Hoare on separation logic, Simon Peyton Jones on Haskell and type systems, Alan Mycroft, Jon Crowcroft advising the creation of the Raspberry Pi, Ian Pratt and Steven Hand on the Xen hypervisor, Peter Sewell on a rigorous (machine-checked) definition of systems and protocols.

But me, I didn't understand any of it, at least in the first year! I had never read a non-systems paper in my life; I didn't know the meaning of academic rigor. Those four years were the hardest of my life. Age was a factor. There was a distinct difference in stamina. Later I discovered that it was more fear that stymied my progress. I used to love math in my younger days, but I realized that lately, I was putting the more formal books back on the shelf "to get back to later". In contrast, Younger kids (and particularly the ultra-bright ones who land up at Cambridge) had no such fear at all because their formative math education had been top-notch.

On the other hand, my age served me well elsewhere. I had money, I was happily married (and still am, thank you!), so half my brain wasn't stuck on relationship issues. I didn't have to impress my peers with my ability to drink. I could travel freely to conferences on my own dime. I could quit any time (or so I told myself; I'd probably have regretted it if I had quit). It helped that we didn't have kids and that my wife was immensely supportive. There was another "mature" student also with the same background and outlook as me who'd sold his company for a few tens of millions (he was on the original Pentium design team!) and come in search of knowledge. He had two kids. He had a tougher time than I did not because of his family, because of the choice of his subject (quantum computing). But ultimately, he too has done well from himself.

Any how, I knew all along I would be very glad when the program ended, on two different axes. First, that the hard period was behind me. Second, that all this learning would fundamentally change me. I'm happy to say it did. I'm happy to report that I fared well -- my dissertation was nominated for a British Computer Society dissertation award. Privately, I felt I was trained just well enough to _start_ a PhD program. That imposter syndrome never left me! I have met many many PhDs who have felt that. I wish someone had counseled me on it.

I'll leave you with this. The amount I learnt makes my toes curl with pleasure. Then there's the meta-learning. When you spend so much time reading papers and rigorous arguments, you begin to have confidence in reading a paper completely beyond your ken, and getting to its essence. That's the real value.

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

#108
post #23
post #17

Earlier quoted context omitted.

WTF is this?

Please don't feed egregious comments by replying: https://news.ycombinator.com/newsguidelines.html . Flag them instead: https://news.ycombinator.com/newsfaq.html#cflag

I couldn’t figure out how to flag it. Thanks.

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

#109
post #96

Earlier quoted context omitted.

Wow that is a fantastic story! Kudos for completing your PhD! Would you mind expanding a bit more about your PhD? Which school did you go to? Did you find that your age made it more difficult to get in/stay in once accepted? How did you handle family commitments (if you had them)? Reason I ask is because I've been considering going back to school to get a PhD. Again, that is quite an achievement, so congrats!

Thank you much. Sorry for the wall of text, but you got me going! I had been living and working in California, and found myself at the crest of the dot-com wave of the late 90's and early '00s. But post-SICP, I _had_ to dig deeper. I didn't feel prepared for the schools I wanted to apply to: Berkeley & Stanford. I am totally self-taught, and not having taken an exam in any CS subjects, the subject GRE was a huge ment…

thank you for a fantastic and interesting narrative!

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

#110
I'm glad about SICP being promoted and accessible to people around the world.

Maybe 20 years ago, the authors put the full text for their textbook on the Web, as HTML. This made it more accessible to people, and set an early precedent for freely-available top textbooks on the Web (even though they presumably could've made more money by only selling print copies).

Then, since not all students' computers could run a Web browser, Lytha Ayth manually converted the HTML to Texinfo, with ASCII art of all the figures.

If one has the means to buy the printed book, doing so would seem like a nice gesture, in response to the authors' and publisher's generous sharing and example-setting.

Post reply on HN