2020年12月06日
【初心者向け】プログラミング言語の選び方は?
こんにちはjamgamです。
プログラミング言語は現在、JavaやPHP、C++、JavaScriptなどのメジャーなものから、日本語プログラミング言語ひまわりなどのマイナーなものまで、全世界で数百種類の言語が存在します。
どの言語を選ぶかは目的によって様々ですが、今回は「求人を中心にした需要」という視点と、「何が作れるか」という2つの視点からプログラミング言語を紹介していきます。
言語によって将来性や需要、難易度も異なるため、最初に学習する言語を選ぶ時、何を軸に選択するかの参考になれば幸いです。
【需要で選ぶプログラミング言語】
まずはプログラミング言語の需要について考えてみたいと思います。ここでは大きく「求人の多さ」「平均年収の高さ」「シェアの高さ」の3つの観点から見ていきたいと思います。
求人の多さ
まずは大手求人サイトのデータを元に比較してみたいと思います。今回は大手3社より実際に検索した結果の求人数トップ10のデータを使用します。
求人の多さはすなわち言語の需要の大きさであり、市場規模の大きさともいえます。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万円)でした。
なおおなじくJavaプラットフォーム上で開発できるScalaも平均600万円(最大提示年収1300万円)、3位がAI開発で広く使用されているPythonで、平均575.1万円(最大提示年収は1499万円)でした。
【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があるため、導入のハードルが低く、機械学習向けパッケージを導入することで容易に機械学習環境を整えることができます。
【あなたがもしプログラミングを学びたいなら】
プログラミングについてお話しする前にプログラミングを学びたい方へおすすめのスクールをご紹介いたします。
・4ヶ月で最前線で活躍するwebエンジニアへ【CodeCampGATE】
・14日間無料体験あり!【テックパートナーズカレッジ】
・業界最安値のプログラミングスクール|SkillHacks(スキルハックス)
・今すぐ無料説明会を予約!月額9800円で通い放題のプログラミングスクール【Freeks】
・自宅にいながら本格的プログラミング学習|Tech Kids Online Coaching
・本気のプログラミングスクール【ウェブカツ】
・自走できるAI人材になるための6ヶ月長期コース【キカガク】
・受講者満足度90%以上のプログラミングスクール【DMM WEBCAMP】
・【継続率9割】長く活躍するならフューチャリズム
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10389604
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック