世の中にはプログラマー35歳定年説というものがあった。昔からそんなのはないという人と、あるという人がいた。40代も半ばになったときに「あぁ、これが35再定年説の根拠か」というものがなんかちらほら見えるようになってきたので書いてみようと思った。
世の中にはものすごいプログラマーというのはやっぱりいる。なんなら死ぬまでプログラミング書いていられるという人たちもいる(ブラック的な意味ではなく)。そんな彼らからしたらプログラマー35再定年説とか意味がわからない都市伝説にしか映らないだろう。
だが、普通に職業プログラマとして生きている俺のような人からすると、この35歳定年説はかなりの真実味を帯びている。
だが、そんな俺でも40代半ばまで延命できたのはやはり技術革新のおかげかもしれないが、結局平均寿命が伸びただけとも言えるだろう。
まず、技術に対する姿勢が変わる。正直言うとプログラミングとかもうしたくなくなる。というか、そもそも一生プログラミングを仕事にしたいと思う最初の頃は好きだと思っていたが、仕事にしてしばらく経ったら大して好きでもなかったな、と思うようになる。
大して好きでもないことを仕事にし続ける体力はやはり年とともになくなり、体力がなくなった分「自分が本質的にしたいと思うこと」が見えてくる。そしてそれはプログラミングではないため、ギャップがきつくなっていく。
おそらく、この辺が35歳くらいのあたりに来るのではないだろうか。35歳定年説と言ったら35歳ピッタリしか想像できないのが離散数学の世界で生きているプログラマらしいといえばらしいが。
そんな感じでやってても、20年もやればそれなりにスキルも身につく。さすがにGoogleの一線で働くような大天才たちと渡り合うことはできないが、もしかしたらGoogleの片隅で働ける程度のスキルはあるかもしれないが、正直もういいっす、っていう気持ちのほうが大きくなる。
次に、自分がどうにか身につけてきた知見というものがなかなか広まらない。コンセンサスが取れない、という状況にも苦しくなってくる。
自分がやってきたプロジェクトでこういうことをやったらうまく働いた、というような知見は共有するが、なかなか価値観が共有できないことに気がつく。若いうちは「だったら俺が全部やりますわ」くらいの気合を見せられたものだが、年を取ってくると「あ、そうですか・・・」となってしまう。純粋に体力も気力もなくなっていく。
プログラミングをやっているだけありみんな論理的な思考が大変上手だ。「皆さんホント論理的でいはりますなぁ」と言いたくなるわけだが、悲しいことに自分たちの振りかざす論理が、単なる正論、飛躍、極論、屁理屈、と言ったものであることに気づけない人も結構多い。こういうのを各個撃破するのも疲れる。
これからプログラミングを仕事にする人たちに言っておきたいことがある。もしこの世界で長く働きたい、定年までコード書いていたい、と思うなら、常に勉強をしなくてはならない。もしあなたがFラン出ているなら、他の人の倍努力しなくてはならない。できないならそこそこで転職したほうがいい。この世界にいるといかに若いうちの勉強が大事だったかを日々痛感する。
実務の上での俺の感じていることを書く。DDDだとかクリーンアーキテクチャだとかも大事だがもっとそれ以前に俺が根源的に重要だと考えているポイントだ。この辺をないがしろにしたらDDDもクリーンアーキテクチャも絶対に崩壊する。
まず、心得てほしいのはどんなにすごいプログラマでも意図の通じないコードは本当の意味で直せないということだ。
まず、引数チェック、状態チェックは必ずやれ。コードが語る、というようなことを言ってやらないやつが昔は多かったが、今もいるんだろうか。悲惨なバグやメンテナンス性の低下はそういった自分の意図の表明を横着したコードから起こり始める。「俺はこれをやる、だからこの機能を呼び出すならこういう状態にした上でこういう情報を渡せ、じゃないならやらない」とはっきり言え。もしこの辺を冗長だと考える同僚がいるならもう辞めたほうがいい。
引数チェックや状態チェックのコードで画面の半分が埋まったならそのコードは設計がおかしい。一旦手を止めてよく考えろ。一つの機能を動かすのにそんなに引数がいるのか、そんなにチェックする状態が多いのか、そしてそれらは本当に必要か検討しろ。
テストコードは絶対に書け。テストコードが書けない技術は絶対に使うな。意味のあるテストが書けないならやめたほうがいいという輩もいるが、とにかく意味があろうとなかろうと書け。引数にこれを入れたらこうなる、こういう状態でこういう事したらこうなる、というお前の意図はとにかく示せるだけ示せ。
だいたいこの辺を横着したやつは翌年酷く後悔するか、そこのメンテを担当した同僚を攻撃している。
コードが書けなくても大丈夫、という会社は、コードが書けたほうが有利な会社ではなく、本当にコードを書かない会社だというこは肝に銘じておけ。身につくスキルはEXCELの方眼紙を最低限の手数で作れるようになることか、本気でやればビジネスを理解できるかもしれないが、お前の技術者としてのキャリアはそこで止まる。
仮に憧れのスーパーハッカーがいる会社を目指しているとして、彼らがそこでどう働いているか、なにが泥臭いのかを想像できない、聞くことができないならやめておけ。浮かれ過ぎだ。
仮にGithubのURLを教えろという会社を目指しているとして、そこのリポジトリを飾り立てようと考えたならやめておけ、そういう会社はGithubにアウトプットすることを日常的な趣味として苦ではなくやり続けられる人を求めている。
年収をその会社の選択基準にしているならそこはおまえには分不相応な会社だからやめておけ。仮に入れたとしても馴染めることはまず無い。これは年収が低くても同じだ。
嫌いな人がいるならその会社はやめていい
###少しだけ追記
コメントを観てこの「最小且つ単一の論理でなにか否定できた気になる」という輩への対処が一番疲れる
これをあまり一般論として扱ってほしくはない
防衛的プログラミングほどクソなものはない
その辺のソフトって大体大ごとが起こる前に引退するから気にするだけ無駄なことが多いんだよね まあどういうコード書こうとも給料変わんないから 上の言うことハイハイ聞いておくし...
コードが語るマンまだまだおるよな 100人おったら100人が実際よりも自分のこと頭良いと思ってる人間だったわ 結局、自分の見えないところで他の人が苦労してるの気がついてないだけ
割と納得感ある こういう文章アカウントでるところで書くと、別の記事とか過去のいろいろを探してきて攻撃するめんどいやつが湧くから匿名向き
なんか最終行に変な予防線張ってるけど信教を持たない技術者の道は途中で途絶えるって喝破していい?
ある意味「コミュニケーションこそが存在意義」みたいなものだとはおもった。 そして、だんだん政治のほうが強くなっていくのだと。政治というのも、事をなすためのコミュニケーシ...
「コードを書くときに重要なポイント」だけ視点が急にミクロになるの気になる。
はてな記法覚えてね
まぁでも一般ピーポーはコードとか全く理解できんから最前線から退けばどっかの適当な会社の社内seでのんびりやってけるっしょ。
こういうことを教条主義的に言う奴はみんな型をちゃんと使ってないし、t_wadaはRubyを手放さないでTDDをやれと言い続けるし、果てにはテストコードがドキュメントだとか言い始める奴も...
「仕事にしてしばらく経ったら大して好きでもなかったな」と「○○歳定年説」は、ベクトルが違う。 昔は、やりたいのにやらせてもらえない。そんな時代だった。 キャリアアップと言...
40後半の凡プログラマだけどピンと来ない。大して勉強してないけどやっていけてるし、プログラム書くのがそんな好きではないけど苦痛でもない。
35歳定年とか、まだ言ってるのか? おまえ日本人の未来に年金なんてないぞ?税金は全部自民党のお友達に配るだけで、増税と将来の保証の削減の無限ループはこれからも続くんだ。 35...
プログラマーは35なだけで、他の仕事に変わればいいだろ。
わかる