初心者の方が、これからプログラミング言語を学ぶにあたって、オススメの言語をまとめてみました。次のような言語がまずはオススメなのですが、理由も追って説明していきます。
オススメのプログラミング言語ランキング
- Python
- JavaScript
- Ruby
- PHP
- Java(Kotlin)
ざっくり、僕がこれまで実務・個人で扱ってきたことがある言語は以下です。実務で使った言語数自体は少ないのですが、結構他の言語も触ってサンプルアプリを作ったことくらいならあるので、広く浅くならある程度理解しています。
これまで実務で使った言語
・PHP
・JavaScript(nuxt.js, vue.js, jQuery)
個人で使ったことがある言語
・Golang(Go言語)
・Scala
・Ruby
・Java(Android)
・Swift
・Objective-C
本業はフリーランスのウェブ開発者ですが、一応、スマホアプリをストアにアップしている程度には、スマホ開発も触ったことがあります。
なので、上記のプログラミング言語はもちろん、それ以外でもある程度は言語の特徴は知っているので、少し解説してみたいと思います。
スポンサードサーチ
ページコンテンツ
日本におけるプログラミング言語の御三家


日本だと、機械学習・AI分野では「Python」ウェブ業界だと「JavaScript」ウェブサービスやウェブシステムなら「Ruby/PHP/(Java)」が御三家だと思います。


こちらは、日経XTECHの記事「プログラミング言語人気ランキング2020、2位に大躍進したあの言語」の引用です。少しC/C++の回答者多すぎな気がしますが、概ね現役エンジニアだったら反論もないリストという感じ。
紹介はしないのですが、C/C++はゲーム開発や組み込み系の開発で使われることが多いですね。僕はウェブ系に絞ったエンジニアなので、今回は少し飛ばさせていただきます。
今回は、実際の人気度と入門のしやすさから1位にPythonを選びました。これは正解でもあるのですが、プログラミング初学者の方にとっては間違いでもあります。(Pythonを使った仕事で使う機械学習や、ウェブ開発の知識は、最先端であるがゆえに初学者の方向けの仕事の量は正直言って少ないです)
仕事の取りやすさという観点だと、Ruby/PHP/Javaが同率1位で、次点がJavaScript。何枚か壁があって4位にPythonという感じです。3位はGo言語とかでしょうか。
一応、そのことはわかった上で、見てみてくださいね。
プログラミング言語 御三家その1「Python」


アメリカの大学や日本の理工系の大学では、5年前くらいまではJavaを教えていたところが多かったそうなのですが、最近ではほとんどPythonのみで授業が進んでいくことも多いとか。
Pythonを使った世界的なウェブアプリケーションは枚挙にいとまがないですね。
Pythonを使ったウェブアプリケーション
- インスタグラム(Django)
- Spotify
- Netflix
- Uber
- Dropbox
- instacart
- lyft
参考:10 Famous Websites Built Using Python
そんな世界的なアプリケーションでも採用されているPythonですが、その魅力は大きく分けて3つあると考えています。
Pythonができるメリット
・プログラム経験が短い人でも、学習コストが低い
・ウェブ開発フレームワークを使って、ウェブ開発もできる
・AI・機械学習分野へ関わる機会が必然と大きくなる
ぶっちゃけますが、初学者の方はいきなりAI・機械学習分野に関わることはまずないので、ここがメリットになることは少ないです。この辺りの分野は、Pythonが一通り書けるようになってからでもOKというか、それでも難しいです。(結構、専門的な知識が必要です)
ただ、「Pythonができることによって、機械学習関連のタスクも任され、結果としてできるようになる」ことは十分あり得るので、そこは「AI・機械学習分野へ関わる機会が必然と大きくなる」としました。
Pythonのメリット1: プログラミング初学者でも、学習コストが低い
Pythonがオススメの一番のメリットは、プログラミング言語としての学習コストの低さです。
全くのプログラミング初心者でも、1週間くらいでテキストを読みつつ、プログラムを書いていけば、調べればある程度まとまったコードを書けるようになります!
サンプルコードとしてはこんな感じですね。わからないことばかりかもですが、なんとなく英単語が見えるので、何をやってそうかは推測しやすいですよね。
#Importing the modules import urllib2 import json screen_name = "wordpress" url = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=" + screen_name data = json.load(urllib2.urlopen(url)) print len(data), "tweets" for tweet in data: print tweet['text']
もっと分かるようになりたい方は、以下の定番本に目を通せばOKです。
↑この辺りの本を1冊買ってみて、一通り説明をみながら手を動かしてみたら、「なんだ、Pythonって言ってもこんな感じなのか」となるハズです。
Pythonからプログラム学習を始めるのは、学習コストも低いのでオススメです!
Pythonのメリット2: ウェブ開発フレームワークを使ったウェブ開発もできる
Pythonなら多くの場合は2つのウェブフレームワークを利用して、webサービス・webシステム開発を行うこともできます。




WEBフレームワークとは?
✔︎ウェブサービス・システムをより簡単に作成するための一連のプログラム
djangoって?
✔︎MVCを採用したフルスタックフレームワーク(これ1つでもOK)
✔︎インスタグラムもdjangoで作成された
Flaskって?
✔︎超軽量フレームワーク(簡単だが、採用するライブラリ選択が難しいかも)
✔︎Pinterestで採用された
MVCって?:モデル・ビュー・コントローラに分けて構築する方法のこと。数多くのウェブアプリケーションで採用されている、一般的なものです。
プログラミング言語 御三家その2「JavaScript」


2020年現在、ウェブのフロントエンド(アプリやウェブサービスで目に見えている部分全てですね)において、JavaScriptの最新のテクノロジーを使わずに開発することは、あり得なくなってきました。
JavaScriptは、最も基本的な使われ方としては「ウェブサービスのフロントエンド領域」がほとんどです。
しかし、最近では(少しオワコン化してきているのですが)JavaScriptのReact.js・ReactNativeというライブラリ・フレームワークを使うことによって、iOSとAndroid向けのクロスプラットフォーム開発なんかも可能です。
また、サーバーサイド開発には非常に高速なnode.jsという有用なライブラリもあり、これからも目が離せない今ホットな技術です。
JavaScriptを利用しているウェブサービス
✔︎ほぼ全て(簡単にいっちゃえば、動きがあるもの全てJavaScriptです)
JavaScriptを学ぶことで何が嬉しいのか?
例えばですが、Twitterのようなウェブサービスを作成することを考えます。Twitterを見るときの機能をざっくり思い浮かべると、下記のような感じですね。
Twitterのタイムラインの処理
1. タイムラインにフォローしている人のツイートが一覧表示される
2. それぞれのツイートに、お気に入り数とRT数が出てくる
3. 上に引っ張ると、新着ツイートが取得できる
これをJavaScriptで実装すると、以下のような実際のTwitterのツイートデータをサーバーから取得するだけで、Twitterに必要な処理を実現することができます。
これを大量にサーバーから受け取って、最新のものを取得して並べたりする処理をやってくれているのがJavaScriptですね。
JavaScriptができると、データを受け取れば、それを画面上に反映させることができる
上記のような理由から、Webフロントエンドと呼ばれる、バックエンド(サーバー)から取得した上記のようなデータを見える形にどんどん落とし込んで行ったり、デザインを作成してUI/UXを作成するまでが「フロントエンドエンジニア」と呼ばれる職種で、JavaScriptを多用する領域となります。
プログラミング言語 御三家その3「Ruby/PHP/(Java)」






この3つは、どちらも日本で絶大な人気・シェアを誇る言語です。Javaに関しては少し古い環境や会社さんが多いのですが、まだまだ現役です。


上記は、IT業界特化で国内最大級の転職エージェントで、そのレバテックが保有する求人データから作成したのが上記の票です。
結果として、Java > PHP > Ruby という順で求人数が分かれていますね。これはおそらくどの転職エージェント・フリーランスエージェントで集計しても、だいたい同じ結果になってくるはずです。
表から読み取れること
1. Ruby/PHP/Javaの求人はとても多い
2. Pythonの求人は少ない
3. JavaScriptの求人は結構多い(おそらくどの職場でも必須だと思われます)
上記の通りです。
まだまだPython自体の求人は少なく、「既に上記したような Ruby/PHP/Javaのバックエンドができて、さらにAWS/GCPといったクラウドもできて、ようやくやらせてもらえるレベル」の仕事という認識でOKです。(人気なだけにPython案件はかなーり難しいので注意してください!)
おそらく、これだけだと「じゃあ、どの言語を選べばいいの?」となるハズ。なので、ざっくりと「Ruby/PHP/Java」の簡単な紹介と、メリット・デメリットをまとめてみたいと思います!(できることはほぼ同じです)
1. プログラミング言語「Ruby」って?
Rubyの一番オススメできるポイントは、なんと言っても「日本人が作者である」ことにつきます。
そのため、わからないことがあれば日本語でも比較的解決がしやすく、JavaScriptのように最新事情がアメリカなど海外のドキュメントを読まないと分からないことに比べると、日本人にとっては一番とっつきやすいプログラミング言語と言えるかもしれません。
また、次で紹介するPHPは、開発フレームワークが多種多様なので、職場によって少しずつ開発手法やアーキテクチャが異なってしまうのですが、Rubyは「Ruby on Rails」というフレームワークで統一されているので、習得すべきことが明確です。
Rubyフレームワーク「Ruby on Rails」(通称:Rails)って?


Webフレームワークは、とても簡単に言えばウェブサービスを簡単に作るための手助けをしてくれる、一連のプログラムのことです。これを使うことで、ゼロから構築すると膨大な時間になってしまうウェブ開発のよくある機能を使い回すことができるため、圧倒的に早くウェブアプリケーションを構築できるようになります。
また、Rubyをオススメできる理由としては、下記の理由があります。
Rubyが初学者の方にオススメな理由
- 比較的ホワイトな労働環境の会社が多い(自社開発・ウェブサービス)
- 一度習得すれば、他のフレームワークに比べて学習曲線を急カーブできる
- 日本人コミュニティだけでなく、初学者コミュニティが活発
上記ですね。僕はPHPから始めたのですが、Rubyから学習を始める初学者の方が、Twitterなどでどんどんつながっているのを見てとてもうらやましくて仕方なかったですorz
まず1つめについては、Ruby on Rails自体が、ブラックな受託開発企業やSIerなどで全く採用実績がないため、ベンチャーであっても大抵の会社が非常にワークライフバランスの取りやすい傾向があるのが魅力的です。
2つめについては、「レールに乗ったらどんどん開発できるが、一度レールを外れると圧倒的な技術力が要求される」とよく開発者から語られるように、よくも悪くもフレームワークに左右されることが多いです。
これが初学者の方だと、学習のしやすさに直結するのですが、長期間コードをメンテしたり機能開発していくうちに、少しずつ限界が見えてきて辛くなるという話はよく聞きますね。
ただ、それらを吹き飛ばすくらい、Rubyの日本人コミュニティや初学者コミュニティは素晴らしいものです。普通なら海外に行かないといけないようなRuby関連のイベントが日本で完結することもあるのは素直に羨ましいですね。
Ruby(Ruby on Rails)で作られたウェブサービス
RubyフレームワークRuby on Railsを作ったウェブアプリ
- Basecamp
- Airbnb
- GitHub
- Shopify
- Groupon
- Goodreads
- Kickstarter
- Hulu
- Slideshare
- Twitch
- Yellow Pages
- Urban Dictionary
- Dribbble
- Crunchbase
- Zendesk
参考:Update: Top 15 famous websites built with Ruby on Rails
プログラミング言語Rubyのフレームワークである、Ruby on Railsを利用すれば、上記のような世界的なウェブサービスが作られた例もあることが分かりました。十分すぎる実績ですね。
✔︎Rubyまとめ:とりあえず、「Ruby/PHP/Java」で選択を迷うようなら、プログラミング言語はRuby、フレームワークはRailsで問題ナシです
2. プログラミング言語「PHP」って?


元々は個人向けホームページで、使い勝手がいいように考案・開発されてきた歴史もあるため、言語自体は非常に柔軟で扱いやすいと言えると思います。実際に、書き方は全てのプログラミング言語の中で見ても、かなり一般的です。(一方で、Rubyは結構書き方が特殊です)
さて、このPHPですが、10年ほど前にユーザー参加型のウェブサイトが発表されてきた「Web 2.0」、さらにその前の個人HPが大量に公開されていた時代までと、ウェブサイトの黎明から発展を作ってきた言語です。
最近では、クラウドにデプロイする「クラウドネイティブ」なアプリケーションにその座を奪われそうですが、PHPは未だに「グルー言語(のり付け言語)」と言って、「ある言語とある言語をつなぎ合わせる」と言った役割を見いだしつつあります。
僕はPHPが好きなので、かなり偏っていますが笑 とりあえず、PHPだと他言語にも移りやすく、「のり付け言語」としての役割は今後も背負っていくでしょうから、まだまだ需要は続いていくでしょう
じゃあPHPがオススメなポイントって何?
RubyとPHPを比べたときに、言語の難易度はほとんど同じくらい、ウェブフレームワークもRuby on Railsとlaravelはほとんど同じような機能を持っており、あまり比較にはならないです。
しかし、仕事に関していうならPHPの方が圧倒的にフリーランス・業務委託の案件が多く、それを支えているのが、WordPress開発のような個人単位のプロジェクトから、受託開発、自社サービスなど多種多様な開発ニーズがあることですね。
PHPができれば、オンラインでも仕事を取ってくることもやりやすいですし、転職・フリーランスエージェントに行ったらおそらくRubyより案件数は多いはずです(一方で、正社員だとRubyの方が未経験でも入りやすいですねー)
PHPを学ぶとできるようになること
- WordPressを使った企業むけ・個人向けウェブサイト開発
- Webフレームワークを使ったサービス・システム開発(バックエンド)
これら2つの選び方としては、スキルをつけて何がなんでもすぐに独立したい方なら業務委託のWordPress開発・Laravelを使った純委任のフリーランスエンジニア。
企業に常駐しつつ、ある程度稼ぎたいならLaravelを扱えるようになって、準委任のフリーランスエンジニアになる方がいいですねー。
正社員でPHPだと、結構SIerとかでシステムエンジニアに割り当てられることも多く、ウェブ業界みたいに「仕事頑張ったらいつの間にか独立!」みたいな感じでもないので、自由を求めるなら「PHPを独学してとりあえず独立してやる!」くらいの方にオススメしたいです
結構、やってみると簡単でオススメではあるのですが、ウェブ系とSIer系が玉石混交という感じで、なかなかIT業界やプログラミング初めての方にPHPからオススメするのは辛いですねー。ただ、独立前提でプログラミング学習をするなら、PHPが絶対に適しています。
▼PHPの学び方などはこちらの記事をどうぞ▼


3. プログラミング言語「Java」って?


一言でいいましょう。Javaはウェブ業界だとレガシー(古い技術)です。そして、厳密な言語仕様(コンパイル型言語)のため、初心者にはかなりとっつきにくいです。
しかし、PHPもそうなのですが、Javaの文法をかなり多くの言語が引き継いでおり、今あるプログラミング言語の基礎を作ったと言っても過言ではない、「古典」のような言語です。そのため、Python/Ruby/PHP/JavaScriptなどの「動的型付け言語」をある程度描けるようになったら、Java/Go言語などの「静的型付け言語」にチャレンジしてみるのもいいでしょう。
「Javaはレガシーで、難しい!」と言いましたが、中級者以上のプログラマであれば、ざっくり進化版Javaである「Kotlin(Android開発でも利用)」や「Scala」と言った優秀な言語を習得するのは選択肢に入るでしょう
Javaを使って動いている組み込み系のシステムや銀行の勘定系システムはまだまだ大量にある状態です。メガバンなどのシステムのみならず、フィンテック系の会社だと、「Scala(Java)」を使う会社は多く、お金周りの厳密な処理が必要な際は、まだまだJavaが必須になっている場面も多く見られますね。
また、KotlinはAndroid開発の標準的な言語です。(元々はJavaのみでした)かなりモダンな言語仕様に進化していて、中級者以上ならぜひチャレンジしてみたい言語の一つですね。
プログラミング言語をまとめてみましたがいかがでしょう


プログラミング言語と単に言っても、多種多様なニーズが存在しています。ぜひ、今回の記事で説明したような各言語ごとの特徴を押さえた上で、選ぶプログラミング言語を決めてみてくださいね!