...a lot of people saying we shouldn't be dumbing things down, but lets have some common sense. You don't shove someone off a boat in the middle of the ocean to teach them to swim. You can't hold every single child to your own experiences. I was putting together 386s at 9 and 10, but I wouldn't try to make this a standard for another child. That's just arrogant.
If you want to teach young kids to code, you need to have an environment that focuses on coding, and has little barriers to getting to that end. If the kid has to learn vim, how to navigate a linux environment, etc before actually getting to the coding, they're going to get put off. This is especially true if they're not interested in it to begin with. I believe this is the primary reason why scratch is so successful. It presents the concepts of coding to children in a way that's straightforward, to the point, and the children get immediate feedback on what their doing.
In less than an hour of playing with scratch (for the first time), I made a simple pong clone. I'm reasonably confident that my wife's 4th graders could do the same. Could the same be said about python? Obviously some things are "cookie cutter" in scratch, like collision detection, but the basics are there. Conditional logic, variables, etc. I think once a kid can get their head around those concepts, and how to use them, it's easier to transition into "real" languages and "real" coding.
Keep Up with TechRepublic