Learning to Program

John Montgomery wonders what would be good non-traditional ways to learn to program (where "traditional == text-based tutorial"). This is a subject dear to my heart and I started to write a post, but it looks like that's turning into an article, so here I'll just make the observation that the expectation of what is intriguing / cool about computers has dramatically changed in the past 20 years and this has created a greater tension between opposing desires: the desire to give power to the student and the desire to teach the key to computing power which is the utter plasticity of Turing machines.