プログラマです。45歳になりました。
いつ誰が言い出したのか、日本のプログラマにはなぜか通説となっている「プログラマ35歳定年説」という言葉があります。つまりプログラマ稼業はは35歳が限界だと。
それを知りながら足掻き続け、今日で45歳。つまり35歳の限界年齢から+10年です。まだプログラマやっています。自分でやめようとしない限り、くたばるまでプログラマのままの自信がついてきました。
元々の「35歳定年説」は、当時の開発組織を考えると単純に限界年齢って意味だったのかもしれません。もはや死語と言われつつも、この言葉が残っているのは、「プログラマを死ぬまで続けるか、あるいは他の仕事に変わるか、35までに決めよ」って意味に変わったからでしょう。エンジニアのまま進んでいくかどうか、ってのはきっとどの業界でも同じように悩む問題で、プログラミング技術は流れが早いから進路選択期限も早いってだけ。どっち選ぶのが楽って話でもないし、ましてやどっちが正解って話でもない。正解かどうかは将来の自分が決めることです。
思い返せば俺にも「プログラマからクラスチェンジする道」を示されたことが何度かあったような。その道を選べば今ごろどうなっていたか。年収倍増チャンスだったかもしれませんし(可能性の話ですよ)、職を失っていたかもしれません(たぶんこっちだな)。ともかく俺は全部蹴って、プログラマのままです。確実に言えることは「今でもコード書いて飯をちゃんと食っている」という事実。だから俺にはきっと正解だったのです。それで良しでしょ?
プログラマでいるためにしてきたこと
さてさて、一生プログラマって名乗るだけなら誰にでも出来るけど、一生コード書いて飯を食い続けたいなら腕を磨き続けなければなりません。その対策として、おそらく10年以上、いやもっと前からずっと自分で意識して続けていることがあります。
1.半年先の技術を探し続ける
要するに「直近で自分の仕事に使われそうな新しい技術はすべて知っておく」のです。どんな仕事が来ても「それなら知っています。やります。」と答えられればその仕事でコードを書くチャンスをもらえます。「半年」というのは適当俺目安です。「これ来るかも」って感じた技術が本当に来る確率は、未来の話であればあるほど低くなっていきます。1年先の技術より明日の技術の方が当てやすいに決まってます。でも明日の技術なんて誰でも当たるので、自分を選んでもらう武器になりません。ハズレの少ないレーダーを張り巡らせるには「半年先」のような自分なりの感覚が必要です。
「すべて知るなんて無謀だし不可能だ」ごもっとも。それきっと正しいから反論しない。それでも俺は「それは自分では出来ません。」と言う日が来てしまうのが嫌だから死ぬまで探すだけです。
別に100%理解する必要なんてありません。たぶん数%で構わない。重要なのはお客様から要件を聞いた瞬間に使える技術として思い出せること、あるいはググるためのきっかけとなるキーワードが脳に残っていることです。それさえあればコードを書ける機会が増えるのです。100%理解するのはコード書きはじめてからで良い。どうせ書かなきゃ正確には分からんし。書けることが大事。
英語の技術系ブログとか読み漁ってるのもそんな意味があります。プログラミングは基本的に英語。英語の情報が早いに決まってます。最近は邦訳記事が出るのも速いけど、全部訳されるわけでもないし、読む価値はあります。(ガジェット系記事は数時間で訳出るから巷より一瞬速いだけだったりするけどね)
昔は行きつけ本屋の技術棚の日々の変化を感じるほど、技術書を読み漁ってたこともあるのですが、今は紙の本では速度が遅すぎるからネットで情報収集に変わりました。よほど心に刺されば買う時もあります。
2.書いたことないコードを書く
「書いたことあります。やります。」と「知っています。やります。」には大きな違いがあって、「知っています」というだけでは実績がないのです。だから正確には「知っています。出来ると思います。」ですが、それじゃコードを書くチャンスを失うから「やります」と言い切るのです。ネット上の最新情報をどれだけ追っていても、分厚い技術書をどれだけ読みこなしていても、結局のところプログラマは「コードを読んでコードを書いて」を繰り返さない限り腕を磨くことは出来ません。しかし「書いたことある」コードをまた書くってのは、楽に金にはなっても腕は磨かれず、良くて現状維持にしかならないのです。
知らないことは出来るわけがありません(「知らないけど出来ます」は禁止ね)が、多少なりとも知っていることであれば考えれば何か手があります。納品するコードで毎回書いたことないコードを書いてみるのです。お客様に事前に伝えた上で根本から取り組むか、内部的にちょっとだけ挑戦するのかはプロジェクト次第ですが、出来る限り毎回ほんの一部でも良いから、「このコード動かんと納品できない」ってプレッシャーを感じられるコードを考えて書くこと。日々繰り返していけば、半年前の自分では想像もしてなかったコード書いたりして俺ってばスゲー!…失礼。
プレッシャー(胃が痛くなったり、脳みそが沸騰したり)を感じるのは必須事項です。お金をいただくコードでこそ挑戦してみること。演習では実践ノウハウが増えず、飯を食うタネにするにはいろいろ足りないのです。快楽が足りないだけかもしれないし実はそれこそ一番重要なのかもしれないけどそのことはここでは置いておこう。
これからもプログラマでいるために
同じプログラマ同士でも納得していただける話かどうか分かりません。人によっては当たり前すぎてつまらない話かもしれません。でも「こうして書いてみるとあんまたいしたことじゃないね」って思える事だからこそ、たぶん死ぬまでプログラマでいられる自信に繋がっています。
少なくとも自分自身は実践してきて、そしてうまくいってる45歳プログラマ事例の紹介でした。
…
…やっぱ本当は快楽でコード書いてるんだろうか…
…うん、快楽だよ。