I find this upsetting. I don’t mind that MIT uses Python for subsequent courses. That seems like the right decision, because Python is a fairly-good-at-everything language and probably fits well enough for most courses (excluding operating systems, which would be done in C, and programming languages courses). However, the core knowledge of programming that comes from an SICP course is something that shouldn’t be thrown out. Maybe it should be the second course in the curriculum and perhaps it should be taught in Clojure instead of Scheme, but it shouldn’t just be tossed away, and there are things about programming that are much easier to learn in a homoiconic language than in a more traditional one like Python.
ETA: My feelings about “programming by poking” are mixed. I think that it’s useful in education because it allows people to focus on the intrinsic nature of a problem without having to care about, say, how the robot physically works. What I don’t like is that so much of modern “software engineering” is only poking because most software managers are afraid to take the risk involved in actual work. Taking fundamentals out of education (not to say that this is necessarily happening here) because of the sad state of software employment seems like a bad move to me.
I like a lot of what you say, but seriously, you can’t blame other people (i.e. managers) all the time. I get that it’s comforting to play the victim but it’s such an oversimplified view of reality!
I’m a software developer so I’m keenly aware of the problems with software development (particularly for the web). I run a software business so I happen to be a manager too, and let me tell you: it’s very difficult to do things “properly” and stay in business.
This picture of stupid “managers” forcing invariably brilliant but exploited software developers to churn out crap is so lacking in nuance that it’s useless.