(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.
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.
I also think you are introducing functional programming the wrong way to beginners. It's best and most intuitive use imho is in a math class. For example this book: https://cs.wheaton.edu/~tvandrun/dmfp/ has little prereqs, and will teach the reader both programming and math regardless of educational background. It really, really shines when it comes to learning counter-intuitive things like cardinality. I'm not the only person who thinks so either, here is one of the curriculum designers of Bootstrap, a US highschool programming curriculum, explaining how naturally that style of programming fits with algebra classes. https://www.janestreet.com/tech-talks/curriculumn-design/
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.
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.
It was worth the read. I just think with a wider variety of examples, I could have gotten the exact same benefit with far less extraneous effort.
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.
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?
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.
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
On the chance you don't know — and because many don't — Kernighan & Plauger wrote The Elements of Programming Style a few years earlier.
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 .
I suppose one should get into SICP when one is still at the right age (<25)
What endeavour exactly?
CTM is in many ways a SICP sequel, and equally ambitious.
Some other pointers: http://wiki.c2.com/?ConceptsTechniquesAndModelsOfComputerPro...