読者です 読者をやめる 読者になる 読者になる

paiza開発日誌

paiza(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

【年収1位はPython】求人人気1位はあの言語!転職時に有利な言語ランキング

f:id:paiza:20161130173213j:plain
Photo by Ivan Dervisevic
f:id:paiza:20140916135428p:plainこんにちは、谷口です。

ITエンジニアの皆さんは、数あるプログラミング言語の中で、どの言語で開発をした経験がありますか?また、皆さんの一番得意なプログラミング言語は何ですか

先日、求人検索エンジン「スタンバイ」がプログラミング言語別 平均年収ランキングを発表しました。結構物議を醸したので見た方もいらっしゃるかもしれませんね。このランキングでは、平均給与額1位がPythonで651万円、2位がPerlで633万円、3位がRubyで606万円となっています。

https://jp.stanby.com/media/programming_ranking/jp.stanby.com

では、平均給与に比べてエンジニア自身が転職時に希望している言語や、実際に経験のある言語、また企業が求人票に記載している言語には、どのようなプログラミング言語が多いのでしょうか。

今回は、下記目次のような様々な観点でプログラミング言語のランキングを調べてみました。いろいろな視点でプログラミング言語のランキングを集計してみました。ご自分の得意な言語や経験のある言語がIT業界や転職市場でどのような位置づけになっているかを知ることで、転職活動や今後の学習の参考になればと思います。


【目次】

■言語別平均年収ランキング

まずは、最初に挙げたスタンバイの調査によるプログラミング言語別 平均年収ランキングの詳しい順位を見てみましょう。

f:id:paiza:20160506101637p:plain

  1. Python 651万円
  2. Perl 633万円
  3. Ruby 606万円
  4. C言語 597万円
  5. JavaScript 555万円
  6. PHP 538万円
  7. Scala 531万円
  8. Java 500万円
  9. Swift 483万円
  10. Objective-C 483万円
  11. COBOL 446万円
  12. アセンブラ 441万円

1位のPythonは、近年機械学習に関する案件のニーズが急激に高まっていることから、提示額を上げてでもPythonを使える人材を獲得したいという採用企業側の需要がうかがえます。

ただ、このランキングの記事においてスタンバイは、C言語の項目で『「C」、「C++」、「C#」などは、企業の業務システムをはじめとした様々なシステムで活用されています。』とC、C++C#を一括して「C言語」として集計してしまっているようなので……これはちゃんと別物として集計した結果が見たかったところですね。

■転職時に希望する言語ランキング

まずはpaizaに登録しているエンジニアのデータから、「どの言語での開発を希望しているか」のランキングです。

このさき使いたいと思っている言語ランキング」と言えますので、現在~近い将来における開発言語シェアに近いランキングとしても見ることができるでしょう。

※paizaのプロフィール設定で、「希望する条件」に選択された言語を集計しています。(複数言語が選択可能)母数は「希望する条件」を登録している全人数(未登録者は除外)となっています。

f:id:paiza:20160427155608p:plain

  1. Java 48.5%
  2. JavaScript 48.3%
  3. PHP 34.2%
  4. Ruby 32.5%
  5. C# 30.3%
  6. C 27.5%
  7. C++ 27.0%
  8. Python 24.9%
  9. Objective-C 14.0%
  10. Swift 12.1%
  11. Scala 11.5%
  12. Perl 8.6%
  13. Go言語 7.6%
  14. VB 6.7%
  15. R言語 4.6%

■経験言語ランキング(3年以上の経験)

次に、paizaに登録しているエンジニアの中で、3年以上の経験がある言語のランキングを出してみました。これは希望言語ランキングとは異なり、これまで実際に業務で3年以上開発を経験してきた言語になります。

※paizaのプロフィール設定で、3年以上の開発経験があると設定されている言語を集計しています。(複数言語が選択可能)母数は何らかの3年以上の開発経験がある言語を登録している全人数(未登録者は除外)となっています。

f:id:paiza:20160427161506p:plain

  1. JavaScript 38.0%
  2. Java 34.8%
  3. PHP 27.5%
  4. C 25.6%
  5. C# 17.5%
  6. C++ 19.2%
  7. VB 11.8%
  8. Ruby 7.0%
  9. Perl 8.2%
  10. Python 4.7%
  11. Objective-C 3.9%
  12. ActionScript 2.9%
  13. COBOL 2.0%
  14. R言語 0.5%
  15. Scala 0.5%

希望言語の割合が高く、経験言語とのギャップが特に大きかったのはRubyPythonですね。もう少し経つと経験年数の割合も上がりランキングに変動が起きてくるかもしれません。JavaJavaScriptPHPは開発人口が多いので、経験・希望ともに高い割合となっています。

■求人人気言語ランキング

次は、paizaの求人票にメイン言語として掲載されている言語の多さのランキングです。

paizaの求人票は、このように開発環境として掲載を表示しています。大きく表示されているのが業務において最もメインで使用する言語、その他の小さく表示されているのは部分的に使用することがあるサブ言語です。
f:id:paiza:20160427165824p:plain

この求人票におけるメイン言語として多く掲載されている順にランキングを作ってみました。

f:id:paiza:20160427170538p:plain

  1. PHP 29.4%
  2. Java 19.7%
  3. Ruby 15.2%
  4. Objective-C 7.3%
  5. C# 6.5%
  6. Python 5.7%
  7. JavaScript 4.8%
  8. C++ 3.9%
  9. Swift 2.5%
  10. Scala 1.6%

求人票記載のメイン言語としては、PHPJavaでほぼ半分を占める割合になっています。また、Rubyも希望言語と同様に採用企業側にも人気の高い言語です。

こちらはあくまで業務でメインとなる言語の集計ですので、希望や経験言語に比べるとJavaScriptの順位は低くなっています。JavaScriptはメインというよりサブで使用する言語として記載されることが多いですね。

■習得したい言語ランキング

では次に、リクルートテクノロジーズが今年発表をしたITエンジニアが「2016年に習得したいプログラミング言語」ランキングを見てみましょう。

これはアンケート対象となったITエンジニアが「2016年に最も習得したいプログラミング言語」として選択した言語のランキングになります。

f:id:paiza:20160428171737p:plain

  1. Java 20.4%
  2. C# 7.2%
  3. Javascript 6.8%
  4. PHP 6.2%
  5. Swift 6.2%
  6. C++ 5.7%
  7. Ruby 5.7%
  8. VBA 4.9%
  9. Python 4.3%
  10. Visual Basic 4.2%

「習得したい言語」というのは「今後使いたい希望言語」に近いかもしれません。個人的にはRubyが意外と低いな…と思いますが、paizaに登録しているエンジニアの方々は、Web系の開発を志望されている方が多いので、その辺で差異があるかもしれません。

また、習得したい言語にJavaを選んだ人の声としては「大概の現場で使っているから」「ある程度知っているがもっとできるようになりたい」など、シェアが高く現在の業務に直結していることがうかがえました。

リクルートテクノロジーズ、IT エンジニア 529 名にアンケート 「2016 年に習得したいプログラミング言語」ランキング発表! “あのプログラミング言語”をいま学ぶべき理由とは?

■TIOBEプログラミング言語ランキング

最後は、オランダのTIOBE Softwareが発表している「TIOBE Index for April 2016」のランキングです。

TIOBE IndexはGoogle、Yahoo!、WikipediaAmazonYouTube等の検索クエリ数をベースとして独自のアルゴリズムで指標化しています。

f:id:paiza:20160506095327p:plain

Apr-16 Apr-15 Change Programming Language Ratings Change
1 1 Java 20.846% +4.80%
2 2 C 13.905% -1.84%
3 3 C++ 5.918% -1.04%
4 5 C# 3.796% -1.15%
5 8 Python 3.330% 0.64%
6 7 PHP 2.994% -0.02%
7 6 JavaScript 2.566% -0.73%
8 12 Perl 2.524% +1.18%
9 18 Ruby 2.345% +1.28%
10 10 Visual Basic .NET 2.273% +0.15%
11 11 Delphi/Object Pascal 2.214% +0.75%
12 29 Assembly language 2.193% +1.54%
13 4 Objective-C 1.711% -4.18%
14 9 Visual Basic 1.607% -0.59%
15 24 Swift 1.478% +0.60%
16 14 MATLAB 1.344% +0.08%
17 17 PL/SQL 1.314% +0.20%
18 19 R 1.266% +0.24%
19 43 Groovy 1.262% +0.97%
20 38 D 1.030% +0.63%

TIOBEのランキングは世界規模でどの言語がどれだけ話題になっているか(よくも悪くも…)というトータル指標であるため、厳密な開発利用率や世界シェアというわけではありませんが、世界的にホットな言語のランキングとなっています。

1~3位までは2015年と変わらずな感じですが、Pythonアセンブリ言語が順位を上げているのは給与ランキング同様、機械学習等が世界的に広がってきているからだと思われます。

RubyやSwiftも順位を大幅に上げていますが、逆にObject-C等は昨年に比べて大幅に順位が下がっています。

日本だとRuby人気が高く、Perlの人気が下がってきているので、その辺りには世界規模で見た際の違いを感じますね。

TIOBE Index | TIOBE - The Software Quality Company

■paizaのSランクスキルチェック問題の文字数・実行時間ランキング

今度は視点を変えて、paizaプログラミングスキルチェック問題の一つ、「S007:データヒストグラム」という問題をピックアップして、満点を獲得している回答コードの文字数と、問題提出にかかった平均時間をランキングにしてみました。

paizaの一問をピックアップなので偏りはあるかもしれませんが、一つの問題におけるコードや回答時間の長さを集計することで、各人気言語の使用感についてを見てみたいと思います。

ちなみにこの問題の受験者全員の平均は以下のようになっています。
f:id:paiza:20160427173335p:plain

◆回答コードの平均文字数

f:id:paiza:20160427173230p:plain

  1. Ruby 1208.56 文字
  2. Python3 1209.92 文字
  3. Python2 1228.15 文字
  4. C 1533.22 文字
  5. Perl 1670.94 文字
  6. C++ 1809.08 文字
  7. PHP 1873.21 文字
  8. Java 2744.93 文字
  9. C# 3347.25 文字

以前、paizaでRuby縛りのプロコン(※問題自体はRuby以外でも挑戦していただけます)を開催したときにも感じましたが、やはりRubyPythonは、他の言語と比べても簡潔に書くことができ、コードを短くできる傾向にあるので「コードが書きやすい言語がいい」「綺麗なコードを書きたい」といった方にも人気があります。

反面、JavaC#は業務での汎用性や実用性は高いですが、命令文が長くなってしまいがちなため、文字数が多くなる傾向にあるようです。

ちなみにRubyプロコンの問題は今でも解くことができ、誰でも何度でも挑戦できますのでぜひ一度やってみてくださいね!(Ruby以外の言語でも回答・採点できますよ!)
paiza.jp

◆平均回答時間

f:id:paiza:20160427174023p:plain

  1. C++ 47.22 分
  2. C 54.31 分
  3. Python2 60.58 分
  4. Python3 62.58 分
  5. Ruby 66.41 分
  6. Java 68.42 分
  7. C# 70.20 分
  8. Perl 71.13 分
  9. PHP 71.41 分

平均回答時間が短いC++は、プログラミング問題を解くのに適したアルゴリズム系のライブラリが充実していること、競技プログラミング用の関数テンプレートを持っている人も多いことなどから回答時間が短くなっているようです。

また、C++C言語は処理速度も早いので、こうした制限時間内に問題を解かなければならない場合等には好んで選択される傾向があります。(※paizaのプログラミングスキルチェックの問題は言語の実行速度の差は基本的に問われません。高ランク問題はアルゴリズムを理解して使う事が出来ればどの言語でもクリアする事が可能です。)

■まとめ

いくつかの視点で、様々なプログラミング言語におけるランキングを見てきましたがいかがでしょうか。

全体的にJavaが強いこと、またJavaScriptはメインでないにしても広く使われているので多くの業務で多少の知識が必要とされること、日本でRubyPython人気が高まっていることなどがうかがえると思います。

今後はSwiftのオープンソース化に伴ってiOSアプリ開発もより盛り上がっていくと思いますので、個人的にはSwiftの開発シェアがどこまで広まっていくかに注目したいところです。

プログラミング言語の今後の学習や転職活動時の参考になればと思います。


【関連リンク】
プログラマー年収ランキング2016!言語別、第1位はPythonの651万円 | みんなのスタンバイ
リクルートテクノロジーズ、IT エンジニア 529 名にアンケート 「2016 年に習得したいプログラミング言語」ランキング発表! “あのプログラミング言語”をいま学ぶべき理由とは?
TIOBE Index | TIOBE - The Software Quality Company

■paizaについて

f:id:paiza:20150730172136p:plain
paizaでは、プログラミングスキルチェック問題(9言語に対応)を多数ご用意いたしております。上記ランキングにあるような多数の言語に対応しておりますので、「プログラミング問題を解いてみたい」「自分のスキルを試してみたい」という方にもピッタリです!

paizaでプログラミング問題を解くと、結果によりS・A・B・C・D・Eの6段階で自分のスキルのランクが分かります。問題はレベルごとに分かれており、初心者から上級者の方まで挑戦していただけますので、自分のプログラミングスキルを客観的に知りたいという方は是非チャレンジしてみてください!!

プログラミング問題による学習コンテンツ(paiza Learning)もございますので、「まったくのプログラミング未経験者なのでプログラミング学習から始めたいな」という方もぜひご利用ください。

さらに、paizaが運営する無料オンラインプログラミング実行環境サービス「paiza.IO (パイザ・アイオー)では、多数の言語におけるプログラミングが面倒な環境構築なしに無料でできますのでぜひご利用ください!




paizaではITエンジニアとしてのスキルレベル測定(9言語に対応)や、プログラミング問題による学習コンテンツ(paiza Learning)を提供(こちらは21言語に対応)しています。テストの結果によりS,A,B,C,D,Eの6段階でランクが分かります。自分のプログラミングスキルを客観的に知りたいという方は是非チャレンジしてみてください。

http://paiza.jp

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編