こんにちは、あのぶるです。
プログラミングの技術を使って何かをしようとするとき、どのような気持ちを持って臨んでいますか?
コンピュータのあまり長くない歴史においても心構えを説く格言めいた言葉は昔から様々ありますが、今回は由緒正しい、でもちょっと誤解されがちな「プログラマの三大美徳」についてお話をしたいと思います。
まずはプログラマの三大美徳とは何か、というお話から。
プログラミング言語Perlを開発したラリー・ウォールという人が唱えたもので、仕事としてプログラミングをする人は、怠惰・短気・傲慢の3つを「美徳」としてすべて持ち合わせるべきだ、と述べています。プログラミングPerlという本の中でそれぞれの言葉の意図が解説されているそうです。
オンラインで読める日本語の解説としては、有名なPerl Monger(Perlプログラマ)である小飼弾さんによるものが有名ですので、ぜひ一度読んでみて欲しいなと思います。
さて、ここまでの説明で「ずいぶん横柄な美徳だな」と感じたでしょうか。実際冒頭で述べたとおり、言葉の強さゆえにかなり誤解されがちな心構えではあります。
でも私はこの美徳が本当に大好きで、もしあなたがプログラミングを仕事にしようと思っている・しているならぜひ大事にして欲しいと思っています。正しく理解してもらえたら嬉しいなと思うので、これから頑張って解説してみます。よろしければお付き合いください。
三つの美徳が実際はどのような心構えを表すか、というのをかいつまむと
- 怠惰: こんな問題に自分や周囲の人の手間をかけ続けるなんてありえないので、楽をするための手間は惜しまない
- 短気: 分かりきった変化のために都度手作業なんかやりたくないので、想定できるパターンは最初から見越した上で対処する
- 傲慢: 自分ともあろう者がこんな問題に手こずるはずがないので、スマートに解決してみせるという気概
といった意味合いとなります。
注意して読んでみると、ぱっと見で思い上がりすら感じるような感情の向き先はすべて「解決すべき問題」に向けられていて、間違っても同僚やましてお客様ではないことが分かると思います。もしこれらの感情を周囲の人に向けてしまえば、それは誤解の通りただの横柄な人になってしまいます。それはプログラマの三大美徳の解釈としては完全に誤っていますし、怠惰の説明にあるとおり「楽をするために全力を尽くす」とよく似た考え方とも言えます。
もちろんこの美徳を維持するためには日々のたゆまぬ努力を……と言いたいところなのですが、それこそ世界中の人たちの手間を省くような、有名なオープンソースプロジェクトで活躍されるような人たちは時に研鑽すら楽しそうで、時には息をするようにプログラムを書いていたりするものです。なかなかそこまでの高みには至れないなぁと自分を振り返りつつ、少しずつでも新しい(つまり、より楽ができる)ものを吸収していこうと、出来ることからコツコツと積み重ねていく毎日を過ごしています。日々進歩していく技術を学び続けるのは大変と言えば大変ですが、未来の問題をスマートに解決できることを目指して、私たちも楽しくやっていきたいですね。
ちなみに、一緒に働くチームへ向けるべき姿勢としてはTeam Geekに書かれたHRTというものが今は一番有名でしょうか。こちらもいずれ紹介できたら……と思っていますが、気長にお待ちくださいませ。
それでは、あなたが正しい美徳を備えた素晴らしいプログラマであり続けることを願っています!