Snip
|
Because my work was cited as an inspiration for the Khan...
[From frame: http://worrydream.com/LearnableProgramming/] |
---|
Categories |
|
---|
For Snip |
loading snip actions ... |
---|---|
For Page |
loading url actions ... |
Because my work was cited as an inspiration for the Khan system, I felt I should respond with two thoughts about learning:
Thus, the goals of a programming system should be:
A live-coding Processing environment addresses neither of these goals. JavaScript and Processing are poorly-designed languages that support weak ways of thinking, and ignore decades of learning about learning. And live coding, as a standalone feature, is worthless.
Alan Perlis wrote, "To understand a program, you must become both the machine and the program." This view is a mistake, and it is this widespread and virulent mistake that keeps programming a difficult and obscure art. A person is not a machine, and should not be forced to think like one.
How do we get people to understand programming?
We change programming. We turn it into something that's understandable by people.
HTML |
<p>Because my work was <a href="http://ejohn.org/blog/introducing-khan-cs">cited</a> as an inspiration for the Khan system, I felt I should respond with two thoughts about learning:</p> <ul> <li><b>Programming is a way of thinking, not a rote skill.</b> Learning about "for" loops is not learning to program, any more than learning about pencils is learning to draw.</li> <li><b>People understand what they can see.</b> If a programmer cannot see what a program is doing, she can't understand it.</li> </ul> <p>Thus, the goals of a programming system should be:</p> <ul> <li>to support and encourage powerful ways of thinking</li> <li>to enable programmers to see and understand the execution of their programs</li> </ul> <p>A live-coding Processing environment addresses neither of these goals. JavaScript and Processing are poorly-designed languages that support weak ways of thinking, and ignore decades of learning about learning. And live coding, as a standalone feature, is worthless.</p> <p>Alan Perlis wrote, <i>"To understand a program, you must become both the machine and the program."</i> This view is a mistake, and it is this widespread and virulent mistake that keeps programming a difficult and obscure art. A person is not a machine, and should not be forced to think like one.</p> <p><i>How do we get people to understand programming?</i></p> <p>We change programming. We turn it into something that's understandable by people.</p> |
---|