Well me personally, I love SICP, I think it's one of the most important books to read as a developer.
However, I don't think its importance can really be appreciated by a neophyte programmer. The elegant modular approach to programming that is introduced in SICP seems like too much work until you have been programming for a while using the large, buggy, mostly undocumented APIs that the working developer has to deal with. (the blog post above seems to think that these don't exist, and all I have to say is that he has either been very lucky or doesn't do a lot of coding)
I always felt a first programming course should actually teach assembly first, then C, then an OOP language like Python or Java. If you are unaware of how the higher-level languages actually get mapped into the world of pointers and registers, it's really hard to understand performance issues, and how the various higher-level languages evolved in the way that they did.
All things considered, I think most people would agree Python is easier to pick up than Scheme, especially for someone who has never programmed before. As long as they eventually do teach a purely functional language at some point and introduce the concepts of functional programming, I think this is a great change.
Surely making a robot move around is more fun than calculating the Newton-Rhasphon method? :)
Python is easier to pick up than Scheme, except for someone who has never programmed before. Scheme has the simpler syntax and semantics, but Python is more likely to resemble programming they've already done.
And yes, making a robot move around is fun. SICP wasn't designed for fun. During the late '80s and early '90s it was a weeding-out course when too many people wanted to major in EECS. I thought it was fun, but a lot of people didn't.
However, I don't think its importance can really be appreciated by a neophyte programmer. The elegant modular approach to programming that is introduced in SICP seems like too much work until you have been programming for a while using the large, buggy, mostly undocumented APIs that the working developer has to deal with. (the blog post above seems to think that these don't exist, and all I have to say is that he has either been very lucky or doesn't do a lot of coding)
I always felt a first programming course should actually teach assembly first, then C, then an OOP language like Python or Java. If you are unaware of how the higher-level languages actually get mapped into the world of pointers and registers, it's really hard to understand performance issues, and how the various higher-level languages evolved in the way that they did.
All things considered, I think most people would agree Python is easier to pick up than Scheme, especially for someone who has never programmed before. As long as they eventually do teach a purely functional language at some point and introduce the concepts of functional programming, I think this is a great change.
Surely making a robot move around is more fun than calculating the Newton-Rhasphon method? :)