2011.07.24
フェイスブックのエンジニア、Evan Priestleyによる「ぼくはこうしてプログラミングを覚えた」
ぼくはこうしてプログラミングを覚えた
http://ktamura.com/epriestley.html

<フェイスブックのエンジニアで史上ベスト3に入るといわれるEvan Priestley氏への質問「どうやってプログラミングを覚えましたか」に対する本人からの答えです>。

How did Evan Priestley learn to program?」の日本語訳。めちゃめちゃおもしろい。

プログラミングをやっている人なら、共感する部分、参考になる部分がたくさんあると思う。

以下、いくつか抜粋。

<ポートランド・ウェブワークスで得た一番の教訓は「どうやってシステムをデザインするかは、その後に多大な影響を与える」ってことだ。とても小さい会社だったので、ぼくはとても自由に仕事をさせてもらった。自分で書いたコードは、働いていた2年半の間、全部メンテしていた。ソフトウェアの開発に最初から最後まで関わるという経験はとても貴重だったんじゃないだろうか。なぜなら、プロジェクト開始時のダメなデザインのしっぺ返しを、後で自分でモロに受けるからだ。当初ぼくは、ほとんど考えずコードを「アンダーエンジニアリング」していた。後々これを過度に修正してしまい、全てを「オーバーエンジニアリング」し作り込みすぎてしまった。2年半という時間はこういった失敗を経験するには十分な時間で、辞めるころにはシステムのデザインの塩梅が、かなりわかるようになっていたと思う>。

<フェイスブックでは、ぼくは「一番PHPを嫌っていないエンジニア」と自称していた。ぼくのことを「PHPバカ」と呼ぶ同僚もいた。ぼくは別にPHPのファンではないが、PHPに関しては膨大な知識を持っているので、他の言語を学ぼうと一念発起するには、それこそ膨大なエネルギーがいるのだ。それに、どのプログラミング言語を使うかってのは、多くの人が考えるほど重要ではないと思う。ぼくの経験上、一番PHPをバカにし、言語の重要性をうそぶく連中は、大体自分たちが提唱する言語でもロクな仕事ができないことが多い>。

<ぼくのプログラマーとしての成長に一番寄与したのは、「判断力をつける」ということじゃないだろうか。働き始めた最初の2、3年は、システムをデザインする際に、ボロボロとひどいミスをした。でもフェイスブックで働きだしたころには既にそれなりの経験があったので、ぼくがデザインしたシステムは概ねシンプルさと洗練さを丁度よく兼ね備えていたと思うし、他のエンジニアのデザインの問題点も、比較的すぐに気づくことができた。これも最初の数年で培われた判断力のおかげだ。この「判断力」は、プログラマーにとって非常に重要なのだが、そう簡単に教えられるものでもない。ぼくが知る限り、判断力をつける一番の方法は、自分で設計したシステムを長い間メンテすることだと思う>。


関連:
How did Evan Priestley learn to program?
http://www.quora.com/How-did-Evan-Priestley-learn-to-program