雑魚エンジニアは死ぬしかない。

自社開発メガベンチャーをわずか半年で鬱退職した雑魚エンジニアの話 を読んだが、この人の主張はこうだろう:自分は悪くない。悪くないんだ!!!

なんとかして、自分を正当化しよう。 そういう気持ちがひしひしと伝わってきた。

メンヘラに用はない。拒否する。

東大・京大・東工大以外は専門学校

おれはそもそも、ソフトウェアエンジニアは非常に高度な知能を必要とする仕事だと思っているため、 東大、京大、東工大。この3つ以外の出身者は不要だと考えている。 これらの大学の理工系で学び、理系的な思考を身につける必要がある。 ここより下の大学は、専門学校と変わらない。 大川隆法は、東大と早慶以外は専門だと言ったらしいが、おれとしては東京工 or dieを基本としたい。

特に数学的な思考は重要で、これによって出来る仕事の難易度が決まる。 数学的能力の低い人間に仕事を任せると何が起こるかというと、 深いところまで考察せず、 Qiitaなどのゴミ記事から読み知ったことをくっつけて それっぽいことをするだけに終始するため、 結局、痂皮が残る。 当然、残されたソフトウェアは修正不能となる。 一般的な企業には、 これらのゴミを作り直すことに価値を見出す余裕はないから、 なんとかして保守していかなければいけないことになる。 結局、「何もしてくれない方が良かった」ことになる。 これは外科手術において、再手術は癒着などの問題があるため難易度が上がるのに似ている。 一発で仕上げなければ死ぬ。我々はこのことを肝に銘じる必要がある。

もちろん、数学以外の教養も重要だ。 基本的教養を欠いた人間がまともな仕事を出来るようになることはない。 遺伝子コロナワクチンは、マルサスの人口論における積極的・予防的両面の性質を持つ 素晴らしいソリューションだと考える。 今後も継続して打ち続けたい。

また、チームビルディングのことを考えても、 これら三校の出身者だけで固めた方が、 極端なIQ差が生まれなくて議論が円滑になるという利点があるだろう。 この観点はどういうわけか、軽視されがちだ。 高知能者のコミュニケーショントラブル: IQが20違うと会話が通じない

リファクタリングの是非

記事の筆者は、 入った会社のコードがゴミだったためそれに発狂し、 なにやらリファクタリングすることを提案したが拒否され、 鬱になったということだが、これについては色々と言いたいことがある。

まず、一般的に、Pythonでプロダクションコードを書くべきではない。 Rubyもだめだ。Rustに限る。 Pythonで書いていいのは競プロコードだけ。 しかし、この場合はプロダクトが機械学習だということなので、 現在のエコシステムを考えるとPythonで致し方がない気もする。

コードがゴミだったというのは事実だろう。 実際、PythonやRubyと言ったスクリプト言語でプロダクションコードを書くという精神性を持っている時点で、 ソフトウェアのクオリティには一切興味がないと言ってるのと等しい場合が多い。 あるいは、こういうスクリプト言語ばかり書いていると、 良い設計に対する感覚が養われないという問題もあるように実感している。 型によってソフトウェアを表現しよう。 あるいは、機械学習の開発は一般的なソフトウェア開発とは少し毛色が違うため、 ソフトウェアのクオリティが軽視されがちという面はあるかも知れない。

仮にコードがゴミだった場合、本当に良い形にすることが出来るのであれば、 やったらいい。個人的にはそういう考えを持つ。 しかし問題は、当の本人にその技量があるかだろう。 先に述べたように、ソフトウェアの再手術は難易度が高くなる。 そのため、作業を行う前に明確なビジョンを持つ必要がある。

以下の3点を問いたい。

  1. 良い形が見えているのか。それを良いと主張する根拠はなんだ
  2. リファクタリングの専門技法について学んでいるか
  3. 実績はあるのか

おそらく、この著者はどれも満たしていない。 自身を雑魚エンジニアと呼んでいるとおり、3はないだろうし、1も2も満たしていないだろう。 だから、拒絶されたのだ。 もし、実績のあるエンジニアが リファクタリングしたいと言ったら、 ぜひお願いしますとなったはずだ。

そもそもだが、世間ではリファクタリングという言葉について誤解があるようにも感じている。 リファクタリングという言葉が、局所的な作り直しくらいの意味合いで使われているようなのだ。 しかし、少し源流をたどれば、リファクタリングというものが安全な変形手順の積み重ねによって ソフトウェアをよりよい形にする技法であることを理解出来る。 読んだことがないならば、以下の本を読んでほしい。 おれがこの本を読んだのは大学院生の頃だ。 もし読んでいないのであれば、おれより知能の低い人間がおれより不勉強というのは一体どういうことなのか、 この点についても問う必要が生まれる。

リファクタリング(マーチン・ファウラー)

設計の良し悪しについても、評価するための工学的な指標もあるし、 あるいは、囲碁の手割りや、数学の不等式評価のような考えを応用して評価することが出来る場合も多い。 なんとなく良さそうという不勉強に基づく謎の主張は受け入れられないだろう。

新人が育たない問題

筆者はその後、会社の中で居場所がなくなり、 結局鬱病を発病して、退職に至って、 薬の副作用もあってか 自分のことをなんとか正当化したいという思いが湧き、 このような謎記事を書いているのだが、 この点についても言いたいことがある。

現代の若者は精神が弱すぎる。

ソフトウェアの世界はある意味、簡単になったといえる。 ちょこっと勉強すればウェブアプリケーションを作ることが出来るし、 ウェブサービスを使うだけでインフラエンジニアヅラをすることも出来るようになった。 言語も爆発的に進化し、こういったサポートのおかげで ソフトウェア開発自体はどんどん高度になっていった。 ほんの10年前は、Rustすら存在しなかったのだ。 Linuxカーネルについても、おれが日立に入ったころは2.6系だったが、 その頃でもすでに、2.4系よりはるかに複雑になり入門しづらくなったと言われたものだ。 きっと今は、入門不能になっていることだろう。

結果、新人に割り振れる簡単な仕事はなくなった。 同時に、AIが猛烈に発達した結果、AI以下のエンジニアは淘汰されることがほぼ確定している。

こうした状況が、 ソフトウェア業界だけでなく、おそらくどの業界でも新人を焦らせているのだと思う。 このような精神状態では、失敗に臆病になって浅いことしかできなくなり、 その中でも失敗すると即病むという悪循環に繋がる。 あるいは、SNSなどの影響で、先行者が必要以上に見えるようになってしまったというのもあるだろう。 これは美容業界ではルッキズムの助長として問題視されていることであるが、 ソフトウェア業界でも同様の問題が起こっているように思う。

しかしだからといって、精神の弱さが肯定されるものでもない。 いちいちメンタルがどうとか言われてはたまったものではないからだ。 そういうやつははっきり言って、うざすぎる。

では本人が、能力のギャップを埋めるために努力をしているかというと、そうでもないということが多い。 そういう人間に限って、業務時間中に与えられた仕事をすればそれでいいという考えを持っている。 しかし実際には、寝てる時間以外はすべて、勉強をしなければいけないのだ。 そうしなければ、一生、ギャップに苦しめられることになるからだ。 強烈な努力が必要だ。

少なくともおれは、大学を出てから5年ほどはそういう生活だった。 ソフトウェアが異常に高度になっていることは事実なので、 それにキャッチアップするために非常な努力を要することは当然だ。 それを否定してギャップに苦しみ、勝手に病むような人間に居場所なんかあるわけがないだろう。 我々凡人は、強烈な努力をするか、死ぬかだ。

勝手に伸びるか、死ぬか

ここまでで、現代のソフトウェア開発は異常に難しくなったため、 会社に育ててもらうみたいな精神性では一生新人レベルのままで終わることがわかった。

では、どんな新人なら生き残れるだろうか?

答えは、東大・京大・東工大だ。 それ以外は死ぬ。

これらの難関理系大学の出身者は地頭が良いだけではなく、努力が出来る。 ごく一部の異常者を除けば、これらの大学に合格し、卒業するためには 相当の努力を必要とする。 そして、残酷な真実だが、努力が出来るかどうかも遺伝子的な要素が大きいようなのだ。

このような難関理系大学の出身者は 「他人に出来ることが自分に出来ないはずがない。やれば出来るはずだ」 と考え、多少困難そうなことにぶち当たっても心が折れず、「とりあえずやってみよう」という気力が湧く。 その成功体験はポジティブフィードバックする。 一流大学出身としてのプライドも彼らの心を強く支えるはずだ。

こういった人材は、勝手に伸びていく。 実のところ、こういった「勝手にやる」人材以外はもうだめだねというのは 10年前から言われていたことではあるのだが、 昨今ではそれがより顕著になったというだけのことだ。 これはスポーツでも同様で、敢えてコーチをつけない選手も多くなってきた。

時代は、東京工 or dieに向かってどんどん進んでいるように思う。 素晴らしいことだ。

実際のところ、筆者の出身大学がどこかは知らないのだが、きっと三流だろう。 その臭いがプンプンする。 もし、難関理系大学の出身者であればきっと、 自分のことを「雑魚エンジニア」などと卑下することはありえない。 我々はそんな精神性ではやってないからだ。

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。