Earlier quoted context omitted.
I completely agree, but at the same time, it's a barrier to entry that I think might be unnecessary. Some college freshman haven't taken calculus, and SICP would seem a bit daunting at times to those students, I imagine. Unfortunately, I think HtDP goes too far; it's too dumbed down.
> Some college freshman haven't taken calculus... Yeah, and that's a serious problem, too -- and one that I'm guilty of! ...that is, if I'd ever gone to college. :-( I am very much not encouraged by a "race to the bottom" when it comes to education. If calculus is too difficult for the student, then perhaps the student should not consider a career in programming. I say that without any malice whatsoever; I'm not symp…
There is some programmatic thinking in mathematics and there is some mathematical thinking in programming, but they are very distinct disciplines and skills.
It's easy for academically-oriented people to say "oh Python is just glue, web development is just calling apis, etc. etc." But this so-called 'gluing together' of libraries and apis actually presents seriously tricky algorithmic challenges all the time, just at a higher level. The reality is that seasoned CS phds often aren't any better at solving these problems effectively than a smart and creative 19 year old with a few years of python behind him/her. I don't say this to diminish the type of thinking SICP teaches--on the contrary, I think it's extremely important and cuts to the core of good programming. BUT I do think it's a mistake to assume that you can always better train yourself for this type of thinking by doing problem sets and theorizing versus ramming your head against messy real world problems with whatever Turing-complete language is at hand.