How do we get people to understand programming?
Because my work was cited as an inspiration for the Khan system, I felt I should respond with two thoughts about learning: Programming is a way of thinking, not a rote skill. Learning about "for" loops is not learning to program, any more than learning about pencils is learning to draw.
People understand what they can see. If a programmer cannot see what a program is doing, she can't understand it. Thus, the goals of a programming system should be:
• to support and encourage powerful ways of thinking
• to enable programmers to see and understand the execution of their programs
How do we get people to understand programming? We change programming. We turn it into something that's understandable by people.