初心者の粗い目盛り
どんな分野でもそうだと思うが、それについてよく知らない人は「すごいこと」と「そうでもないこと」の区別がつかない。
100メートルを5秒で走る人がいたら誰が見ても速いが、世の中はそこまでわかりやすいことばかりではないというか、むしろわかりにくい違いの方が多い気がする。
プログラミング入門の当初、ことあるごとに挫折を感じていたが、それはようするに僕の理想の置き方が不適切だったからで、そうそう簡単にできるはずがないことを、簡単にできるという前提で捉えてしまっていたから、必要以上に落ち込んでいたのだと思う。
初心者は傲慢か
初心者による、ある種の質問や、そのときの態度が、傲慢に見えてしまうことが僕にはあって、たとえば Yahoo!知恵袋 なんかで「大至急!」みたいに言ってる人を見ると「おいおい・・もう少し頼み方というものがあるだろう」と思ってしまう。
しかしながら、それはその質問者がどんな場面でも傲慢な人だからそうなっているというよりも、そうした「区別のつかなさ」「認識の粗さ」が表れているということだとも思っている。
冒頭に書いたように、その対象に熟達していない人は「難しいこと」を難しいとは思わない。TVで野球なりサッカーなりを見ているとき、平気で「なんであんな球が捕れないんだ(打てないんだ)」とか「なんであそこで決められないんだ」とか言うのも、良し悪し以前に、プレイする側のプロではないからだろう。
先日ここに抜書きした「ハリネズミ」もそれにあたる。
ハリネズミ型思考とランダムな歴史(ダニエル・カーネマン『ファスト&スロー』より) - new draft
ここで言う「ハリネズミ」は、対象を1個の大きな世界観で捉え、その世界観(因果律というか)ですべての説明がつくと思っている。
そしてそれができるのは、対象を「よく知らないから」だと思われる。
対象を知るにつれ、じつは様々な状況、事例があり、一つや二つの論理では説明のつかないことがある、ということがわかってくる。そしてその中で、「一見簡単に見えるが実際には難しいこと」や、「見た目はすごいことをやっているようだが実は何もしていないに等しいこと」などの違いがだんだんわかってくる。
たいしたものに見えない
以前に読んだリーナス・トーバルズの自伝的著書に、こんなくだりがある。
こうしてついに、二つのスレッド――AAAAAAAとBBBBBBBを切り替えることができるようになった。つまり、片方のスレッドからデータを読んで、画面に書き込み、もう一方がキーボードから読み込み、モデムに書き込むのだ。こうして、自分のターミナル・エミュレーターができあがった。
(略)
かなり得意だった。
ぼくはサラに、この偉大なる業績について知らせることにした。ぼくが見せると、サラはAAAAAAAとBBBBBBBが並んだ画面を五秒ばかり眺め、それから「いいんじゃない」と言うと、それがなんなのよ、という感じで部屋を出ていった。それで、ぼくにも、これがたいしたものに見えないのだとわかった。たいしたものに見えないかもしれないけど、裏ではたいしたことをやっているんだよ、と人に説明するのは絶対に無理な話だ。君が道路をアスファルトで舗装したとして、それを誰かに見せた時と同じ程度の感動しか与えられない。
(『それがぼくには楽しかったから』P105、小学館プロダクション)
プログラミングにかぎらず、世の中には、知るにつれて見えてくる複雑な姿というものがあって、それを知れば知るほど、もう単純に説明することはできなくなってくる。
それについてよく知らないうちは、対象はツルンとした真球のように見えるけれど、よく目を凝らして、近づいていくと、表面には大小様々な穴が空いていたり、しわが刻まれていたり、あるいは日々それらが移動したりしていて、そうした要素からたくさんの情報を読み取れることがわかってくる。
「**なんて、ようするに++でしょ」という単純化/抽象化をできるのは、そうした複雑の極みを自分の中で消化しきった人か、まったくそれを知らない人のどちらかであると思われる。
関心がないのか、それとも知り始めた段階なのか
話を戻すと、初心者というのは、対象のそうした複雑な様相を知らないから、遠くからのパッと見た印象しか述べることができない。
それ自体は仕方のないことだけど、問題なのは、そうした言説が、その対象に対してまったくリスペクトを持たず、知ろうともしない人による言説とほとんど同じように見えるということだ。
対象に関心のない人は、いつまで経っても、その「複雑な姿」を知ることはない。関心がないことが悪いのではなく、関心がない対象に対して、それと気づかないままに言及するという行為が、その対象をよく知る(愛する)人たちの気分を時に害してしまうことが問題だ。
その対象をよく知る人は、対象の複雑な様相を知っているから、「そんな単純なものじゃないよ」と感じる。よく知らないくせに、そんな風に簡単に片付けないでくれよ、という気分になる。
一方、初心者というのは、対象に関心がないわけでも、愛情がないわけでもないが、にもかかわらず、持っている認識は関心や愛情がない人とほとんど同じ状況にあるから、その時点で言う内容や態度は避けがたく、愛情がない人のそれと近くなりがちだと思う。
このような時、周りの熟達者たち、つまりその対象をよく知る人たちには、それが初心者ゆえの単純化であるのか、そうではないのか、という違いを見分けることが役立つだろう。
進歩とは「不可逆な目盛りの増加」
そのような、初心者による避けがたい単純化について考えるたび、僕は「粗い目盛り」ということを考える。
ある種の家電で考えるとわかりやすいが、たとえば、人類初の扇風機に付いた機能は、おそらく「ON/OFF」の2択しかなかったはずだ。
しかし今は、風の強さだけでも「強・中・弱・微風・リズム」などの多種から選べるし、その上で首振り、リモコン操作、タイマー設定なども出来るようになっている。それらすべてが本当に必要な機能なのかという問題は別にあるとしても、とりあえず「ON/OFF」の2択だけに比べたら便利だし、そうした複数の選択肢は実際に求められている。
進歩とはそういうもので、初めはONかOFFかの両極しかなかったのが、徐々にその中間の段階、さらにそれらの中間の段階、というふうにパラメータ(目盛り)が増えていく。
アジサイの花を見たときに、赤・青・黄の3種類しか色の名前を知らない人だったら、「青い花だな」と言うかもしれないけど、紫色を知っている人なら「いや、紫色だよ」と言うかもしれないし、あるいは「いや、藤紫色が近い」と言うかもしれない。
熟達者はこういう色の種類を多く知っているし、そうでない人は何を見ても「赤OR青OR黄」のいずれかで表現することしかできない。
初心者が熟達者になっていく過程というのは、だからそうやって目盛りの数を増やしていくことだと僕は思う。
それは単に知識(知っている色の数など)を増やしていく、ということではなく(それを目的にする、ということではなく)、対象を適切に把握するために必要な道具・環境として、必要なことなのだと思う。
熟達の度合いが増すにつれ、「かつて手にした今は不要な目盛り」も出てくるには違いないし、それが上述の、「熟達者による単純化」を指すけれど、一度刻まれた目盛りは二度と完全には(それが刻まれる以前のようには)消えないだろう。