優しい大人

どのような勉強をすればプログラミングができるようになるのですか
http://d.hatena.ne.jp/hyuki/20051129#learn

  • その答えは『どのような勉強をすれば文章が書けるようになりますか』という質問への答えに似ているでしょう

というものでした。その心は、

  • プログラミングが「できない→できる」へデジタル的に変化するのではない。しだいにできるようになっていく。

いつも思うが結城浩さんは優しい。


「どうやったらプログラムができるようになりますか?」なんて聞かれたら、僕は「そういう質問をしなくなったら」とか答えそうだ。これはつまり「諦めろ」の婉曲な言い方だ。冷酷だけど一面では正しいと思う。泳げるようになる人は泳ぐ方法を他人に聞く前に泳ぎ始める。泳ぎ方を聞いちゃう人は、おそらくスタート地点がずいぶん後ろの方にある。どうしても泳がなければならない理由があるのでなければ、人一倍の努力をしてなお人並みに追いつくことができない道を進むためのアドバイスをするのも気が引ける。

だから僕は次に理由を聞くだろう。何のためにプログラムを書けるようになりたいのか、と。ツールを作って作業を効率化したいとか、自分の理想のゲームを作りたいとか、仕事で必要だからとか、なんとなく格好いい(?)からとか。茨の道を進もうとするにはなんらかの理由があるに違いないと思うからだ。

一方結城さんがこの質問から感じ取ったのは、質問者がなんらかの壁に突き当たっているのではないか、ということではないだろうか。そこに気づけるのは優しさだなと思う。壁にぶつかっているとして、ちっとも前に進んでいないような気がしているとして、しかしそれは必ずしも足踏みではないと僕は思う。

プログラミングを学んでいく課程で、ある瞬間突然それまで点だった知識がつながってある種の悟りのように視界が開ける瞬間がある。僕にとってそれは、ポインタが分かった瞬間とか、Cがとても単純な言語だと分かった瞬間とか、オブジェクト指向がこういうものかと分かった瞬間とかだ。ブレイクスルーは唐突に訪れるけれど、しかしながらそれはひとつひとつの知識や経験の土台がなければ起こらない。とても遅く感じるかもしれないけれど、その一足一足が必要なのだ。


というわけで僕は優しい大人になりたいなぁと思った。