フルスタックエンジニアに憧れるな
エンジニアのみなさんにお伝えしたいことがあります。
それは、フルスタックエンジニアを目指してはいけないということです
フルスタックエンジニアとは、
・html,cssで、デザイン通りのコーディング
・react or vueでフロントエンド実装
・RailsやLaravelでバックエンド実装
・AWSやGCPでインフラ構築
・swiftやkotlinでアプリ開発
これら全て一人で出来るエンジニアのことを言います(アプリはなくてもいいかも)
そして、当たり前なのですが、フロントエンドエンジニアはreactやvue,javascript,typescriptの勉強に集中し、インフラエンジニアはクラウドサービスやネットワークなどのインフラ領域に集中して、仕事と勉強を進めているなか、フルスタックエンジニアは全領域の勉強と仕事を同時進行しなければなりません。
現役エンジニアであっても、自分の得意領域に集中しているにも関わらず、時間も知識も経験もない駆け出しエンジニアがフルスタックエンジニアを目指すのは明らかに不利な戦いに身を置いているのです。
つまり、フルスタックエンジニアは、全領域で第一線の技術を要求されるにもかかわらず、一つの領域ですら第一線の知識を得ていない駆け出しエンジニアがフルスタックエンジニアを目指すのは、戦略ミスです。
フルスタックエンジニアの意味を勘違いしてはいけない
フルスタックを目指すな!と指摘すると、必ず、
「現役エンジニアの人はフロントもバックエンドもインフラも出来る人多いじゃないですか!」
と、反論する人も多いです。
実際、私も、
web制作
・大規模webサイトのHTMLコーディング
・WordPress実装
・LPサイトコーディング
フロントエンド
・react(Next) + Typescript + tailwindcssのアプリ制作
・vue.jsにてアプリ制作
バックエンド
・Rails(ruby)にてプロダクト開発
・Express(node.js)にてプロダクト開発
インフラ
・AWSにて数億トラフィックのサービスを運用
・terraformにてIaC
・Datadog等の監視
・SRE的施策の実施
・CICDの実装・運用
アプリ
・swiftにてiosアプリをリリースし、インストール数約1万
と、ほぼ全領域のスキルをもっています。
しかし、これらのスキルは、SRE・インフラエンジニアという私の仕事に必要な知識を得るために最低限必要な情報であって、現役の各領域の専門のエンジニアと同程度のクオリティでアプリケーションを作れるほどのスキルはありません。
どちらかというと、SREとして生きていくために、必要になって覚えた感じです。
物理学者が物理学の研究をするために、最低限、数学や英語の勉強をするのと同じ感覚です。