kagamihogeの日記

kagamihogeの日記です。

おまじないを受け入れる

いちばん最初のプログラミング講義で恩師が語った言葉より。

これから皆さんにプログラミングを教えていきますが、覚えておいて欲しいことがあります。それは「おまじない」です。

「おまじない」とは、プログラムを正しく動かすためには絶対に書いておかなければならないもののことです。私が「これはおまじないです」と教えた場合には、何も考えずにそのまま書くようにしてください。

まったく意味不明な行為なので困惑する人もいると思います。しかし、「おまじない」を書かなければならない理由はちゃんと存在します。ですが、今からプログラミングを習い始める皆さんに教えるのはとても難しいことなのです。「おまじない」を理解するためにはある程度の知識が必要だからです。いちばん最初に教える、とても単純なプログラムでさえも、本当に理解するためには膨大なコンピュータの知識が必要とされるのです。

しかし、「おまじない」が理解できる日は必ずやってきますので安心してください。ですので、私が「これはおまじないです」と言ったときには今言ったことを思い出して、何も考えずにそのまま書くようにしてください。

プログラムのソースは、はじめてみる人にとっては宇宙語にしか見えないのには異論はないと思う。しかし、そんな宇宙語にも必ず意味がある。それには合理的な理由があるものもあれば、歴史的な経緯で止む無くそうなっているものもあるし、実装がたまたまそうなってるだけとか、なんとなくそうなってるモノとか、バグとか、まぁ色々ある。

そんな裏側の事情をいきなりハイソウデスカと受け入れられる人間はそうはいない。ただ、じっくりと勉強していけば「あのおまじないはそういうことだったのか」と気付くことが出来る。だから、プログラマーの初級者教育においてはおまじないの存在について一番最初に言及しておくべきだ、と俺は考えている。

プログラマーになれる人なれない人

「カッコは対応させないとダメだよ」と手を変え品を変え何回も何回も教えてもマッタク理解出来ない人とかもいた。

と、俺は書いた。これに対して、「なぜカッコは対応していないとダメなのか?それにはちゃんとした理由があるし、そういった素朴な疑問を持つことを悪いこととは思わない。だけど、今は「そういうものなのだ」と割り切って先に進んだほうがいい。「おまじない」はいつか必ずわかる日が来る」・・・といった助言が出来ればまた違う結果が待っていたのかもしれない、と思うのは傲慢すぎだろうか。