私は今年の8月で33歳になりますが、自身の経験をふまえ、世間的に言われている「プログラマ35歳定年説」について、思うところがありましたので書きます。
この言葉の意味を直訳すると「プログラマとして食べていけるのは35歳が限界」ということになりますが、それは下記のような理由によるものと言われています。
?体力的な限界
?新しい技術の吸収力が衰える
?プログラミング能力よりマネジメント能力が求められる
?は、企業などの自分自身以外の問題なのでここでは言及しません。
?と?は自分自身の問題なのですが、?については確かにそのとおりだと思います。
?については、「吸収力」と表現されて、新しいものを吸収する能力が衰えるかのように言われていますが、そうではないと思います。
吸収力が衰えるのではなく、物理的に吸収する時間とがとれなくなってくるのと、精神的な要素が大きいと思います。
独身時代は時間もたっぷりあるので、好きなだけ技術書を読み漁ることもできましたが、家族を持ち、子供ができると極端に自分の時間が減ります。
また、一家の大黒柱として家族を支えていく必要が出てくるので、独身時代よりも多く稼ぐ必要が出てくるでしょう。そうすると、新しい技術を習得するよりも既存の技術を使った方がすぐにお金になるので、おのずと新しい技術に向き合う時間が減ります。
この、時間的な問題によるものが1つ。
もう1つは、新しい技術を覚える過程での「試行錯誤」が疲れてくる、ということです。
ある言語をマスターした人が別の言語をマスターしようとするとき、慣れないうちはうまく書くことができず、自分自身にフラストレーションを感じると思います。
若いうちは、何もかもが初めての経験なので、このような試行錯誤を楽しむこともできるでしょう。ところが、1度ある言語をマスターすると、その言語については自由自在に操れるのに、自分が今向き合おうとしている言語になると、エラーが出まくる。そして自分の若い頃に逆戻りしたような錯覚に陥るのかもしれません。そうして「今さら○○を1からなんてやってられないね」となってしまうのではないかと思います。
この2つの要因が影響して、新しい技術から遠のいていくのであり、能力の問題ではないように思います。
例えば、22歳の若い新人のプログラマと、35歳のプログラマに同じ時間、環境を与えた場合、やはり35歳のプログラマの方が習得が早いのではないでしょうか。
それは、今までの経験から、習得するための押さえどころや、トラブルシューティングのコツを知っているからです。
私の結論として、「プログラマ35歳定年説」は、体力の点を除いては、能力の問題ではなく環境の問題だと思います。
P.S.私も時間があれば、AjaxやiPhone開発などをバリバリやってみたいです。。