新しい知識・技能を仕事を通じて身に付けて行けば仕事と人生が両立できる

Ruby on Railsで有名な37 Signalsのデビッド・ハンソン氏が同社のブログ「Signal vs. Noise」で、新しい技術に追随するにはどうしたらいいか、書いている。以下は、その翻訳である。

質問:

ソフトウェア技術者として、私は学ぶべき新しい技術や言語の量にしばしば圧倒されます。実際のところ、長時間働いたあとで、自宅で更にコンピュータに向かって新しいことを試す気にはなれません。プログラマであるためには、24時間365日コンピュータに向かうことに興奮を覚えるようでなければいかないのでしょうか。私は今の職場がたまらなく好きですし、仕事の内容もたまらなく好きです。でも、それ以外の人生も欲しいのです。

回答:

最良のプログラマはコンピュータ以外の人生も持っていると思います。彼らは画面の前で過ごす時間に価値があるのは、それが限られているし他の興味と競合するからだと考えています。そう考えれば、ある物事にそれ自身を目的として長時間費やすことに二の足を踏むことになります。

私の意見では、新しい技術を身に付ける最良の方法は、仕事を通じてです。私がRubyを学んだのは、PHPJavaがもたらす苦痛から逃れたかったからですし、それを試す新規のプロジェクト(Basecamp)があったからです。Railsを作ったのは、Basecapに必要だったからです。Ajaxに興味を持ったのはプログラムを披露する際に説得力のあるUI体験を提供したかったからです。RESTに興味を持ったのはHighriseのAPIを後知恵にしたくなかったからです。OpenIDに取り組んだのは、37 Signalsの全製品にシングル・サインオン機能を組み込むのは一からするには骨の折れることのように思えたからです。

もちろん、ときには、新しい技術について簡単に調べる必要はあります。使おうとしている仕事に適しているかどうか確かめるためです。でもそれは2週間のプロジェクトとはならないはずです。考慮している技術がどんなものか感触を掴むのに2・3日より多くかかるのであれば、そのこと自体が情報です。(私なら、たぶん、その技術に見切りを付けます。) ですから、味見をしてよさそうであれば、実際の仕事に使います。

そのためには次のような環境で働いている必要があります。新しい技術に積極的で、社員のプログラマーとしての成長に投資する意思がある環境です。そのために新たな技術を使わせてくれる環境です。そうでない環境で働いているとしたら、私ならそのような環境へ移ることを考えます。

振り返ってみると、私自身もまとまった新しい知識・技能は仕事を通じて身に付けて来た。確実に自分のものにするのには、実際に仕事に使うのが効率がいいし、動機付けも働く。