どうも、しんじです。
さて突然ですが、エンジニアの人に質問です。あなたはひとつの言語を深く学ぶのが良いと思いますか?それとも複数言語を短いスパンで学ぶのがいいと思いますか?
色々な意見があり答えのあることではないですが、今回は私の意見を簡単にまとめておきたいと思います。
ひとつの言語を長く学ぶのが良いのか?複数言語を短いスパンで学ぶのが良いのか?
結論
まず結論ですが以下の通りです。
あなたがどんなエンジニアになりたいかという目標に合わせて言語の習得について戦略的に考えるべき。
例えばエンジニアとしてのキャリアアップを目指すのであれば、はやい段階から複数言語を短いスパンで学んでいる方が良い。
ひとつの言語を深く学ぶことのメリット・デメリット
まずひとつの言語を深く学ぶことのメリット・デメリットは以下のような点です。
メリット
- ひとつの言語を深く知り理解することで、他の言語にも応用可能な知識を得られる
- ある言語のプロフェッショナルになることで、その言語でより高いレベルの案件を素早くこなすことができるようになる
- ある言語について他の人に指導できるレベルになっているため、市場価値の高い人材となれる
デメリット
- ひとつの言語のことしかわからないため、それ以外の部分ではあまり役に立てない
- 言語の流行り廃りに対してのリスクが大きい
- そもそも自分にあっているプログラミング言語なのかが、その言語しかやっていない場合は判断できない
ひとつの言語を深く学ぶことは、その言語におけるプロになるということです。
「この言語のことはその人に聞けば全てわかる」みたいな状態を作り出すことができるので、社会で生き残っていく術を身につけているということもできると思います。
ただもしプロレベルの知識を持っているプログラミング言語が廃れてしまった場合、結局別の言語を学ばないといけなくなるという点はありますね。
複数言語を短いスパンで学ぶメリット・デメリット
複数言語を短いスパンで学ぶメリット・デメリットは以下の通りです。
メリット
- 多様な言語に触れることで、多様な言語の強み弱みなどの特徴を知ることができる
- あるプロジェクトに適切な技術を選定できるような言語の知識が身につく
- 多様なプロジェクトに参画することで、多くの技術に触れることができる
デメリット
- ひとつの言語を学ぶよりも学習コストが高くなる傾向がある
- どの技術も言語特有の実装などができるレベルの知識は身に付かない
- 新しい技術を触らせていただける仕事を常に探していないといけない
短いスパンで色々な言語を学ぶことで、さまざまな技術に触れることができます。結果プロジェクトごとに適切な技術選定をできるようになることが大きなメリットだと思います。また言語の流行り廃りなどに対してもリスクを低く抑えておくことができますね。
ただし学習コストはかなり高くなります。また新しい技術を使って仕事ができるようにポートフォリオを作成したり、職探しを常に続けないといけないので、その点はデメリットになるかと思います。
どんなエンジニアになりたいかが重要
結局どんなエンジニアになりたいかが重要かと思います。
例えば、技術のことが好きでそれを極めたいのか。それとも稼げるようになりたいのか。あるいは将来起業して自分のWEBサービスを作りたいのか。
それらの目標に合わせて、ひとつの言語を極めるのか、ある程度ひとつの言語をやった後、短いスパンでさまざまな言語を習得していくのか。を戦略的に考える必要があると思います。
まとめ
というわけで今回はひとつの言語を長く学ぶのが良いのか?複数言語を短いスパンで学ぶのが良いのか?についてまとめてみました。
結論はあなたがどんなエンジニアになりたいかという目標に合わせて言語の習得について戦略的に考えるべき。ということです。
ひとつの言語を深く学ぶことにもメリット・デメリットがありますし、複数言語を短いスパンで学ぶことにもメリット・デメリットがあります。これらを参考に、自分はどういった言語学習を進めていくか考えることが重要だと思います。