指導

私が思うプログラミングの基本は分割統治である。 目の前にある問題を自明になるまで分割していくという考え方だ。 そしてどのような単位で分割するかという違いがパラダイムである。

最も原始的な分け方は順序通りに分けることだろう。 その中である程度のまとまりをサブルーチンとして分けたり、更にそのサブルーチンをまとめるモジュールで分類したりするわけだ。 オブジェクト指向の考え方ではクラスやオブジェクトといった分割単位が導入されたりもする。 オブジェクト指向とはちょっと考え方のレイヤが違うがオートマトンだと状態が分割単位ということになるだろう。

さて、一旦話題が変わって私が以前に勤めていた会社 (とある機械製品の工場) での休憩時間の出来事である。 あるとき事務員の女性らが子供の宿題について話していた。 「算数の図形の宿題が出ていたんだけど、私は台形の面積の公式なんて忘れたわ」などと言うのだ。 そんな公式は一瞬で導出できる程度のものであって覚えるも何もあったもんじゃないと思うのだが、彼らにしてみれば問題というのは公式に入れて解を得るものなのだ。 彼らの問題解決は一工程なんである。 問題を分割できるものだという意識がないのである。 プログラミングでは分割の仕方で工夫しているのに、世間一般の人々は問題を分割しようとする意識がないのである。 もしも彼らにプログラミングについて指導するとしたら私は「そこからか!」とツッコミを入れてしまうかもしれない。

訓練されていない人間というのはプログラマにとっての前提以前の段階で意識が違うのだ。 逆に彼らにとってあたりまえのことが私に欠けていることだってあるだろうし、埋めがたい意識の差というものはある。 指導者が初歩の初歩から教えているつもりでも本当は更に前の部分で躓いていることがあるということを覚えておかないと上手く指導できなかったりするという話である。

Document ID: 9009e94dcb365a024f0a2d224ab9ceef