ニュートラル

http://japan.cnet.com/blog/ace/2009/07/05/entry_27023518/

さんに、斜め上の感想。

プログラミング未経験者の彼。素直ないい子で、いわば白紙のノート。Pythonicに染めがいがあるってもんです。

まずはプログラミングとは何ぞや、ということを軽く教えた後、早速Pythonを教え始めたわけですが、やはりするする理解していきました。1日で組み込み型のキソ・条件分岐・ループまで覚えていきました。ここまでくればまぁまぁ何とか後は一人でもいろいろできるかなー、っていうくらい。

未経験者と 経験者の話は、中学の部活という可愛いレベルで展開するのであれば、ほほえましくも ニコニコっ、とエントリーを読めるのですが、むっさいおじさま方が C から C++ に移行して、そのまま プロジェクトを回し始めるという、デスマ確定リーチな 阿鼻叫喚エントリーになると、精神衛生上ブラウザの×ボタンをぽちっ、としてしまいたくなります。

・・・しかしわたしの場合、これはブラウザの窓の外の話ではないので、ブラウザをとじても阿鼻叫喚な現実は変わらないのです。・・・とほほ(休みたいよぉ)


* * *


わたしの経験上の話ですが、何もプログラミング言語を学んでない人の方が、Cに慣れ親しんだ人より C++ の覚えは抜群に速いです。正直、Cの知識は邪魔になりこそすれ学習の役に立ってないと思います。この現象は、白紙であることが重要なのではなくニュートラルであることが重要なのだと思います。ですのでビギナーズ「学ぶ力が大きい」は、初回の1言語に限定のものではありません。

ハッカーになろう の中でいわれている、

でも、言語を一つしか知らないなら、ハッカーではないし、プログラマですらないのです。あなたはプログラミングの問題について考えるのに、ひとつの言語に依存しない一般的な方法を身につけなくてはならないからです。

が出来ているかどうかというコトだと思います。その為にはプログラマとしての駆け出しのころ(熱いうち)に、複数の全然違う言語を覚えることが重要だと思うのですが、それは好きモノか、よっぽど恵まれた環境にいたかですね。世の職業プログラマだとダメダメコースへの分岐率が高すぎです。しくしく。

あるプログラミング言語を学んで進んだ地点は、次のプログラミング言語から逆に遠ざかっているかもしれない。でも、再びニュートラルから始められれば、少なくとも白紙の方と同じだけのパフォーマンスで学ぶことが出来るハズです。でもなー。長年 C のみに慣れ親しんだ人に「ニュートラルに戻れ」言っても、何処がニュートラルかわからないのでもうムリですね。多分 生まれたときから ifとelse で思考してきた様に錯覚してるんじゃないかしら。


* * *


というわけで、熱いうちに全然似てない いろいろな言語を学ぶことは本当に大切です。そこで中学生プログラマーさんには、是非とも Smalltalk を勉強して欲しいなぁ、と思うのです。ね、ね、どうですか?へへへ、後悔させませんぜ、旦那。