10年食べる

少し前にTwitterで10年食べていける技術、それを見極める目が欲しいというのを見かけて、少し考えていた。考えた結果、

  1. 10年前から今まで使われている技術であれば10年後も使われている可能性は高いので、その技術のスペシャリストになる
  2. 10年前と今を比較すると、技術の移り変わりは非常に激しい。物事は変化するという前提で変化についていけるような基礎的・抽象的な力を身につけていく

といった戦略がありそうだ。自分の場合仕事を始めて5〜6年経つが、すでに仕事で使う技術が何回も変わっている。結果的に2の戦略に近い動きをしていたように思う。

今後10年間、需要があり続ける特定の技術って何だろうか?パッと思い浮かぶのはRDBとか?これは10年後になくなる、というのは想像できない。絶対残ると思う。他にもあるだろうし、そういう技術を突き詰めれば長い間食べていけるだろう。10年前でも今でもシステムにとって交換が難しい技術を考えると良さそうだ。とはいえ、RDBのような技術も10年間でアップデートはされてきているだろうから、常にキャッチアップし続ける必要はあるだろうなあ。また、20年後、30年後となると残っているかどうか不確実だというリスクもあるだろう。

自分の場合は変化し続けることでこれまで食べてきており、特定技術のスペシャリストではない。今使っている技術が今後10年間その使い続けられるという前提のみで行動すると変化した時に詰んでしまいそうだ。僕は今Kubernetes周辺の技術を仕事のコアとしているが、10年後もそれで食べていけるか?というとわからない。5年くらいはいけると思う。また、Kubernetes関係の仕事だけしかしないつもりもあまりなかったりはする。技術のコアに近い所にいて動けるならまた別の戦略があるかもしれないが、そういう立場になったことはないのでちょっとわからない。

具体的な技術ではなく、論理的な思考能力や抽象化能力、計算機科学の基礎知識も重要そうだ。10年前でも10年後でも重要だろう。これらを持っている人は技術トレンドが変わってそれまで使っていた技術が全く使われなくなったとしてもどうにかなる気がする。