[plt-scheme] Programming and Martial Arts
On Sat, Feb 7, 2009 at 2:15 PM, Richard Cleis <rcleis at mac.com> wrote:
> On Feb 7, 2009, at 7:34 AM, Mitch Wand <mwand1 at gmail.com> wrote:
>
>> I've been trying out a different metaphor as a way of making students
>> stick to the Design Recipe:
>>
>> In martial arts, the first thing you learn is to do simple motions
>> very precisely. Ditto for ballet, where the first thing you learn is
>> the five positions.
>>
>> Once those are committed to muscle memory, you can go on to
>> combinations and variations.
>>
>> Same deal for programming via HtDP: first practice using the templates
>> until you can do it without thinking. Then you can go on to
>> combinations and variations.
>>
>> And muscle memory is absolutely critical: that's knowledge that
>> compiled in your head, not interpreted.
>
> Isn't it more practical to compile when a young, inexperienced head hasn't
> yet been filled with ad hoc a.out files? What about entire corporations?
> They can occasionally be convinced of the value of Martial Arts, but don't
> touch their JAVA with alternatve programming approaches :)
I think that's exactly what Mitch is saying. Learn good practices
early. And I don't think it has anything to do with choice of
language, nor is it "alternative". Learning the fundamentals first
applies just as well to imperative Java as it does to functional
Scheme or obfuscated Perl. (Though perhaps the fundamentals of
obfuscated Perl are "don't".)
--Carl