これからプログラミングを学ぶ上で「将来安定して稼げるのか」は気になる点ですよね。
エンジニアの年収はプログラミング言語の人気度や将来性などによっても変わりますが、安定して稼げるかどうかはプログラミング言語よりもむしろ英語スキルがあるかどうかに左右されるのが実際のところ。
- プログラミング言語そのものが英語
- プログラミングの参考資料や記事もほとんどが英語
というプログラミングの特性上
- メルカリが新卒エンジニアの9割に外国人を採用
- 英語スキルがある人はない人より年収が100万円以上高い
など、英語ができるエンジニアの市場価値が非常に高くなっているのです。
本記事では「プログラミングで安定して稼いでいく」ということを念頭に、プログラミング言語の将来性やエンジニアの年収などを解説していきます!
記事のもくじ
プログラミング言語の比較①:人気度
海外の調査機関である『TIOBE Index』をもとに、プログラミング言語の人気度を比較していきます。
不動の人気を誇る【Java】
【Java】は2000年代で常に1位、2位に位置する人気プログラミング言語です。
2位の【C言語】も【Java】とあわせて常に上位に位置しています。
3位【Python】が近年ランキングを上げ続けている背景にはAI(人工知能)の発達が考えられますが、【Java】や【C言語】と比べるとまだまだ人気度はそこまで高くないと言えるでしょう。
大幅に順位を上げてきている【Groovy】
2019年07月時点でTIOBE Index15位の【Groovy】は、一年前の2018年07月時点の81位から急激にランキングを上げてきています。
【Groovy】は、Webアプリケーション開発で取り残された【Java】プログラマーを救済するために開発されたプログラミング言語です。
【Groovy】にはRuby on Railsのようなフレームワーク『Grails』があり、【Java】とほとんど同じ感覚でプログラミングできるため、【Java】プログラマから支持されています。
プログラミング言語の比較②:将来性
- 現在の普及度
- 習得のしやすさ
- これから注目される技術(AI、IoT、ビッグデータ、VR、ブロックチェーンなど)に強いかどうか
以上3つの観点から、将来性のあるプログラミング言語を5つ選びました。
1位 | Python |
2位 | C# |
3位 | Ruby |
4位 | JavaScript |
5位 | Java |
AI・IoTに強い【Python】、VRでは【C#】に注目
AIやIoTは非常に将来性のある技術ですが、【Python】はAIに関するライブラリが豊富で、AI開発しやすいのが特徴。
IoTの分野でも、個人で簡単に使用できるマイコンボード『Raspberry Pi』と【Python】は相性が良いので学習しやすいです。
VRの分野では【C#】に注目です。
ゲームエンジンとして人気のある『Unity』はVRの開発もでき、【C#】を扱うことで高度なVR開発が可能となります。
ブロックチェーン技術では【Solidity】にも注目
ブロックチェーンとは、複数の取引データを分散管理する最新技術のことです。
現在のアプリケーションの多くは中央サーバーがデータをまとめて管理していますが、ブロックチェーンではあらゆるユーザーのコンピューターにデータが保存されます。
DApps(ダップス)と呼ばれる分散型アプリケーションもブロックチェーン技術を利用しており、
- クライアントが相互に通信を行う、サーバー不要のP2Pモデル
- クライアントの一部に障害が発生しても、全体的な通信に影響がない
といった特徴があります。
仮想通貨Ethereum(イーサリアム)はDAppsプラットフォームのために【Solidity】を使用して開発されました。
【Solidity】は【JavaScript】の構文に似ていることもあり、習得難易度はそこまで高くないところが特徴です。
プログラミング言語の比較③:年収
ここでは、日本と海外のプログラミング言語ごとの年収を比較します。
日本では【Go】の年収中央値600万円がトップ
国内最大級のハイクラス転職サイトを運営する『ビズリーチ』では、日本ではGoogleが開発した【Go】の年収が最も高いという結果になりました。
3位の【Python】はAIの発達による需要の増加によって年収が高くなっていると考えられます。
その他は比較的新しい言語なので、各プログラミング言語を扱える人が少なく、人材価値が高くなる傾向にあると考えられます。
海外でも働けるグローバルなエンジニアが年収を大きく伸ばしている
「日系企業で働くエンジニアに海外は無縁」と思っているかもしれませんが、現実は全く異なります。
近年では日系企業も続々と外国人エンジニアを採用しており、「メルカリ」では2018年度新卒採用の9割に外国人エンジニアを採用しました(参考:ダイヤモンドオンライン)。
エンジニアはその都度コードを調べながらプログラミングをしていくので、
- プログラミング言語そのものが英語
- プログラミングの参考資料や記事もほとんどが英語
という特性上、英語で情報収集できるエンジニアの市場価値が非常に高くなっているのです。
実際、優秀な海外エンジニアの情報を収集できればスピーディにスキルアップできますし、TOEIC900点台の人の年収は英語スキルがない人よりも100万円以上高いというデータもあります(参考:doda)。
海外では【Erlang】・【Scala】の平均年収約1,200万円がトップ
stack overflowの『Developer Survey Results 2018』によると、アメリカで最も年収が高いプログラミング言語は【Erlang】と【Scala】の11.5万ドル(約1,200万円)でした。
【Scala】【Clojure】【Go】が登場したのは2000年代ですが、【Ocaml】は1996年、【Erlang】は1986年に登場したプログラミング言語です。
【Erlang】も【Ocaml】もブロックチェーン関連のプログラミング言語なので、ブロックチェーン・仮想通貨に関連する言語の価値が高くなっていることが考えられます。
また、【Scala】【Ocaml】【Clojure】は関数型のプログラミング言語なので、従来の手続き型・ブジェクト指向型より関数型のプログラミング言語を扱える人材の価値が高くなっていることが読み取れます。
プログラミング言語の比較④:求人数
プログラミング言語ごとに求人数は異なります。
企業が求めるのは、どのプログラミング言語が扱える人材なのか見ていきましょう。
日本における求人数は【Java】がダントツ
IT、Web業界の専門転職エージェント『レバテックキャリア』によると、全体の求人割合のうち3割強を【Java】が占めています。
2位の【PHP】の倍以上の割合であり、Javaの求人数はダントツであることがわかりますね。
海外における求人数でも【Java】は強い
『indeed.com』によると、アメリカの求人でも日本と同じく【Java】の求人数が最も多い結果となりました。
順位 | プログラミング言語 | 求人数 |
---|---|---|
1位 | 【Java】 | 2,550 |
2位 | 【C#】 | 1,929 |
3位 | 【JavaScript】 | 1,899 |
4位 | 【Python】 | 1,710 |
5位 | 【C言語】 | 1,554 |
日本とは違い、【PHP】や【Ruby】がランク外となっています。
プログラミング言語の比較⑤:汎用性
プログラミング言語の汎用性は、1つの言語でできることの広さを表します。
汎用性の高い言語と合わせて、各ジャンルの開発に向いている言語を紹介します。
【Java】は汎用性も高い
汎用性の高い言語を順位づけしてみます。
1位 | 【Java】 |
---|---|
2位 | 【Python】 |
3位 | 【JavaScript】 |
4位 | 【Ruby】 |
5位 | 【C#】 |
【Java】はWebサイトの作成から、Webアプリ・スマホアプリの開発、業務システムの開発と幅広いシステム開発を行えます。
【Python】も【Java】ほどではありませんが、Webサイトの作成からWebアプリ、AI開発までできる言語です。
反対に、【PHP】はWebサイト制作以外はあまり得意ではないので、汎用性が低い言語といえます。
Web系、AI系、組み込み系、ゲーム系それぞれに強い言語はある
正直なところ、プログラミング言語の汎用性は、そこまで重要視する項目ではありません。
なぜなら、プログラミング言語には、それぞれに得意不得意があるからです。
汎用性が低い【PHP】も、Webサイト制作においてはとても強力な言語です。
組み込みなら【C++】、ゲームなら【C#】、iOS/OS Xのアプリ開発なら【Swift】といった具合に、それぞれのプログラミング言語が得意としている開発の種類は異なります。
比較して、結局どのプログラミング言語が良い?
結論から言えば、「どのプログラミング言語でも良い」と言えます。
なぜなら、プログラミング言語はあくまでも「手段」でしかないからです。
たとえば、包丁を想像してみてください。
万能な三徳包丁は使いやすく、野菜を切るときなどには重宝しますが、魚をおろすことには適しません。
魚をおろすことに適した出刃包丁は、野菜などをキレイに切ることは苦手としています。
包丁の目的は「素材を切ること」と共通しており、どんな包丁でもある程度は目的を果たせます。
しかし、素材に応じて適した包丁が存在しているわけですね。
プログラミング言語に関しても同様のことが言えます。
大切なのは「目的」を明確にすること。
プログラミング言語は、1つしか覚えてはならないということはなく、複数の言語が扱えるようになれば、それだけ活躍できる場を増やすことに繋がります。
重要なのは「どのプログラミング言語が良いか」ではなく、「目的に応じて、どのプログラミング言語を選択するか」ということです。
まとめ:1つのプログラミング言語だけにとらわれる必要はない
人気度や求人数、汎用性を見ると、Javaは非常に優秀なプログラミング言語であると言えるでしょう。
しかし、日進月歩のIT業界においては、人気度や将来性などは常に変動し続けるものです。
プログラミング言語は手段でありツールです。
コンピュータ上で実現したい「目的」を達成するために利用するものですので、手段は多いほうが良いことは明白ですね。
1つの言語にとらわれる必要はないので、まずは比較的習得しやすい言語から学習してみてはどうでしょうか。