2011/05/23

コードを書く時間

普段からパソコンの前にいる時間は長い。大体平均すると、1日13時間、1週間で約90時間程度は作業している。大抵の場合は集中しているので、あまり他のことに気をとられない。会話をすると集中力が一時的に遮られてしまうので、なかなか時間の管理が難しいところではある。そしていつも思われているのだが、四六時中実装しているように見えているらしい。実際は10%程度の時間しかコードを書いていない。

なぜか。手を動かす時間は30%ほどで、その3分の2はサーバや環境の設定をしている。意識しなくてもそういう割り振りになっている。残りの70%は調べ物をしたり、設計をしたり、資料を作ったり、本を読んだりしている。

コードを書いているときというのは思う存分集中できていて、かつ作るものがはっきりしているときだけだ。だから気分も高揚しているし、妙に頭の回転が速くなる。そして書き終えたらまた、次のことを考えている。考えているときは設計なり、次のタスクの切り分けをしている。

設計をする時間というのが実は貴重だ。設計には要件の定義から詳細設計まで含まれる。頭の中で作りたいものがフィックスされるまで、ひたすら考える。ただ考えすぎると逆に考えがまとまらないので、たまに離れる。このあたり、数学の問題を解くときの感覚に近い。受験勉強のときに、机の前でいくら悩んでも解けなかった問題が、家族と話しながら夕食をとっていて急にひらめく、といったことがあった。設計もしくはデバッグのときに、よくこういうことが起こる。だから、ふとした休憩時間にも、頭は動いている。

僕の本の読み方もこれに似ている。一度本を読むときは、考えすぎない。視覚からただ入れる。その次に気になるところを探す。単語単位でマインドマップ的に連想する。本の内容を想像していく。そして全部は読まない。気になったところだけ目を通す。そうすると後日必要な時に、その知識が勝手に浮かんでくる。実はこの過程が一番面白いし、自分のためになることが多い。

こんなことを書くのは変なことなのかもしれない。けれどこの感覚は自分のサイクルに取り入れられているし、何より効率が良いし、楽しい。だから時間を自分で管理できる環境にあるうちは、このサイクルをうまく回すことだけを考えている。そしてこうして文章を書いて頭を活性化させながら、また違う片隅でさっき書いたコードのチェックをしているのだと思う。現に、今ひとつ解決策を思いついた。完全に頭が休まるという状態がどんな状態なのかはしらないけれど、きっと完全に頭が休まるということはないのだろうと思う。休めば休むほど、実は考えているのではないかと最近は思うのだ。