【超初心者向け】エンジニアはプログラミング言語を複数勉強しないと食べていけない話
複数の言語を学習したくない人
「プログラミングの勉強をしています。複数のプログラミング言語を勉強するのって非効率ではないですか?一つの言語でずっとやっていきたいのですが。
どうしてこんなに多くの言語があって、複数の言語を学習しないといけないのでしょうか?」
こんな疑問に答えます。
この記事を書いている私はIT業界歴13年、年収1,000万円ちょっとの金融系エンジニアです。中学生の頃から大学までプログラミング教育を受け、大学院ではセキュリティの視点から当時最先端のプログラミング言語理論を研究していました。
これまで様々なプログラミング言語を扱ってきましたが、なぜ1つの言語だけではダメなのか?という疑問にエンジニア視点で答えます。
本記事のテーマ
- 複数の言語を習得しないと、エンジニアは食べていけない話
- 複数の言語が必要な理由1:システムは複数のプログラミング言語で動くから
- 複数の言語が必要な理由2:使う言語は開発現場によって様々だから
- 【複数の言語を学ぶなら】オススメのプログラミング言語
- どうしても複数の言語を学ぶのが嫌なら、枯れきった言語を習得すべき
複数の言語を習得しないと、エンジニアは食べていけない
どのプログラミング言語を習得すればいいのか悩み、選ぶと思いますが、プログラミング言語は複数習得しないとエンジニアとして食べていくのは難しいです。
例えばGoogleのエンジニアは社内で使う言語が規程されていて、以下の6つの言語のうち、どれかを使って良いことになっています。
- C/C++
- Java
- Python
- GO
- JavaScript
- TypeScript
例えば上のなかからPythonを選択し、Pythonだけで食べていくことはできないのでしょうか?
以降、プログラミング言語は複数習得しないとエンジニアとして食べていけない理由を2つ挙げます。
複数の言語が必要な理由1:システムは複数のプログラミング言語で動くから
例えば先ほどのGoogleの社内規程で、JavaScriptが使えるエンジニアなら、普段の仕事はJavaScriptで済むかもしれません。
しかし複雑なバック系の処理もすべてJavaScriptで動かすかというと、そんなシステムはまずないです。
C/C++かGO、Pythonあたりでバック系の処理をしていると思います。
バック系にはバック系のエンジニアがいるので分担すればいいと思うかもしれませんが、そうだとしてもどんな処理をしているかくらいはソースコードが読めないと理解ができず、仕事になりません。
ですから自分が勝負する言語の他に、いくつかシステムで動いている関連のあるプログラミング言語のソースコードも読んで理解できるレベルになっておかないとまずいのです。
複数の言語が必要な理由2:使う言語は開発現場によって様々だから
先ほどはGoogleの規程を例に挙げましたが、PythonやGOが禁止されていたり、突然iPhoneアプリの開発をやることになれば、SWIFTの勉強をしないといけなくなります。
また、数年前であればiPhoneアプリの開発はObjective-Cで行っていました。しかし今ではSWIFTへ移行する案件が増え。、Objective-Cでの開発は現象傾向が続いています。
このように、使う言語は開発現場やシステムによって様々ですし、世の中のトレンドによっても移り変わるため、エンジニアは複数のプログラミング言語を渡り歩く必要があるのです。
【複数の言語を学ぶなら】オススメのプログラミング言語
どのプログラミング言語を習得すればいいのでしょう?プログラマーの年収から、需要の多いプログラミング言語について調査しました。
結論からいうと、最も年収の高いプログラミング言語はGo言語でした….
プログラミング言語別年収ランキング&初心者が習得すべき言語を解説
プログラミング言語には古い言語から新しいの言語までたくさんあり、どのプログラミング言語を選べばいいのか悩んでしまいます。将来性があり、今も稼ぐためにはどの言語を選べばいいでしょう?
求人サイトが公開しているプログラミング言語別年収ランキングをもとに、私の元プログラミング言語研究者としての経験、SIerでの業務経験を踏まえて解説します。
どうしても複数の言語を学ぶのが嫌なら、枯れきった言語を習得すべき
新しい言語を渡り歩くのが嫌なら、枯れきった言語を選択しましょう。
習得すべき枯れきった言語は、以下の条件を満たす言語です。
- 言語仕様がほとんど変わらない、バージョンアップしない言語
- 代替が難しい、または代替するメリットがない言語
- 保守案件の規模が多く、その言語単体でも仕事のある言語
これにはBASHやCOBOLが該当します。
Bash
BashはUNIXで動く古いスクリプト言語の1つです。
現在サーバ向けのOSで主流となっているLinuxで標準的に使われているため、サーバエンジニアや運用系のエンジニアなら、プログラミング言語はBASHだけでもある程度食べていけます。
先日メジャーバージョンが4から5に10年ぶりにアップデートされましたが、ほとんど言語仕様は変わっていないため、習得後の追加学習コストも低く抑えられます。
Bashについて詳しくはこちらの記事を参考にしてください。
bash入門
bashに興味のある人「linuxで一般的に使われるbashを基礎から勉強したいです。bash入門者がネットで学習できる、まとめ記事はありませんか?」→こんな疑問に答えます。
bashはb
ourne a
gain sh
ellの略で、Linuxで標準的に使われているシェルです。bashはGNUプロジェクトの一つとして開発が進められ、オープンソース化しています。bashによってOSの操作や簡単なプログラミング、テキスト処理、ファイル操作などを行うことができます。サーバーのシステム管理を担当するエンジニアにとって、bashは最もよく使われるツールと言えます。
本記事ではbashについて基礎から解説していきます。
COBOL
COBOLも古い言語です。1950年代に作られたプログラミング言語ですが、現役で開発現場で使われています。クラシックな世界に着目してエンジニア生活を送るなら、実はCOBOLも面白いと思いますよ。
Cobolについて詳しくはこちらの記事を参考にしてください。
COBOLエンジニアがJAVAエンジニアよりも市場価値が高い3つの理由【SEの年収アップの裏技あり】
COBOLはC言語よりも古い言語ですが未だ現役で使われていて、実はCOBOLを扱えるエンジニアは潜在的にとても市場価値が高いのです/理由1:開発対象となる業務の付加価値が高い/理由2:人材不足/理由3:プログラマーから高給のエンジニアにキャリアアップしやすい/プログラミングスキルだけでは、どの言語でも年収に大差はないので重要業務の理解など、+αを身につけてキャリアップを目指しましょう。
まとめ
今回は以上です。エンジニアなら、プログラミング言語は複数学習し、エンジニアであり続ける限り新しい言語やテクノロジーを受け入れて学習しつづけるつもりでいましょう。
どうしても学習コストを下げたい方はクラシックな世界へ。金融業界でレガシーシステムと向き合うなら、COBOLエンジニアとしてまだまだ活躍できます。
プログラミング教育で論理的思考力は伸びる?肉まんで解説
論理的思考力とはどのような力?
なぜ論理的思考力が必要?
なぜ論理的思考力を伸ばすのにプログラミング教育が有効?
習得しやすい簡単なプログラミング言語は?【挫折しない学習法も提案】
習得が簡単なプログラミング言語とは
挫折しないプログラミング学習プラン
今すぐプログラミング学習を始めよう
趣味でプログラミングするなら何を作る?【子供もプログラミングを楽しめる】
趣味でプログラミング その1
ロボット(Sphero)を動かす
趣味でプログラミング その2
マインクラフトを使ってPythonのプログラミングをする
将来性はある?プログラミングを習得する意義について解説します
「プログラミングについて興味があります。でもAIが進化してプログラミングなんて不要になるかもしれません。果たしてプログラミング学習に将来性はあるんでしょうか?」
①AI時代でもプログラミング学習は無駄になりません
②最も将来性が高いのは、「新しい」「稼げる」プログラム
プログラミング学習に最適なOSは? 【Windows/Mac/Linux】
プログラムコードはOSに依存しなくなった
プログラミングがOSに依存しないから、どのOSを選択してもOK!
OSごとの特徴や細かい違いを解説