【超初心者向け】エンジニアはプログラミング言語を複数勉強しないと食べていけない話

プログラミング

この記事は、プログラミング初心者向けの記事です。

複数の言語を学習したくない人
「プログラミングの勉強をしています。複数のプログラミング言語を勉強するのって非効率ではないですか?一つの言語でずっとやっていきたいのですが。
どうしてこんなに多くの言語があって、複数の言語を学習しないといけないのでしょうか?」

こんな疑問に答えます。

この記事を書いている私はIT業界歴13年、年収1,000万円ちょっとの金融系エンジニアです。中学生の頃から大学までプログラミング教育を受け、大学院ではセキュリティの視点から当時最先端のプログラミング言語理論を研究していました。

これまで様々なプログラミング言語を扱ってきましたが、なぜ1つの言語だけではダメなのか?という疑問にエンジニア視点で答えます。

本記事のテーマ

  • 複数の言語を習得しないと、エンジニアは食べていけない話
  •  複数の言語が必要な理由1:システムは複数のプログラミング言語で動くから
  •  複数の言語が必要な理由2:使う言語は開発現場によって様々だから
  • 【複数の言語を学ぶなら】オススメのプログラミング言語
  • どうしても複数の言語を学ぶのが嫌なら、枯れきった言語を習得すべき

複数の言語を習得しないと、エンジニアは食べていけない

複数の言語を習得しないと、エンジニアとして食べていけない

どのプログラミング言語を習得すればいいのか悩み、選ぶと思いますが、プログラミング言語は複数習得しないとエンジニアとして食べていくのは難しいです。

例えばGoogleのエンジニアは社内で使う言語が規程されていて、以下の6つの言語のうち、どれかを使って良いことになっています。

  • C/C++
  • Java
  • Python
  • GO
  • JavaScript
  • TypeScript

例えば上のなかからPythonを選択し、Pythonだけで食べていくことはできないのでしょうか?

以降、プログラミング言語は複数習得しないとエンジニアとして食べていけない理由を2つ挙げます。

複数の言語が必要な理由1:システムは複数のプログラミング言語で動くから

複数の言語が必要な理由1:システムは複数のプログラミング言語で動くから

例えば先ほどのGoogleの社内規程で、JavaScriptが使えるエンジニアなら、普段の仕事はJavaScriptで済むかもしれません。

しかし複雑なバック系の処理もすべてJavaScriptで動かすかというと、そんなシステムはまずないです。

C/C++かGO、Pythonあたりでバック系の処理をしていると思います。

バック系にはバック系のエンジニアがいるので分担すればいいと思うかもしれませんが、そうだとしてもどんな処理をしているかくらいはソースコードが読めないと理解ができず、仕事になりません。

ですから自分が勝負する言語の他に、いくつかシステムで動いている関連のあるプログラミング言語のソースコードも読んで理解できるレベルになっておかないとまずいのです。

複数の言語が必要な理由2:使う言語は開発現場によって様々だから

複数の言語が必要な理由2:使う言語は開発現場によって様々だから

先ほどはGoogleの規程を例に挙げましたが、PythonやGOが禁止されていたり、突然iPhoneアプリの開発をやることになれば、SWIFTの勉強をしないといけなくなります。

また、数年前であればiPhoneアプリの開発はObjective-Cで行っていました。しかし今ではSWIFTへ移行する案件が増え。、Objective-Cでの開発は現象傾向が続いています。

このように、使う言語は開発現場やシステムによって様々ですし、世の中のトレンドによっても移り変わるため、エンジニアは複数のプログラミング言語を渡り歩く必要があるのです。

【複数の言語を学ぶなら】オススメのプログラミング言語

【複数の言語を学ぶなら】オススメのプログラミング言語

どのプログラミング言語を習得すればいいのでしょう?プログラマーの年収から、需要の多いプログラミング言語について調査しました。
結論からいうと、最も年収の高いプログラミング言語はGo言語でした….

詳しくはこちら

どうしても複数の言語を学ぶのが嫌なら、枯れきった言語を習得すべき

どうしても複数の言語を学ぶのが嫌なら、枯れきった言語を習得すべき

新しい言語を渡り歩くのが嫌なら、枯れきった言語を選択しましょう。
習得すべき枯れきった言語は、以下の条件を満たす言語です。

  • 言語仕様がほとんど変わらない、バージョンアップしない言語
  • 代替が難しい、または代替するメリットがない言語
  • 保守案件の規模が多く、その言語単体でも仕事のある言語

これにはBASHやCOBOLが該当します。

Bash

BashはUNIXで動く古いスクリプト言語の1つです。

現在サーバ向けのOSで主流となっているLinuxで標準的に使われているため、サーバエンジニアや運用系のエンジニアなら、プログラミング言語はBASHだけでもある程度食べていけます。

先日メジャーバージョンが4から5に10年ぶりにアップデートされましたが、ほとんど言語仕様は変わっていないため、習得後の追加学習コストも低く抑えられます。

Bashについて詳しくはこちらの記事を参考にしてください。

COBOL

COBOLも古い言語です。1950年代に作られたプログラミング言語ですが、現役で開発現場で使われています。クラシックな世界に着目してエンジニア生活を送るなら、実はCOBOLも面白いと思いますよ。

Cobolについて詳しくはこちらの記事を参考にしてください。

まとめ

今回は以上です。エンジニアなら、プログラミング言語は複数学習し、エンジニアであり続ける限り新しい言語やテクノロジーを受け入れて学習しつづけるつもりでいましょう。

どうしても学習コストを下げたい方はクラシックな世界へ。金融業界でレガシーシステムと向き合うなら、COBOLエンジニアとしてまだまだ活躍できます。


こちらの記事も参考になります