エンジニア10年選手になりましたが、過去の実績を重視するのはやめませんか?

※たいした記事じゃないので、読み流して良いです

この春でエンジニアとしては10年選手になります。キャリアとしては最初の3年ちょいがしがないSIerで、リーマン・ショックから3年くらいはフリーランスで、Web系の現職(3年半経過でキャリア最長となった)です。

この間ファイルやらメールやらを整理していたところスキルシートとやらが出てきましてね。客先で常駐した経験のある方なら誰もが書いたことがあるものだと思いますが、コレを見返していたら経験した業務であったり得られた技術領域のうち相当数が、陳腐化したというかあまり役に立たないものになっていました。

かなりの技術が陳腐化した

最初の会社のときにStrutsできれば生きていけるみたいなこと言われたことがあるんですが、当然Strutsじゃもう生きていきないし、SAStrutsで盛り上がったのも今は昔でSeasarプロジェクトも終了してしまいました。

バージョン管理はCVSとかSVNがメインだったけど、今やGit使ってないやついないんじゃないかってくらいですし、MicrosoftだってVSS捨ててGitなので相当ドラスティックに変わってきたなと。

自分のスキルシートを見返した感じ今のWeb系のメインストリームで通用する技術って正直ほとんど残ってなかったです。ただ、ベースとなる力を身につけるために通るべき道だったのかなと割りきっています。

最も資産となる技術領域はデータストア

そんな中、10年たっても非常に重要であり続ける領域はやはりデータストアの領域。RDBはMySQLを代表に今でも根強く利用されています。KVSやカラムベースなデータストアも数多く登場してきてますが、どちらが優れているとかという話にはならなくて、適材適所なものが選択されるようになっています。どれかが廃れるという感じにはなりにくくて、経験が多岐にわたればそれだけ選択肢を増やすことができるため強みにしやすいですよね。

新しい要素を学んでいくのが重要ではある反面、この分野って基礎技術が落ちないようにしておいた方が良いと思います。開発から少しでも離れちゃうと一気に衰えると思うので、やはり常に何かしらのプロダクトを作り続けるべきだなぁと思うのでした(業務でなくても良いと思う)。

10年経てばアプリケーションの作り方はぜんぜん変わる

10年で相当変わってきましたよね。

  • クラウド上にアプリケーションを構築、インフラのコード化
  • 仮想化とコンテナ化の時代到来
  • フロントエンドの急激な高度化、専門化
  • AppStore, Google Play, GitHubで誰もが万人に使われうるプロダクトを作るチャンスができた

よくお年を召された方が、自分は若いころはこういう業務をやってきたのでお前らも云々みたいなことを言う人が少なからずいるわけですが、そもそもあなた達がやってきた時代とは違うし、自分の世代とも違うし、今の1・2年目の若者でも違う。

最近じゃ小学生のプログラミングを学ぶ熱がすごいので(弊社もやってますが)、IT業界におけるキャリアパスは世代によってまったく変わった性質になるものを認識しておかねばなりません。ここからの10年もまた相当変わってくるのでしょう。

重要なのは、先人たちが通った道を後の世代がなぞっていく必要はないということ。既にあるショートカットはどんどん使っていくべきだし、次の世代のために新たなショートカットを作っていくべきだとも思う。

過去の実績を重視するのをやめよう

エンジニア自身にとっても採用する側にとってもそうなんですが、過去の実績を重視するのはやめませんか?

2,3年のスパンでさえ利用技術も結構変わってるし、そもそも求められるアプリケーションが今までになかった性質のものだったりすることは珍しくない。

であれば、今そこにあるプロジェクトであったり命題に対して、どのようなアプローチで問題解決していけるかをちゃんと描けて実行に移すことができるかどうかを重視すべきじゃないかなと思ってます。

これこれこういうプロジェクトをやって、これだけの技術を習得してきたぜ的なアピールはやっぱり意味がないなぁと思いを馳せた今日この頃。これからも基礎となる技術は大事にしつつも、この先の問題解決をするための道具を磨いていきたいと思ったのでした。