フリーランスエンジニアの岩井です。
今回はエンジニアの言語学習の永遠の課題、狭く深くか広く浅くか問題について、独断と偏見を交えて語ります。
結論から述べれば、私は「狭く深く」派です。
まずはそれぞれのメリットから。
狭く深く
案件獲得しやすくなる:専門性があるほうが「この人に任せたい」と思われやすい。
実務に耐えうる力がつく:フリーランスは即戦力が求められるため、表面的な知識では対応が難しい。
周辺技術も身につく:1つの言語を深く掘れば、自然とフレームワークやライブラリ、開発手法も学べる(例:JavaScript → React → Node.js → Next.jsなど)
広く浅く
案件の選択肢が広がる:言語によって得意な分野が違うため、複数知っていると営業しやすい。
適材適所の技術選定ができる:例えば「WebアプリはTypeScript、データ処理はPython」のような柔軟な選択が可能。
トレンドに強くなる:業界が求めるスキルが変化した時、対応しやすい。
以上が簡単に思いつく範囲でのメリットデメリットです。
広く浅くだと、案件の選択肢が広がるのは確かで、技術選定の選択も自由が効くのも確かですが、上流に行けるレベルの技術力と知識がなければ宝の持ち腐れです。
狭く深くで、まずは1つの言語に自信を持てるようになってから「狭く深くを継続」「他の言語を覚える」の選択肢に迷うようになりましょう。
未来のことを考えた時に、複数の言語を知っておいた方が食いっぱぐれないのでは…と思っていた時期もありましたが。
しかし、たとえ覚えた技術がマイナーになっても、その技術をすでに使用するしか方法がない現場もあります。(いわゆるレガシーな環境)
そうなれば逆にその技術の希少性で稼ぐことができるという考え方もできるので、私は「狭く深く」を強く推します。