クリエイティブ業界のお仕事情報ならCREATIVE JOB(クリエイティブジョブ)|求人・転職情報掲載

CREATIVE JOB

powered by CREATIVE VILLAGE

【初心者向け】プログラミング言語の選び方 – 様々な種類の言語を一覧で紹介します

2019/05/07

プログラミング言語は現在、JavaやPHP、C++、JavaScriptなどのメジャーなものから、日本語プログラミング言語ひまわりなどのマイナーなものまで、全世界で数百種類の言語が存在します。

どの言語を選ぶかは目的によって様々ですが、今回は「求人を中心にした需要」という視点と、「何が作れるか」という2つの視点からプログラミング言語を紹介していきます。

言語によって将来性や需要、難易度も異なるため、最初に学習する言語を選ぶ時、何を軸に選択するかの参考になれば幸いです。

需要で選ぶプログラミング言語

まずはプログラミング言語の需要について考えてみたいと思います。ここでは大きく「求人の多さ」「平均年収の高さ」「シェアの高さ」の3つの観点から見ていきたいと思います。

求人の多さ

まずは大手求人サイトのデータを元に比較してみたいと思います。今回は大手3社より実際に検索した結果の求人数トップ10のデータを使用します。

参照元:リクナビ(https://next.rikunabi.com/)2019年4月現在

参照元:Indeed(https://jp.indeed.com/)2019年4月現在

参照元:doda(https://doda.jp/)2019年4月現在

求人の多さはすなわち言語の需要の大きさであり、市場規模の大きさともいえます。Webから基幹システム、ゲーム、スマホアプリまで様々な分野で開発言語として採用されているJavaは、どの求人サイトでも需要が多く、突出しています。純粋に求人需要と市場規模の大きさだけで選択するのであれば、Javaは安定した言語といえます。

続いてWeb開発に欠かせないPHPも根強い人気を持ち、Javaに続く求人数を保っています。PHPは世界トップシェアのCMSであるWordPressなどでも使われており、多くのウェブサイトに採用されているため、今後も需要は安定しているといえるでしょう。

最近AI開発で脚光を浴びているPython、Webアプリ開発で高い人気を持つフレームワークRuby on Railsも、急激な市場成長にエンジニアの数が追いつかないため、需要が伸びつつあります。またサーバーサイド開発環境の充実によってWeb開発全般に活用されるようになったJavaScript、基幹システムやアプリ開発、高速処理が必要なWeb開発で人気のあるC#、C++を始めとしたC言語系も求人数は安定しています。
逆にSwiftやGO、Kotlinといった新しい言語はまだ市場の規模が小さく、求人数も二桁のものが多いため、求人需要が大きいとはいえません。

平均年収の高さ

求人件数と平均年収は、必ずしも正比例するとは限りません。求人件数が少なくても、市場の需要にエンジニアの供給が追いついていない言語や習得が難しい言語は、平均して年収が高くなる傾向があります。

株式会社ビズリーチが運営している求人検索エンジン「スタンバイ」で公開されている「プログラミング言語別年収ランキング2018」によると、2018年でもっとも平均年収が大きかったのはGoogleが設計したGO言語で、平均は600万円(最大提示年収1600万円)でした。
参照元:ビズリーチ(https://www.bizreach.co.jp/pressroom/pressrelease/2018/0807.html

なおおなじくJavaプラットフォーム上で開発できるScalaも平均600万円(最大提示年収1300万円)、3位がAI開発で広く使用されているPythonで、平均575.1万円(最大提示年収は1499万円)でした。

言語
平均年収(万円)
最大提示年収(万円)
求人件数
GO
600
1,600
2,202
Scala
600
1,300
1,489
Python
575.1
1,499
9,344
Kotlin
575
1,200
961
TypeScript
575
1,200
667
R
574.8
1,000
220
Ruby
550
1,200
11,676
Swift
550
1,200
3,353
Perl
525
1,200
4,509
C
525
1,000
9,347

参照元:求人検索エンジン「スタンバイ」調べ

求人件数ではGOの2202件に対し、Pythonは9344件と圧倒的な求人需要を持っています。Pythonに関しては、昨今のAIブームもあって需要は多いが供給が足りていない可能性があります。一方GOやScalaに関しては、純粋に需要に対して共有が足りていない、といえるかもしれません。

シェアの高さ

次にエンジニアが学習、使用している言語のシェアを見ていきましょう。
今回はスタックオーバーフローより2018年の集計結果を参考に見ていきたいと思います。
参照元:スタックオーバーフロー(https://insights.stackoverflow.com/survey/2018#most-popular-technologies

プログラミング言語ではないですが、Web開発に欠かせないHTML、CSS、JavaScriptやSQLなどを含めると、シェアは以下の通りです。

参照元:スタックオーバーフロー

JavaScript

Webコンテンツの様々な部分で活用されるほか、バックサイドでも使用され、幅広い開発分野で活用されているため、高いシェア率を持っています。汎用性の高さがそのままシェアにもつながっています。

HTML

HTMLはHyperText Markup Languageの名の通り、本来マークアップ言語として開発されていましたが、HTML5の登場で高度な処理に対応したAPIを利用できるようになり、HTML4以前と比較するとより高度な機能を持ったWebアプリを開発、構築することができるようになりました。

CSS

Webサイトを装飾するだけでなく、JavaScriptとHTML5と組み合わせることで、動的なWebアプリを構築でるスタイルシート言語です。HTMLと合わせてWebブラウザでの表示の際、事実上必須となるためこちらも高いシェアになっています。

SQL

RDBMS(関係データベース管理システム)において、データの操作や定義を行うデータベース言語です。RDBMSには様々な派生があり、CMSとして有名なWordPressやMovable TypeはMySQLを使用しています。SQLにはいろいろなものがありますが、DBを扱ううえで使う場合が多いため高いシェアとなっています。

Java

IT企業などで多く使われる傾向にあり、特に大規模システムにおける大きな需要と市場を持つオブジェクト指向言語です。Androidの開発でも使用するため高いシェアとなっているようです。

Bash/Shell

Unixのコマンド言語です。Unix上で様々な処理をするために使用します。開発に使用するサーバーを扱う際に使う頻度が高いものになります。

Python

汎用性が高く、人気の言語ですが、最近では特に機械学習やディープラーニングなどで脚光を浴びています。

C#

C言語系列のオブジェクト指向言語です。WebアプリからWindowsアプリまで幅広く開発できます。最近ではゲーム開発のために使うフレームワークUnityなどでも使われているため、高い順位となっています。

PHP

Webアプリ開発ではトップシェアともいえる汎用言語で、主にスクリプト言語として活用されることが多いです。メジャーなプロダクトにWordPressなどもあり、いまだに高い順位を維持しています。

C++

C言語系列のオブジェクト指向言語で、大規模システム開発に活用されています。


世界的に見るとやはり需要に対して習得者が増えるため、Webアプリに寄りがちなのは否めませんが、一方JavaやC#といったアプリでも使える言語、PythonなどのAI系で使われることが多い言語なども上がってきているのが特徴的です。

やりたいことから選ぶプログラミング言語

ここまでは全体的な立ち位置からプログラミング言語を紹介してきました。ただ実際言語を選択する際もっとも重要なのは「何を作るか」ではないでしょうか。
ここからは「何が作れるか」という視点でプログラミング言語を紹介していきたいと思います。

スマホアプリを作る

スマホアプリを作る場合、ベースになるOSによって言語が異なります。順番に紹介します。

Java、Kotlin

AndroidOS用のアプリを開発する時の定番はJava、さらに近年はKotlinというJavaベースの専用言語が開発されました。スマホの普及に合わせて需要は今後ますます拡大するため、JavaとKotlinはAndroid用アプリ開発では必修の言語といえるでしょう。

アプリ作成に使えるサンプルソースも多く、参考になる入門書籍やWebサイトが多数あるため、簡単なアプリ作成から始めるには最適な言語ともいえます。
EclipseとよばれるIBMが開発したIDE(統合開発環境)を使用して開発できるのが特徴です。

Swift

iOS、MacOSを始めとするApple製品で使用できるアプリを作成するための言語です。コンパイラ言語ですが、インタプリンタとしてスクリプトを実行することもできます。
Appleが開発した統合開発環境Xcodeを使用して開発するため、WindowsOS上では開発できません。

もともとApple製OS用のアプリ開発に用いられていたObjective-CやC++に代わって開発された言語であり、まだ登場したばかりの新しい言語でもあります。2019年3月にはSwift5が発表され、Swiftのライブラリが今後すべてのMacOS、tvOS、watchOSのバージョンに含まれることになりました。これにより、以前に比べてアプリのビルドが容易になり、アプリサイズも縮小されることになりました。

Webサイトを作る

PHP

PHPはWebで動的なコンテンツを作成する言語としては、現在もっともメジャーな言語です。DBとの連携能力が強く、スクリプト言語として扱いやすく高速なため、多くの動的コンテンツで使用されています。
CMSとして世界シェア60%以上を占めるともいわれるWordPressもこの言語で記述されています。
ほとんどのレンタルサーバーに標準でインストールされており、実行環境の準備に手間がかからない点も便利な言語です。

様々なフレームワークがあり、代表的なものにはRuby on Railsの概念を多く取り入れたCakePHP、Githubでも高い人気を持つLaravel などがあります。

Ruby

開発当時大きなシェアを持っていたPerlに対抗して開発され、パール(真珠)に対してRuby(ルビー)と名付けられた日本産の言語です。最新のマニュアルや開発情報などすべて英語と同時に日本語でリリースされるため、日本人にとっては多くの言語の中でも情報を取得し、また習得しやすい言語の一つです。

登場当初はPerl全盛からPHPへの過渡期にありシェアの伸びは大きいとはいえませんでしたが、現在はWeb開発のシーンでRuby on Railsの需要が大きく拡大しています。可読性を重視した構文構造になっており、すべてのデータ型がオブジェクトになっている純粋なオブジェクト指向言語であることが特徴です。楽しく学び、楽しく使うことを目的とした実用性の高い言語でもあります。

JavaScript

Webアプリ開発において避けては通れない言語です。登場当初はHTMLで記述されたWebサイト上に簡単な動的表現をする程度にとどまっていましたが、現在はサーバーサイドJavaScript実行環境や各種のライブラリが充実したことにより、Web開発全般で活用されています。

Facebookが開発したフレームワークReact Nativeのように、モバイルアプリ開発も可能です。
HTML、CSSと組み合わせることにより、よりインタラクティブなWebアプリが開発できるため、Webアプリ開発をするためには必須ともいえます。

デスクトップアプリを作る

C#

Windows向けのデスクトップアプリの開発言語としては鉄板のメジャーな言語です。
.NET Framework上で動き、メモリ管理が得意な言語でもあります。そのため、大きめのアプリを開発するのにも活用されています。またWebアプリの開発でも高速性を活かして使用されています。

最近モバイルやブラウザのゲームアプリ開発で人気が上昇しているUnityは、C++をベースにエンジンが記述され、Unityscript(JavaScript)とC#、Booの3つのプログラミング言語に対応しているクロスプラットフォームゲームエンジンです。

AI/機械学習

近年急激に市場が拡大しているAI開発・機械学習のプログラムを作るのであれば、PythonまたはRの二択になります。他の言語でも作成はできますが、業務レベルでの実用性ではライブラリの充実度を含め、この2つの言語に遠く及びません。

Python

AIといえばPythonといえるほど、ディープラーニングの分野で脚光を浴びている言語です。汎用プログラミング言語として開発され、コードの高い可読性と書き安さが特徴です。また本体は非常に小さく、様々なライブラリに対応することで豊富で膨大なツール群を抱え、目的に合わせてユーザーが環境と機能を拡張していくことができます。

Pythonは多くのOSとハードウェアに対応しており、クロスプラットフォーム開発にも向いています。また、オブジェクト指向、命令型、手続き型、関数型などの複数の形式でプログラムを記述することができます。
開発当初からデータサイエンスや科学技術コンピューティングに用いるよう開発されているため、その点がディープラーニングの要件にマッチしたことにより、PythonはAI開発と機械学習で活用されるようになりました。

R言語

データ解析・統計プログラミングとして開発された言語であり、学術や研究の分野で活用されていました。設計開発の時点から統計解析言語として作られているため、データの分析や統計の解析に関して特化しており、他の言語と比較しても群を抜いて優秀な言語といえます。

R言語もPythonと比較しても劣らない拡張機能やライブラリが充実しています。RStudioとよばれるIDEがあるため、導入のハードルが低く、機械学習向けパッケージを導入することで容易に機械学習環境を整えることができます。

おまけ:難易度で選ぶ

習得難易度の高い言語はどうしてもある程度のレベルに到達する前に挫折しそうになるものです。そこで、今回は「おまけ」として筆者の主観で難易度をリスト化してみました。

言語
難易度(筆者の主観)
備考
PHP
テキストエディタでも作業ができ、比較的容易にある程度の開発ができますが、DBを活用する場合SQLの知識も必要です。
Ruby
テキストエディタで開発が可能で可読性が高く、日本語のヘルプが充実しているため、習得までは比較的容易です。
JavaScript
簡単な記述はすぐに習得できますが、サーバーサイド開発まで踏み込むと習得が急激に難しくなります。
GO
低~中
シンプルな構造を持っており、プログラミング入門者にうってつけの言語です。
Java
ポピュラーな言語でサンプルコードも多くEclipseのようなIDEもありますが、業務レベルでの習得難易度はかなり高めです。
Swift
開発環境はMacOS上に限られるため、ハードウェアの面で制約があります。
Scala
JavaVM上で動作するハイブリッド言語なので、完全な初心者には少しハードルが高めです。
Python
中~高
可読性の高いコードとサンプルが多いものの、ディープラーニングのための統計処理には言語以外の知識も必要になります。
C#
中~高
C言語系は一般的に業務レベルでの習得が難しく、C#も例外ではありません。
R言語
統計プログラミング言語のため、習得の難易度は若干高めです。

言語の難易度は人によって大きく変わります。あくまでこれは一通りさわってきた筆者の体感ということで参考になれば幸いです。

勉強するには

では実際に、言語を学習する時に、どんな方法があるのでしょうか。何をどのように学びたいのか、どれくらいの熟練度を目指したいのかによっても、方法は大きく異なりますが、ここでは大きく、書籍、ウェブ、スクールの3つに分けて解説します。

書籍で学ぶ

入門からある程度の応用、熟練者向けの技術書まで様々な書籍があります。まったくプログラミング経験がない人が初めて言語に触れる場合、環境構築から言語の構造や考え方、該当の言語を取り巻く環境や需要の解説、初歩的なプログラムコードのサンプル、応用まで体系が一本にまとまっているため、1冊入門書を購入して始めるのが良いでしょう。
特にオライリー社の「はじめての~」シリーズはゼロから学べ、網羅的に書かれているためおすすめです。

ウェブで学ぶ

オンラインにはプログラミング言語によって、言語の公式サイトを始めとして様々な情報サイトがあります。基本的に無料で公開されているものがほとんどで、Software Development Kit(SDK=ソフトウェア開発キット)も配布されているため、まずは言語に触れてみたいという人はオンラインの初心者向け入門サイトを探してみるのが良いでしょう。

サンプルになるソースコードを公開しているサイトも多く、ソースコード共有サイトともいえるGithubなども活用すると中級以上のスキルを身につけることができます。
ただし、必要な情報を検索する力だけでなく、より高度な情報を調べる場合は英語力が必要になる場合があります。

スクールに通う

お金をかけて一定の期間で一気に習得するなら、プログラミングスクールに通うのも手軽でおすすめです。
現在はオンラインスクールが多く、TechAcademyやCodecamp、TECH::CAMP、ドットインストール、Progate、Paizaなど様々な特徴のあるスクールが展開しています。

言語によってはクラウド上に開発環境を持つスクールもあり、SDKの導入や開発環境の下準備が不要ですぐにコードに触れることができます。また、動画やチュートリアルが用意されているスクールも多く、項目に沿って学ぶことで、短時間で効率的に言語を習得することができます。
スクールによっては入門向けの講座は無償で公開されていることもあるため、目的や自分の技術のレベルに合わせてスクールを選ぶ時に、いろいろと試すことができます。

まずは初めてみよう!

どの言語を選択するのか、選び方は様々です。言語によって得意な開発の分野や求人需要も異なり、関連する言語の系統も大きく変わります。

需要の大きい言語を学んで収入アップやキャリアチェンジを目指すのか、作りたいものがあるから言語を選ぶのか、自分自身の目標をまずはどこに置くかが学習する言語を選ぶ大切なポイントといえます。

プログラミング言語を一つ習得すると次の習得は格段に楽になるため、まずは一つ初めてみることが大切です。この記事を参考に是非、最初の言語を始めてみてください。

関連記事

Ruby入門 – 初心者に向けて開発環境やサンプルの解説をします

【サンプル有】Python入門 – 初心者向けに環境設定・文法解説・サンプルまで徹底解説します

【初心者向け】プログラミング言語の選び方 – 様々な種類の言語を一覧で紹介します


新着求人

新着求人一覧
LINE@ メールマガジン