【記事の信頼性】
京大卒の現役ITエンジニアである筆者が、オススメのプログラミング言語を目的別にわかりやすく解説しています。
筆者は、様々なプログラミング言語を扱えるためしっかりと比較した説明をしています。
こんな悩みを解決する記事です。
プログラミング言語の選び方のベストなアプローチは「作りたいものを決める」です。
目的別でおすすめのプログラミング言語を紹介した後、プログラミング言語の人気ランキングとともに学習難易度や将来性について説明していきます。
プログラミング言語の決め方
目的で決めよう
「何を自分が作りたいのか」「なぜプログラミングを学びたいのか」が明確になれば、学ぶべきプログラミング言語は自動的に決まります。
特に、自分に明確な作りたいものがあるとプログラミング言語を学ぶモチベーションを維持でき、途中で飽きることなく楽しく身に着けることができるので必須となります。
そこで、まずは目的となるプロダクト別におすすめのプログラミング言語をご紹介していきます。
Webサイト
Webサイトとは、情報が時刻や人によって変化しないサイトのことを指します。
具体的にはブログですね。ブログは基本的にいつ・誰が見ても同じ情報が載っていると思いますが、これがまさにWebサイトです。
Webサイトに必要なプログラミング言語は以下になります。
必要なプログラミング言語
・HTML:Webサイトの骨組みを作る
・CSS:Webサイトの装飾
(・Javascript:Webサイトに動きをつける)
(・PHP:データベースを使用する)
プログラミングを始めていない人でも聞いたことがあるプログラミング言語もあるかと思います。それくらい有名ですね。
HTMLで必要な要素・骨組みを記述して、CSSで色や配置など装飾を施していきます。
そのため、プログラミングスキルをつけるのにイメージも湧きやすく、サイトの装飾なども楽しいので勉強しやすいと思います!
HTMLとCSSだけで十分にWebサイトを作成することができます。JavascriptやPHPは動きをつけてユーザが使いやすく、興味を引かせるためのものなので必須ではありません。
Webサイトを作ってみたい人は多くいると思いますので、まずは圧倒的人気の2冊の参考書を購入するところから初めて見るといいと思います。
Webアプリ
Webアプリとは、Youtubeやお天気アプリといったWebの技術を使用して動的に動作するアプリケーションのことです。難しく考える必要はありませんがWebサイトと比べると難易度は上がります。
なぜならWebサイトが作れるようになってからWebアプリを作成するのが普通だからです。ですので、HTML, CSS, JavaScriptが必須となります。
また、Webアプリを作成する3大フレームワークがあり、どれか1つを習得することが必要となります。
3大フレームワーク
・Rails :Rubyで記述
・Laravel:PHPで記述
・Django:Pythonで記述
Webアプリを作成するためのロードマップを書いた記事があるので参考にしてみてください。
スマートフォンアプリ
「スマートフォンアプリの開発と聞くと難しそう。。。」と感じてしまうかもしれませんが、実はとても簡単に開発できてしまうんです!
AndroidやiOSのアプリ両方とも、「Android Studio」や「Xcode」という統合開発環境 (IDE*) で作れてしまいます。(※ IDEとは簡単にプログラミング言語が書けるように機能がまとめられた便利な開発環境です)
IDEは、インターネットから無料ダウンロードでき、すぐに開発を始めることができます。
また、どちらのIDEもシミュレータが入っているので、実機がなくとも動作を確認することができます。もちろん、実機にアプリをインストールすることも可能です。
まずはメモ帳アプリや電卓アプリといった簡単な機能のアプリから作り始めてみてはいかがでしょうか?
これらのアプリは3日もあれば作れてしまいます!大学生にはとてもおすすめです。
下で詳しくみていきましょう!!!
(おまけ)自作アプリが完成したらストアで公開してみてはいかがでしょうか?それぞれ所定の手続きを踏むことで誰でもアプリを公開することができます。
アプリの公開を目標に開発を進めていくのも良いですね。
iOSアプリ
開発に必要なプログラミング言語:Swift
MacとiPhoneをお持ちの方は是非iOSアプリ開発にチャレンジしてみましょう!
開発にはApp Storeから無料でダウンロードできるXcodeを使用します。
Xcodeは上の画像のようにiPhoneの画面を目に見える形で作っていくことができます。
とても操作がしやすく、Swiftが初めての人はもちろん、プログラミングスキルがない初めての人でも簡単にコードを書いていくことができます。
今ではプログラミングスキルをオンラインで身に着けることができます。
Udemyというオンラインサービスはとてもプログラミングスキルをつけたい方にとてもオススメです。
みんなのiOS講座 ゼロからSwiftで学ぶiPhoneアプリ開発の基礎
Bigqueryで使うSQLを体系的に学習し、この処理の最適な方法は何だろうと考えられるようになります。Udemyのセール中に受講してみましょう。
Swiftの背景(必ずしも読む必要なないです)
iOSアプリはもともとObjective-CというApple社が開発した言語で作られていました。
Objective-Cはとても良い言語ですが、癖が強い部分があり初心者にはとっつきにくい面もありました。
SwiftはそんなObjective-Cの良い面だけを残してモダンな機能を加えた非常に優れた静的型付け言語*です。
(※プログラミング言語は、動的型付けと静的型付けの2つのグループに分かれます。より詳しく知りたい方は調べることをおすすめします)
SwiftはNull安全といって、「空の値の参照実行時に発生しうるエラーを未然に防ぐ仕組み」が組み込まれているので、原因不明のバグに悩ませる時間を大きく削減してくれます。
他にも、従来のプログラミング言語によって起こっていたバグを未然に回避できるように作られています。すごい!
Swiftはコンパイル型言語でありながら対話実行にも対応しています。
PlaygroundsというXcodeに付属するエディタを利用することで、プログラムの動作を簡単に確認することができます。(そしてこのエディタはなんとiPadアプリとしてもリリースされています!)
Swiftはとても美しい言語なので、ぜひ一度学んでみてください!
Androidアプリ
開発に必要なプログラミング言語:Kotlin(またはJava)
Android端末をお持ち方はAndroidアプリ開発がおすすめです。
AndroidはiOSと違って、WindowsとMac両方で開発することが可能なのが特徴です。
開発には無料でダウンロードできるAndroid StudioというIDE*を使用します。(※ IDEとは簡単にプログラミング言語が書けるように機能がまとめられた便利な開発環境です)
Android Studioはコード補完*が優秀なので、プログラミングが初めての方にもおすすめです。(※コード補完とは書きたいコードの初めの1、2文字を入力するだけで予測候補を表示してくれる機能です)
今から新しくAndroidアプリを開発するなら是非Kotlinを使用しましょう。
Androidアプリ開発は古くからJavaが使われていましたが、Google I/O 2017にてAndroidの開発言語としてKotlinが正式に加えられました。
Kotlinは2011年に登場した静的型付け言語で、Javaよりも簡潔・安全に記述することができます。
また、KotlinとJavaは相互に呼び出すことができるので、より柔軟なプログラミングが可能となります。
一方で、ウェブ上のリソース量についてはJavaのほうがKotlinよりも多いですが、これは時間が解決する問題でしょう。
是非Kotlinを使って充実したプログラミングライフを送ってみてください!
電子工作
マイコンというICチップなどを用いて電子工作してみるのも楽しいかもしれません。
LEDを光らせ、ロボットを操作したりなど、手で触れたり目で楽しんだり出来るのが特徴です。
開発に必要な言語:Arduino(C言語とC++のサブセット)
詳しくは下のリンクを参考にしてみてください!!
競技プログラミング
競技プログラミングをどこかで耳にしたことがある人はいるかもしれません。
その名の通り、課せられた問題をプログラミングで解決し、その結果の優劣で競い合います。
優劣には、問題処理に要する時間や結果の予測精度など様々な評価する点があり、自分1人でプログラミングスキルを養うのにモチベーションが高まらない場合、他人と競えることが魅力です。
競技プログラミングについては下のページで詳しく説明してます!
おすすめの人気プログラミング言語
初心者におすすめの人気プログラミング言語ランキングを紹介します。
下の表はプログラミング言語ごとに難易度や用途、概要をまとめた表になります。
言語ランキング | 難易度 | 目的・用途 | プログラミング言語の概要 |
Python | 低 | データ分析 AI・機械学習 Webアプリ | 数学的・統計学的な豊富なライブラリ 日本語の参考サイトや情報も多く、独学で習得しやすい |
Ruby | 低 | サーバサイド | webアプリフレームワークのRuby on Railsの記述 |
JavaScript | 低 | フロントエンド | Webサイトに動きをつける言語 サーバーサイドでも活用可能でReactやNodeなど幅人いフレームワークもある |
Java | 中 | 業務システム 組み込みシステム スマホアプリ | Androidアプリ開発のライブラリが豊富 開発環境(IDE)があるので初心者でも簡単に開発が可能 |
Swift | 中 | スマホアプリ(iOS) | iOS向けアプリを作成するプログラミング言語 比較的新しく、参考情報が豊富 |
C# | 中 | Windowsアプリ・ スマホアプリ | WindowsアプリをIDEで簡単に作成できる AndroidやMacOS、iOSのアプリも開発可能 |
PHP | 低 | サーバサイド | 動的なWebサイトやWebアプリを作成できる スクリプト言語なので文法も簡潔でプログラミング初心者にも始めやすい |
GO | 中 | サーバサイド | Googleが開発したプログラミング言語 高速な並列処理を得意とする比較的新しい言語 |
Kotlin | 中 | スマホアプリ | Android開発のため作られ、Javaよりも簡潔に記述できる Javaの資産や参考書を流用できる |
1位:Python
アメリカの文系学生が学ぶべきランキング1位であり、全体のランキングでも1、2位の常連です。「学習のしやすさ」「使いやすさ」「人気さ」で他のプログラミング言語を圧倒しています。
近年では、機械学習やデータ分析の需要が高まっていることもあり、世界的に人気が高まっています。また、エクセルの自動化やWebスクレイピングなど業務効率化でも利用されることも魅力の1つで文系が学ぶべき理由でもありますね。
ビズリーチの調査「プログラミング言語別平均年収ランキング」によると約575万円の第3位となっています。
Pythonの強み・将来性
Pythonは、今後も世界を席巻するであろうAI(人工知能)やIoTの分野で使われる言語です。その他にも以下のことができます。
Pythonのできること
・AI・機械学習などデータサイエンス
・Webアプリ開発
・バックエンド開発
・IoTのシステム開発
AIの分野だけでなく、Webアプリを作りたいと人にもDjangoを利用したPythonが活躍することでしょう。
Pythonの難易度:低
Pythonはスクリプト言語であり簡潔なコードで記述することができ、文法もやさしいため、初心者の方におすすめです。
特に、Pythonはライブラリが豊富で、目的に応じて先人が作った知恵を借りることができます。
エクセルの自動化を最初の目標におくのもいいと思います。書籍を参考にするとすぐにマスターできますよ。
2位:Ruby
Rubyは日本人が開発したスクリプト言語です。
Webアプリ開発といえば「Ruby on Rails」です。効率的に開発でき、スタートアップ企業で採用されることが多いスクリプト言語です。
Rubyで強み・将来性
まず、Webアプリ開発をしたいならRubyを選んでいれば間違い無いです。
有名なサービスである「Twitter」「クックパッド」「食べログ」「Airbnb」などはRubyで開発されています。
その他できることは以下があります。
Rubyのできること
・Webアプリケーション開発
・APIの作成
・スマホアプリ開発
・スクレイピング
Rubyも幅広い開発が可能ですが、AI・機械学習分野には使うことはほぼありません。
スピード感を持ってWebアプリケーション作りを行いたい方にRubyはおすすめです。
Rubyの学習難易度
文法がわかりやすい・少ないコード数で書ける・日本語の参考資料が多いなど、初心者とってはとても始めやすい言語と言えます。
初めからWebエンジニアを目指している人にピッタリのプログラミング言語です。
3位:JavaScript
JavaScriptはWebサイトやWebアプリ開発で使われるスクリプト言語です。
HTMLやCSSとともにリッチなWebページの作成には必須の言語です。
JavaScriptの強み・将来性
JavaScriptはフロントエンドでブラウザベースで動作をしますが、Node.jsといった新しいサーバーサイトで動作する環境も整いつつあります。
できることは以下です。
Javascriptのできること
・Webページに動作をつける
・Webアプリ開発
・ゲーム開発
・スマホアプリ開発
など、JavaScriptもPython同様、汎用性の高い言語として人気です。
JavaScriptの学習難易度
開発環境の構築の面では、ブラウザとテキストエディタがあれば実践的なことができるのでハードルは低いです。
また、すぐにテストができるため動きがわかりやすく、初心者にもおすすめな言語と言えるでしょう。
Googleは、プログラミング初心者向けに「Grasshopper」という学習アプリをリリースしています。このようなサービスを利用すると、楽しみながらプログラミングの学習が進められるでしょう。
4位:Java
JavaはPythonと同じくGoogleの三大言語の1つ。日本で見る求人数では長年トップの座をキープしている人気のあるコンパイラ言語。
大規模システムは、Javaで開発していることが多いです。
また、Androidアプリの開発もJavaで行います。
コンパイラ言語なので、入門の難易度は少し高め。学習コストもかかります。ただし、スキルが身に付けば、求人も豊富なので転職しやすいでしょう。
Javaで強み・将来性
Javaは、ソフトウェアを開発する環境とそれを実行する環境が違っていても動作する、高い汎用性を持った言語です。
できることの一例としては以下のようなものです。
Javaのできること
・業務系システム開発
・Webアプリケーション開発
・Androidアプリ開発
・デスクトップアプリケーション開発
・組み込み系システム開発
・IoTのシステム開発
上記のようにJavaは開発できるものの範囲がとても広い言語と言えるでしょう。
特に安定性が求められる大規模な業務系システムの開発ではよくJavaが使われています。
Androidアプリの開発に目的を絞っている人には、10位で紹介しているKotlinもおすすめです。
Javaの学習難易度
Javaはコンパイラ言語であり、初心者が学習するにあたっては少し難しい言語です。学習コストがかかってしまうのは否めません。
ですが、Javaを習得することで高いプログラミングのスキルを身につけられます。
また、情報が充実しており学習する環境は整っているため、勉強のしやすさはあるでしょう。
5位:Swift
Swiftは2014年にAppleが発表した、iPhoneやiPadなどのApple製品向けの開発が行えるプログラミング言語。
求人数としてはまだ少ない状況ではありますが、新しいイノベーションを起こし続けているApple製品に使われる言語なので、今後更に増えていくと予想されています。
Swiftで強み・将来性
Swiftは先述したようにAppleの製品向けに使われる言語。
iPhoneやiPadの他にも、Apple watchやApple TVアプリを作る際にも使用されています。
できることの一例としては以下のようなものです。
Swiftのできること
・Apple社製品のアプリ開発
・Webアプリケーション開発
・Webサーバー作成
Swiftでは上記で記載したように、Webアプリケーションの開発もできるようになりました。
できることとしては少ないSwiftですが、もしかするとこれからのWeb開発がSwift中心になっていくという可能性も考えられるでしょう。
Swiftの学習難易度
Swiftは読みやすく書きやすい言語です。
そのため難易度としては低めなのですが、なにぶん新しい言語なので、まだそこまで情報が充実していないのも事実です。
年月が経つにつれて難易度がどんどん下がっていくことも考えられます。その結果、初心者でも習得しやすい言語として認識される日がくる予想もできるでしょう。
また、Swiftを学習する際には、エディタ・デバッガ・GUIデザイナーといった機能が搭載されているIDE(統合開発環境)のXcodeを利用しましょう。
XcodeのPlaygroundを利用すると学習も行いやすいです。
6位:C#
C#はマイクロソフトが開発したオブジェクト指向のコンパイラ言語。C言語がベースとなっています。
Windows向けのアプリケーションだけでなく、ゲームやVRの開発に使われていることもあり、求人数は豊富です。
高いシェアを誇るゲーム統合開発環境「Unity」でもC#を利用します。
Googleの「Stadia」、Appleの「Apple Arcade」など、定額制ゲームサービスも始まり、ゲーム業界はますます盛り上がると予想されます。
それに伴い、C#も安定した需要が期待できるでしょう。C#は、ゲーム作りにチャレンジしたい人におすすめの言語です。
C#で強み・将来性
C#でできることとして、おもに以下が挙げられます。
Swiftのできること
・Webアプリケーション開発
・デスクトップアプリケーション開発
・スマホアプリ開発
・VR・MR開発
・ゲーム開発
C#を習得できれば、上記のように幅広い分野に対応できます。
ゲームを作る際は、ゲーム開発のプラットフォームである「Unity」が有名であり、そのUnityで作るゲームの細部にまでこだわるためにC#言語が使われます。
また、そのUnityを用いればVRの開発も可能。ゲームの開発やVR市場に興味のある人はC#を学習することが近道となるでしょう。
C#の学習難易度
C#はC言語がベースとなっているため、習得する難易度は少し高め。
ですが、インターネット上で読める参考記事は豊富なので、学ぶ環境といった点では他の学習しやすい言語と比べても遜色はないでしょう。
7位:PHP
PHPはサーバーサイドのWeb開発に特化したスクリプト言語です。求人数はJavaに次いで2位で、現在でも需要の高い言語です。
コードの記述がわかりやすく、初心者向けの言語として人気が高いです。
一方で、記述しやすい反面、コードに間違いがあっても動いてしまう場合があるので、後々予期してないエラーが現れてしまうこともあり、正しいコードを書く意識を常に持っておきましょう。
また、サーバーサイドに限定されるため、汎用性も低め。それでも、求人数の多さ・資料の豊富さ・学びやすさといった点から十分におすすめできるプログラミング言語です。
PHPで強み・将来性
PHPでできることとしては、おもにWebアプリケーションの開発です。
他にはWebサイトの中のお問合せフォームを導入したり、ログイン機能を作成したり、Webサイトの一部をシステム化することができます。
ブログやWebメディア向けの定番のCMS(コンテンツマネジメントシステム)であるWordPress。
W3Techsによると、WordPressは全世界のWebサイトの1/3を作っているとあります。
そのWordpressはPHPで開発されています。このことからもPHPが使えるエンジニアの需要の高さが伺えるでしょう。
PHPの学習難易度
PHPはネット上に情報が豊富にある上、スクリプト言語ということもあり、初心者の方でも学習しやすい言語です。
8位:Go
6位に選んだGo言語は、Googleが開発したプログラミング言語。安定性の高さと記述のしやすさから世界的に人気が広まりつつあるコンパイラ言語です。
Go言語はコンパイラ言語ですが、記述がとてもシンプルに行えることが特徴。
そのため、Javaなどの他のコンパイラ言語と比べるととても始めやすいです。
求人数こそまだ今の時点では少ないですが、ビズリーチの「プログラミング言語別年収ランキング」によると、600万円で1位を獲得しています。
今後の需要の拡大が期待できる将来性の高い言語と言えるでしょう。
Goで強み・将来性
Go言語はおもにWebサーバーやアプリケーション開発の際によく使われている言語です。
できることの一例としては以下のようなものです。
Goのできること
・Webサーバーの構築
・アプリケーション開発
・コマンドラインインターフェース(CLI)ツールの作成
・PaaS
幅広くできることが多いGo言語は、マルチプラットフォーム向けのWebアプリケーションも作れます。
また、借りてきたサーバー上でシステムの開発やメンテナンスが自由にできるPaaS(Platform as a Service)を作る際にも用いられています。
Goの学習難易度
Goは記述がわかりやすいといった特徴があり、概念そのものを理解するのが難しいとされているオブジェクト指向ではないことから、初心者でも学びやすいと言えます。
比較的新しい言語ですが、ドットインストールなどの学習サイトでも学べるので、始めやすさもあります。
ただし、RubyやJavaScriptよりは少し難易度が高いと位置づけられるでしょう。
9位:Kotlin
Kotlinは、Googleが発表したAndroidでも公式に認められている言語となっています。
Androidアプリの開発ができる言語の核として、これから需要を伸ばしていくと考えられています。
またJavaとの相互利用もできるように考えられているプログラミング言語でもあります。
Javaに比べると求人数はまだまだ少ないですが、上記の通り将来が楽しみな言語と言えるでしょう。
Kotlinの強み・将来性
KotlinではAndroidアプリの開発やWebアプリの開発ができます。
AndroidアプリはJavaで開発することが多かったのですが、Kotlinの需要が増えてきたため、今ではYahoo!やLINEといった大企業もKotlinを使った開発を行っています。
Webアプリも開発できるため、Androidアプリの開発とWebアプリの開発のどちらともをしたいと考えている人には、おすすめの言語と言えるでしょう。
Kotlinの学習難易度
KotlinはJavaを踏襲しており、参考となる教材や情報がまだ少ないため、学習難易度は少し高めなプログラミング言語です。
ですがJavaよりも短いコードで書けるため、その分少しハードルは下がると言えるでしょう
まとめ
いかがだったでしょうか??
プログラミング言語は、作りたい目標から決めることが大切です。
アメリカ人と話したいなら英語だし、中国人なら中国語を勉強するように
あなたが作りたいモノ、目的を意識してプログラミング言語を選んでみてください!!
-
【5選】プログラミングスクールを現役エンジニアが本気で厳選してみた
こんにちは、フルスタックエンジニアのぐぅと申します^ ^ プログラミングは一番再現性が高く、誰もが身につけられるスキルです。「コードが正しければ動く」と言う不変の真理があるだけなので、プログラミング方 ...
続きを見る