まずは「浅く広く」より「狭く深く」を重要視したい派です

まずは「浅く広く」より「狭く深く」を重要視したい派です

ITエンジニアとして活動していくにはまずは一つの言語に特化することを目標にするのが得策かと思います

今回は僕がそう思う理由についてご説明したいと思います。

ITエンジニアの供給不足という背景

ITエンジニアの人材不足が2030年頃まで変わらないという調べが経済産業省より発表されています。

この数字がどこまで正確なのかはわかりませんが、当面は「エンジニア不足」という現状は変わらないかと思います。

現に僕は転職してから2年ほどPHPだけでやってこれましたし、求人サイトや、クラウドワークスなどで案件を探せばいくらでも見つかります。

そのため

「勉強していたことがすぐに無駄になる」

ということはあまり発生しないので、転職したての人は、浅く広く色んな言語を触ることよりも、

「この言語を頑張ってみよう」

と決めたもので1、2年粘ってみるのも一つの手かと思います。

一つの言語を粘り強く習得していくことの重要性

ただ、「技術の移り変わりの激しいこの時代にあえて一つの言語に執着しなくてもいいんじゃないか」と思い、あれもこれもと手をつける人もいますが、そのやり方が本当に自分に合っているかはよく考えてみたほうがいいと思います。

自分も手広く勉強するのが正しいと思っていたのですが、結果的に習得スピードが下がってしまっていたことに気づきました。

当時Web系のプログラムに関する仕事を始めたての時期に、プライベートでIOSアプリの開発に興味を持ち、仕事に関する勉強を疎かにしたままアプリ開発の勉強に走ってしまった結果、「その現場だからこそもっと学べたはずのスキルを疎かにしてしまった」という後悔がありました。

プログラミング言語の基本的なレベルの解説などはネットで検索すればすぐに見つかるのですが、応用的な使い方や、案件に合った独自の組み方というのはその現場でしか見れないということがよくあります。

その現場でしか見れないプログラムの組まれ方というのは大抵の場合意味があってそうなっているものが多いため、そこにあるコードをじっくる読んで咀嚼することや、もっと効率的な組み方ができるのではないかと思考を巡らせてみるほうが、成長の速度は上がります。

そうすることで一つの言語に対してより深堀ができるようになり、他のプログラマと自分を差別化できることにつながります。

一定の期間、一つの言語に集中してプログラミングに対して自分なりの見解を深められた状態から他の言語を勉強すると、更にスムーズに習得することが可能になります。

確かに違う言語を並行して勉強することで、比較しながら共通点を見つけると知識として定着しやすくなったりもするのですが、そのやり方をとるとしても、一つの言語で現場で通用するスキルが身についてからのほうが効率的かと思います。現場で通用するスキルが身に着く機関の一つの目安として1年くらいは他に浮気をせず粘ってみることが結果的な遠まわりを回避することにつながるかと思います。

まとめ

技術の移り変わりは激しいですが、一番のリスクはあれこれ浅く手を付けた結果、どの言語もググったらすぐ解決できそうな問題のプログラミングしか組めない状態だと思います。

どんなに新しくなってもプログラミングの考え方の基礎は変わらないので、本当に手に職をつけたいと思うなら、焦らずに一つずつ理解して自分の身につけていくことをお勧めします。