もうすぐ30歳なのでプログラマー35歳定年説について考える

3 min読了の目安(約3400字IDEAアイデア記事
Discuss2Likes13

前書き

俄然35歳で定年迎えたいよね、お金があれば。

こんにちは。もうすぐ30歳を迎えるプログラマーです。小学校の遠足で私の手を引いてくれた6年生のお兄さんの方が今の私よりずっと大人びていたような気がするのですが、気が付けば私ももうすぐ30歳。30という数字は32程ではありませんがキリの良い数字なので、1つの人生の節目として今後のキャリアについて考え直してみたくもなるものですが、そこで薄ら頭に浮かぶのが プログラマー35歳定年説 というものです。この説の元ネタも知らなければ、この説に対する考察等も特に読んだことはないのですが、私なりにこの説について少し考えてみることにします。

この説が唱えられた理由として想像できるのは、昔は長時間労働が当たり前だったとか、年齢と共に単価が上がって雇いにくくなるとか、マネージャー転向への圧力をかけられるとか、腰をやられるとか、いろいろ考えられることはありますが、この記事においては能力についてだけ扱うことにします。主に「脳の衰えによって若い頃の生産性を維持できなくなるのではないか」という不安について考えます。

確かに脳の衰えは感じる

35歳まで5年も残っているにも関わらず、脳の衰えはハッキリと感じます。最も顕著なのは、明らかに脳が同時に物事を処理できなくなったことです。私がプログラマーになったのは18歳の頃ですが、25歳ぐらいまでは会話をしながらプログラミングやテキスト入力をすることに何の難しさも感じていませんでした。電話対応中や人からの相談を受けている時も常にキーボードを叩いていられました。私は24歳ぐらいの頃から在宅勤務なのですが、最初のうちは「自宅だと歌いながら仕事ができるから捗る」とまで感じていました。ただ、今は「さようなら」と言いながら「こんにちは」と入力することすら困難です。妻と話しながらキーボードを入力していると、口から発した言葉がそのままキーボードに入力されてしまっていることが多々あります。

しかし、この「同時に物事を処理できなくなった」というのは些細な問題なのです。究極を言えば、全ての情報をシャットアウトして仕事に集中すればパフォーマンスは落ちないわけで、そもそもとして歌いながらプログラミングをしたり、人と話しながらプログラミングをしたりするのは贅沢というものです。ただ、ここまで明らかに脳の衰えを実感してしてしまうと、「私の脳の衰え方は本来こんなものではないのでは?」という不安に襲われます。物事を同時に処理できないことにはすぐに気付けるのです。何故なら物事を同時に処理「できない」のですから。ただ、「できない」ということに気付けない衰えもあるはずなのです。例えば 閃き です。「閃けない」ことには余程でなければ気付くことができません。「若い頃は1日平均3回閃いてたけど、今は1日平均1回しか閃けないんだよね」みたいな具体的な衰えを感じることは難しく、閃きにも大小がありますし、そもそもの問題として私は プログラマーは習熟する程に閃く機会が失われていく という傾向があると思っています。

閃かないのか閃く機会がないのか

プログラマーになりたての頃は、「すんげーアルゴリズム閃いたわ」とか「すんげー美しい設計を閃いたわ」とか「すんげー美しいコードを閃いたわ」とかいった気持ちになることが多かったです。今、あの頃と同じく毎日閃きを感じながらプログラミングをしているかと言われると、決してそんなことはありません。しかし、あの頃閃いたアルゴリズムは、あの頃閃いた設計は、あの頃閃いたコードは、今思い出しても「若者の閃きによってしか生み出せない斬新なもの」であったでしょうか。私が思い出せる若かりし頃の閃き体験の9割は、今考えると当たり前のアルゴリズムであり、当たり前の設計であり、当たり前のコードです。

プログラマーは経験を積むうちに、「普通に考えたらこうなる」の引き出しが増えていきます。 ソフトウェア設計における大体の問題には定石や文化による「普通に考えたらこうなる」という、最適解とは言わずともベタな解というものが存在します。この定石や文化に詳しくない頃にベタな解に辿り着けた時に閃きを感じるものですが、経験を積んで定石や文化に詳しくなればなるほど閃く機会は減っていき、定石や文化に従ったベタな解を当たり前のように実装していくのが日常のプログラミングになっていきます。とすれば、仮に閃く能力が著しく衰えたとしても、知識や経験によって補えるのではないでしょうか。日常的に「俺の頭〜何か閃け〜閃け〜」とお祈りをしながら手を止めているのでなければ、「最近閃き力が落ちてきている気がする」のような漠然とした不安に怯えるよりも、より多くの知識や経験を積むことを考えた方が良いのではないかと思っています。ただ、「定石や文化に従ったベタな解を埋めていくだけの作業だけで年数を重ねていった結果、定石が通用しなくなって気が付くと置いていかれてしまった」のような話も聞くので、新しい定石や文化を学ぶ能力についても考えた方が良いかもしれません。

吸収力

さて、新しい定石や文化を学ぶにあたって最も手っ取り早いのは新たなプログラミング言語、フレームワーク、パラダイムに触れることだと思います。新しい技術に触れた時の吸収力が衰えると、結局は若者が新しい技術を有利に取り入れて定石や文化に詳しくなり、結局前述の「定石や文化に詳しければ閃き力が衰えたって戦えるぜ」みたいな夢物語が崩壊するように思えます。若者の活発な脳による空のスポンジのような吸収力の前にはアラサーの衰えた脳では歯が立たないのでしょうか。私の個人的な考えでは否です。「ソフトウェア開発」というテーマに絞れば、 知識と経験によるアドバンテージがあった方が吸収力が高いはずなのです。

新たなプログラミング言語やフレームワークを学ぶ時、「ああ、C++ でいうあれね」とか、「ああ、Ruby on Rails でいうあれね」とか、元の知識から新たな概念の理解を深めることは多いです。経験の浅い20歳と、経験豊富な40歳が同じモチベーションと同じ時間を与えられて、せーので新たなパラダイムを学び始めた時に、どちらが早くより深くまで習得できるかを考えた時に、私は恐らく経験豊富な40歳の方に軍配が上がるのではないかと思うのです。この先に大きなパラダイムシフトがあったとしても、今までの知見や予測が何一つ通用しない完全に新しいものに置き換わることは滅多にないと思いますし、もしそれほど強烈に新しいものに置き換わるならば、それは恐らく私の好きなプログラミングからはかけ離れた何かなので、その時は黙って定年を受け入れましょう。

終わりに

本記事では便宜上、10代から20代前半の人々を「若者」と表記しましたが、言うて私もまだまだ若者の気持ちでいますし、もうしばらくは若者としての扱いを受け続けるのではないかと思います。しかし、脳の衰えは確かに実感しています。30歳でここまで感じるのであれば35歳では更に強く感じることでしょう。しかし、閃きの能力は知識と経験によって補うことができると思います。新しい技術に対する吸収力においても知識と経験によって補うことができると思います。知識と経験により吸収力を補って習得した新しい技術は、また新たな知識と経験になって吸収力を向上します。新たな知識と経験を積んでいくことを怠らなければ、35歳以降も戦っていけると私は信じています。5年後、35歳になった時に「あの記事はダウト、35歳になって見える超えられない壁があるわ」と言っていないことを祈りつつ研鑽を重ねていくことにしましょう。

最後に、この記事では敢えて言及を避けてきましたが、「定石や文化に精通していて知識も経験も豊富な若者」というイレギュラーな存在があります。イレギュラーと呼ぶには割とそこそこ存在しています。我々はそういった若者から多くを学び、知識と経験の糧にすべきなのかもしれません。「あいつはまだ若いから」という考えで、その若者から知識や経験を得る機会を失ってしまう可能性もあるでしょう。私も無意識にそうして逃してきた成長機会があったかもしれません。若者から学ぶことを恐れず恥じらわず、若者に敬意を払うことを躊躇わないように生きていこうと思います。