プログラマという人種は妙に議論が好きである。最強の言語がなんであるか?カッコのインデントをどうするか?変数の命名規則はどうあるべきか?プログラマが3人集まれば2時間の飲み会などあっという間に過ぎ去ってしまう。周りにいる人たちは異様なオーラを感じてそっとしておいてくれるのだ。
実は大先生も言っているようにプログラマの生産性は数倍から多いときには100倍にまで達する。こんなに差のつく職業はめったにない。またこの差はできない人が徹底的にできないというよりはできる人が徹底的にできるから生じるのだ。
この違いをもたらしているのは議論なのだ。実際生産性の高いプログラマほど議論が好きである。そういったプログラマは常にどうやったらより生産性が高くなるかを考えている。どんな些細なことでも自分で考えたり、2chを見たり、本を読んだりして常に考えている。だから議論ができるのだ。
例えば、個々のテクニック(例えばIF文の中で if (XXX==true) と書くか if (XXX) とだけ書くかといったこと)が生産性を1%向上させるとしよう。こういったテクニックを100個実践するとなんと生産性は2.7倍も向上する。200個なら7.3倍だ。
本物のプログラマはこのことを知っているから、時には異常な執着心をもって他人のテクニックを聞き出そうとする。聞き出すために議論をするのである。また自分の実践しているテクニックが本当に役に立つのかを確認する意味もある。よりよい方法があったり、逆に無意味なことをしていたら目も当てられない。こうして飲み会は夜更けまで続くのである。
コードコンプリートという本がある。当然あなたはこの本を読んだことがあるだろうがぜひプログラマの友達や部下にも読むように伝えてほしい。この本には1%どころか10%生産性をあげるテクニックが満載されているからだ。プログラマの基礎教養といってもいいくらいだ。
また質問を受けることも重要なことだ。誰かが困っているということは自分もそのうち困ることだろうから、先回りしてその解決策を知っておくことは重要なことである。また初心者にわかるように説明するためには100%その対象を理解していなくてはいけないから自分の理解度の再確認にもなる。時には説明している途中で自分の勘違いに気付き「ありがとう!」と相手をキョトンとさせることもある。だから有能なプログラマは初心者や同僚の質問にイヤな顔一つせずに一緒になって対応するのである。
えっ?お前は初心者にちゃんと説明しないじゃないかって?ははは…ものには限度というものがありまして…