空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

決断力 (角川oneテーマ21)

決断力 (角川oneテーマ21)

決断力 (角川oneテーマ21)


梅田さんの著作やブログの中で,たびたび言及される羽生さんの話。以前から興味はあったがなかなか読む機運が巡って来なかったが,親指を怪我して海に入れないのを理由にして,読んだ。全編を通して共感できると思ったのは,何事も始めは知識を取り入れ,自分なりに消化・理解して,新たなものを生み出す知恵に変えていくというプロセスである。これは数学でもプログラムでも,まさに自分が普段から心がけている(た)ことである。公式なりプログラミング言語やライブラリの知識は誰でも身につけることは出来るが,できる人とそうでない人の違いは,それをどういう風に使うか,どう料理して応用させるかという点に大きく現れてくる。
その他にも共感できる文章が沢山あった。

プロになると「一番楽しかった将棋が一番苦痛になってくる」といわれる。
確かに,プロになれば趣味としての楽しさがなくなり,当然,苦しみも出てくる。だが,趣味としていたら多分知ることのなかった将棋の奥深さを味わえるということもある。

将棋をプログラミングに置き換えれば,まさに私の状況と同じである。
この世界(奨励会)に入る前は「もう C++ は極めた」と思っていた。入社直後,上には上があることを知り,ひたすら最新技術の動向を追った。そしてついに最先端にたどり着いて,知識においては世界中どこに行ってもやれる,と自信をつけた。アメリカに渡って,年齢的にもずっと先輩の「天才プログラマ」と呼ばれる人と仕事をしてみると,小手先のプログラミングの知識やスキルは新しいツールを知っている自分の方が,明らかにできるという実感が湧いた。しかし,どうしても,かなわない「違い」を同時に感じる。この先,この壁をどう破っていくかという点において,羽生さんの先輩棋士を観察する視点が役に立ちそうな気がした。今のやり方で三十歳を越えても,次の世代と戦っていけるかというと,それほど自信があるわけでもないし,自分もスタイルを変えていかねばならないだろう。
数多くある候補の中から,次バージョンに組み込む新機能の絞り方,限られた時間内で製品を完成させるための妥協点の探り方,出荷を延期させるかどうかの判断といった大局的な見方から,コードレベルで,効率性と堅牢性,fool proof 性をどのように妥協してループや条件文を書き下すかといったミクロなものまで,プログラミングも将棋に似て奥が深い。思想哲学のあるコードはすぐ分かる。一緒に仕事をしていれば,複数人で開発していても「誰が書いたか」くらい自然と分かるようになる*1。一つ一つのプログラム編は将棋の一手一手だし,ソースコード棋譜のようなものだ。将棋とプログラムの類似点を考えて行くうちに,数年前までは「プログラミングは若いうちしか出来ない」というのが通説だったが,きっとプログラマの世界も,将棋の世界と同じくらい寿命は長いんじゃないだろうかと思えてきた。だったらいいな。
もう一つ

才能とは,努力を継続できる情熱である

これも,本当に納得と思いました。

*1:単純なプログラムでは,あまり望ましいことではないけど。