| I like what you're saying, but I wanted to pick this out: > Nothing in everyday life - with the possible exception of government bureaucracy - is that unthinkingly inflexible. If you've never made anything else in your life, maybe. "I left one seemingly unimportant detail out and the whole thing exploded" is a statement you could make about a lot of things you might teach to kids-- fixing a car, baking a cake, shooting a gun, building a treehouse. Only difference is when it's code, the exploding is figurative, and if you just change that thing back it works again. That's part of what makes programming so magical, especially for kids. You can break things completely with zero damage done. In fact, breaking things is one of the best ways to find out how they work. On a tangent: when you work with computer-illiterate people, one of the things you notice is that they're a little afraid to physically touch the computer for fear of messing things up (which is presumably a common occurrence for computer-illiterate people). When you're teaching someone to code, the first thing you have to teach them is to stop being afraid to change things. Not because they won't break it -- they undoubtedly will -- but because breaking it is the point. As with many activities, I suspect the main reason children display such an affinity for programming is not having to be trained out of such bad habits. |