以前、エンジニアではない知人から『プログラムが書けるとなにがよいのか』と聞かれたときに『楽をできること』と答えたことを思い出しました。
続けて私は『たとえば、大量のテスト用データを次の日までにつくらなければならないときに、プログラミングができない人は手で朝まで打ち続けるけど、プログラミングができる人は、プログラムを1時間でつくって、あとはプログラムを動かして、朝まで寝てられる』と答えました。
プログラマの三大美徳のうちの一つ『怠惰(Laziness)』を示す一つの例だなと、いまさらながら思い返しました。
404 Titlt Not Found #1 プログラマーの三大美徳その1「怠慢」
『勤勉』な人は、朝までデータを作成し続ける。『怠惰』な人はプログラムだけつくって後は寝てしまう。
プログラマの美徳とはいえ、開発現場でも『怠惰』な心を持たない『勤勉』な人はたくさんいます。
極端な例で言うと、テキストエディターで行頭の全角スペースを1つ1つ消してる人とか。
同じような質問に、毎回丁寧にメールで答え、15分も20分も時間を費やしている人とか。。
ただし怠惰になるには、スキルが要ります。
スキルに自信がない人は『勤勉』な方向に向かっていきます。
『余計なプログラミングしていて間に合わなかったらどうしよう。それなら時間が計算できるし、手で打ち込もう』となります。
怠惰になるための必須スキルとして、Unixのコマンド操作(とその組み合わせ方)、テキスト操作スキル、正規表現、スクリプト言語などを身につける必要があります。
『怠惰』になるためには、まずは最低限のスキルを身につけるための勉強が必要です。その場で調べようと思うから時間がなくなり、不安が募り『勤勉』な方向に進んでしまうのです。
1度ある程度のスキルを身につけてしまえば、あとは、必要になった時点で学習でも良いかもしれません。ただし『怠惰』な人ほど日頃から熱心にいろいろ調べ、より良い方法を求め、探していることは忘れてはならないでしょう。
プログラマとして『怠惰』な心を持っているかどうか。
これが優秀なプログラマとなる第一条件であると言い切っても良いかもしれません。
今年の目標:100エントリーまであと52。残り232日。