Comment That's the way it's supposed to work (Score 1) 207
Teaching people to code by first teaching them a programming language is like teaching them about hammers before explaining that we're trying to build a house. Your programming languages are your toolbox, nothing more.
Perhaps the 'gee-whiz' factor of seeing the code first breeds more interest in children than the engineering process but to my mind it seems that we need to be teaching kids from the top-down if we're interested in creating a generation of good programmers. When kids learn HTML, CSS, and Javascript and then get their first website project written for a client (e.g. modifying the school website) they're shocked to learn that they're not going to be using cutting-edge libraries and that the vast majority of work is more boring frustration than actual magic. Young programmers, in my limited experience, do not like finding out that they don't get to use whatever tools they want to play with at the moment.
You can teach almost anyone to program but developing software solutions is something entirely different.