Dev

超定番5つを紹介!オススメのプログラミング言語を現役エンジニアがまとめてみた

現役エンジニア
現役エンジニア
プログラミング言語ってたくさんあって、どれから手をつけていいのか分からないですよね。やりたいことや興味があることに応じて、どのプログラミング言語がオススメかまとめてみました

初心者の方が、これからプログラミング言語を学ぶにあたって、オススメの言語をまとめてみました。次のような言語がまずはオススメなのですが、理由も追って説明していきます。

オススメのプログラミング言語ランキング

  1. Python
  2. JavaScript
  3. Ruby
  4. PHP
  5. Java(Kotlin)

ざっくり、僕がこれまで実務・個人で扱ってきたことがある言語は以下です。実務で使った言語数自体は少ないのですが、結構他の言語も触ってサンプルアプリを作ったことくらいならあるので、広く浅くならある程度理解しています。

これまで実務で使った言語
・PHP
・JavaScript(nuxt.js, vue.js, jQuery)

個人で使ったことがある言語
・Golang(Go言語)
・Scala
・Ruby
・Java(Android)
・Swift
・Objective-C

本業はフリーランスのウェブ開発者ですが、一応、スマホアプリをストアにアップしている程度には、スマホ開発も触ったことがあります。

なので、上記のプログラミング言語はもちろん、それ以外でもある程度は言語の特徴は知っているので、少し解説してみたいと思います。

スポンサードサーチ

日本におけるプログラミング言語の御三家

僕
日本においてプログラミング言語の定番があります。あまりITに馴染みのない方も知っているPythonもその1つではないでしょうか。僕が独断と偏見で、ポケモンで最初に選ぶ御三家のように、プログラミングと言えばこれ!な3つをチョイスしてみました

日本だと、機械学習・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」

現役エンジニア
現役エンジニア
これからプログラミングを始めるなら、Pythonはまず見ておくべき言語かもしれません。エントリーレベルの仕事こそ少ないのですが、機械学習・AI周りのライブラリの多さは、他のプログラミング言語に大きくアドバンテージを持ちます。一方で、ウェブ開発フレームワークも多種で、Pythonができれば可能性は大きく広がります

アメリカの大学や日本の理工系の大学では、5年前くらいまではJavaを教えていたところが多かったそうなのですが、最近ではほとんどPythonのみで授業が進んでいくことも多いとか。

Pythonを使った世界的なウェブアプリケーションは枚挙にいとまがないですね。

Pythonを使ったウェブアプリケーション

  1. インスタグラム(Django)
  2. Google
  3. Spotify
  4. Netflix
  5. Uber
  6. Dropbox
  7. Pinterest
  8. instacart
  9. lyft
  10. reddit

参考:10 Famous Websites Built Using Python

そんな世界的なアプリケーションでも採用されているPythonですが、その魅力は大きく分けて3つあると考えています。

Pythonができるメリット
・プログラム経験が短い人でも、学習コストが低い
・ウェブ開発フレームワークを使って、ウェブ開発もできる
・AI・機械学習分野へ関わる機会が必然と大きくなる

ぶっちゃけますが、初学者の方はいきなりAI・機械学習分野に関わることはまずないので、ここがメリットになることは少ないです。この辺りの分野は、Pythonが一通り書けるようになってからでもOKというか、それでも難しいです。(結構、専門的な知識が必要です)

ただ、「Pythonができることによって、機械学習関連のタスクも任され、結果としてできるようになる」ことは十分あり得るので、そこは「AI・機械学習分野へ関わる機会が必然と大きくなる」としました。

Pythonのメリット1: プログラミング初学者でも、学習コストが低い
現役エンジニア
現役エンジニア
Pythonは英語を書いているみたいに記述できるのが良いです。僕自身、エクセルを色々触ってから、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なら、MVCフレームワークであるDjangoと軽量フレームワークであるFlaskの2つから選べます

Pythonなら多くの場合は2つのウェブフレームワークを利用して、webサービス・webシステム開発を行うこともできます。

WEBフレームワークとは?
✔︎ウェブサービス・システムをより簡単に作成するための一連のプログラム

djangoって?
✔︎MVCを採用したフルスタックフレームワーク(これ1つでもOK)
✔︎インスタグラムもdjangoで作成された

Flaskって?
✔︎超軽量フレームワーク(簡単だが、採用するライブラリ選択が難しいかも)
✔︎Pinterestで採用された

MVCって?:モデル・ビュー・コントローラに分けて構築する方法のこと。数多くのウェブアプリケーションで採用されている、一般的なものです。

現役エンジニア
現役エンジニア
Pythonをある程度書けるようになったら、djangoのチュートリアルを一度やってみると良いですね。不安だったら、以下のテキストを買ってみて解説をみながらやってもOK!

参考django公式 チュートリアル

プログラミング言語 御三家その2「JavaScript」

現役エンジニア
現役エンジニア
第2位はJavaScriptですね。僕が好きなプログラム言語でもあります。スマホアプリから、簡単なスクリプト、ウェブのフロントエンド開発・バックエンド開発まで、世の中にあるWebまわりのプログラミング全てを行うことができるすごいやつです

2020年現在、ウェブのフロントエンド(アプリやウェブサービスで目に見えている部分全てですね)において、JavaScriptの最新のテクノロジーを使わずに開発することは、あり得なくなってきました。

JavaScriptは、最も基本的な使われ方としては「ウェブサービスのフロントエンド領域」がほとんどです。

しかし、最近では(少しオワコン化してきているのですが)JavaScriptのReact.js・ReactNativeというライブラリ・フレームワークを使うことによって、iOSとAndroid向けのクロスプラットフォーム開発なんかも可能です。

また、サーバーサイド開発には非常に高速なnode.jsという有用なライブラリもあり、これからも目が離せない今ホットな技術です。

JavaScriptを利用しているウェブサービス
✔︎ほぼ全て(簡単にいっちゃえば、動きがあるもの全てJavaScriptです)

JavaScriptを学ぶことで何が嬉しいのか?

現役エンジニア
現役エンジニア
JavaScriptを学ぶことで、ウェブアプリケーションのサーバーからのレスポンスを受け取って、実際に見える形にするところまで全てを作成することができます。例えばTwitterがわかりやすい例です。

例えばですが、Twitterのようなウェブサービスを作成することを考えます。Twitterを見るときの機能をざっくり思い浮かべると、下記のような感じですね。

Twitterのタイムラインの処理
1. タイムラインにフォローしている人のツイートが一覧表示される
2. それぞれのツイートに、お気に入り数とRT数が出てくる
3. 上に引っ張ると、新着ツイートが取得できる

これをJavaScriptで実装すると、以下のような実際のTwitterのツイートデータをサーバーから取得するだけで、Twitterに必要な処理を実現することができます。

引用Introduction to Tweet JSON

これを大量にサーバーから受け取って、最新のものを取得して並べたりする処理をやってくれているのがJavaScriptですね。

JavaScriptができると、データを受け取れば、それを画面上に反映させることができる

上記のような理由から、Webフロントエンドと呼ばれる、バックエンド(サーバー)から取得した上記のようなデータを見える形にどんどん落とし込んで行ったり、デザインを作成してUI/UXを作成するまでが「フロントエンドエンジニア」と呼ばれる職種で、JavaScriptを多用する領域となります。

僕
説明のために簡略化しましたが、ほとんどウェブ上で行われる処理がJavaScriptによって組み立てられています。JavaScriptの重要性は年々上がっていていますね

プログラミング言語 御三家その3「Ruby/PHP/(Java)」

僕
この辺りは、いわゆる一般的な「バックエンド系」の言語ですね。いずれも初学者の方のみならず、Webエンジニアを名乗る以上、どれか1つの言語には習熟しておきたいです!

この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つを選んで学習を始めるとOKです!

おそらく、これだけだと「じゃあ、どの言語を選べばいいの?」となるハズ。なので、ざっくりと「Ruby/PHP/Java」の簡単な紹介と、メリット・デメリットをまとめてみたいと思います!(できることはほぼ同じです)

1. プログラミング言語「Ruby」って?

僕
Rubyは、日本人作者である「まつもとひろゆき」さんによって1995年に一般公開saretaプログラミング言語です。多言語と違った一番の強みは、日本発祥の言語のため、日本語でのドキュメントが多く、新規で始める方にとてもオススメ!

Rubyの一番オススメできるポイントは、なんと言っても「日本人が作者である」ことにつきます。

そのため、わからないことがあれば日本語でも比較的解決がしやすく、JavaScriptのように最新事情がアメリカなど海外のドキュメントを読まないと分からないことに比べると、日本人にとっては一番とっつきやすいプログラミング言語と言えるかもしれません。

また、次で紹介するPHPは、開発フレームワークが多種多様なので、職場によって少しずつ開発手法やアーキテクチャが異なってしまうのですが、Rubyは「Ruby on Rails」というフレームワークで統一されているので、習得すべきことが明確です。

Rubyフレームワーク「Ruby on Rails」(通称:Rails)って?

僕
Rubyは、もちろんウェブ開発以外にも利用されますが、2020年でもRubyを使うならWebフレームワークであるRuby on Railsのことを抜きにして、Rubyは語れないでしょう!

Webフレームワークは、とても簡単に言えばウェブサービスを簡単に作るための手助けをしてくれる、一連のプログラムのことです。これを使うことで、ゼロから構築すると膨大な時間になってしまうウェブ開発のよくある機能を使い回すことができるため、圧倒的に早くウェブアプリケーションを構築できるようになります。

また、Rubyをオススメできる理由としては、下記の理由があります。

Rubyが初学者の方にオススメな理由

  1. 比較的ホワイトな労働環境の会社が多い(自社開発・ウェブサービス)
  2. 一度習得すれば、他のフレームワークに比べて学習曲線を急カーブできる
  3. 日本人コミュニティだけでなく、初学者コミュニティが活発

上記ですね。僕はPHPから始めたのですが、Rubyから学習を始める初学者の方が、Twitterなどでどんどんつながっているのを見てとてもうらやましくて仕方なかったですorz

まず1つめについては、Ruby on Rails自体が、ブラックな受託開発企業やSIerなどで全く採用実績がないため、ベンチャーであっても大抵の会社が非常にワークライフバランスの取りやすい傾向があるのが魅力的です。

2つめについては、「レールに乗ったらどんどん開発できるが、一度レールを外れると圧倒的な技術力が要求される」とよく開発者から語られるように、よくも悪くもフレームワークに左右されることが多いです。

これが初学者の方だと、学習のしやすさに直結するのですが、長期間コードをメンテしたり機能開発していくうちに、少しずつ限界が見えてきて辛くなるという話はよく聞きますね。

ただ、それらを吹き飛ばすくらい、Rubyの日本人コミュニティや初学者コミュニティは素晴らしいものです。普通なら海外に行かないといけないようなRuby関連のイベントが日本で完結することもあるのは素直に羨ましいですね。

 

Ruby(Ruby on Rails)で作られたウェブサービス

僕
僕も調べてみるまで全然知らなかったのですが、エアビーやHulu、GitHubなんかもRailsで作成されていたんですねー!

RubyフレームワークRuby on Railsを作ったウェブアプリ

  1. Basecamp
  2. Airbnb
  3. GitHub
  4. Shopify
  5. Groupon
  6. Goodreads
  7. Kickstarter
  8. Hulu
  9. Slideshare
  10. Twitch
  11. Yellow Pages
  12. Urban Dictionary
  13. Dribbble
  14. Crunchbase
  15. Zendesk

参考:Update: Top 15 famous websites built with Ruby on Rails

プログラミング言語Rubyのフレームワークである、Ruby on Railsを利用すれば、上記のような世界的なウェブサービスが作られた例もあることが分かりました。十分すぎる実績ですね。

✔︎Rubyまとめ:とりあえず、「Ruby/PHP/Java」で選択を迷うようなら、プログラミング言語はRuby、フレームワークはRailsで問題ナシです

2. プログラミング言語「PHP」って?

僕
プログラミング言語「PHP」は、元々はラスマス・ラードフが開発していた「Personal Home Page Tools(PHP Tools)」に起源があります。元々は、個人向けHPのプログラミング言語で、現在はウェブ開発全てに対応できるよう進化してきました

元々は個人向けホームページで、使い勝手がいいように考案・開発されてきた歴史もあるため、言語自体は非常に柔軟で扱いやすいと言えると思います。実際に、書き方は全てのプログラミング言語の中で見ても、かなり一般的です。(一方で、Rubyは結構書き方が特殊です)

さて、このPHPですが、10年ほど前にユーザー参加型のウェブサイトが発表されてきた「Web 2.0」、さらにその前の個人HPが大量に公開されていた時代までと、ウェブサイトの黎明から発展を作ってきた言語です。

最近では、クラウドにデプロイする「クラウドネイティブ」なアプリケーションにその座を奪われそうですが、PHPは未だに「グルー言語(のり付け言語)」と言って、「ある言語とある言語をつなぎ合わせる」と言った役割を見いだしつつあります。

僕
例えば日本だとメルカリでは、「Go言語+PHP」という形で、PHPに柔軟な処理を任せつつ、最低限の処理でクラウドの課金を減らしたいといった目的でGo言語を採用するということを行っていますね

僕はPHPが好きなので、かなり偏っていますが笑 とりあえず、PHPだと他言語にも移りやすく、「のり付け言語」としての役割は今後も背負っていくでしょうから、まだまだ需要は続いていくでしょう

じゃあPHPがオススメなポイントって何?

僕
ぶっちゃけ、初学者の方にオススメするなら断然Ruby… なのですが、それは「正社員で転職する」ことを前提とした場合ですね。「フリーランスや一人で気ままに稼ぎたい!」そんな人にはPHPの方がオススメです

RubyとPHPを比べたときに、言語の難易度はほとんど同じくらい、ウェブフレームワークもRuby on Railsとlaravelはほとんど同じような機能を持っており、あまり比較にはならないです。

しかし、仕事に関していうならPHPの方が圧倒的にフリーランス・業務委託の案件が多く、それを支えているのが、WordPress開発のような個人単位のプロジェクトから、受託開発、自社サービスなど多種多様な開発ニーズがあることですね。

PHPができれば、オンラインでも仕事を取ってくることもやりやすいですし、転職・フリーランスエージェントに行ったらおそらくRubyより案件数は多いはずです(一方で、正社員だとRubyの方が未経験でも入りやすいですねー)

PHPを学ぶとできるようになること

  1. WordPressを使った企業むけ・個人向けウェブサイト開発
  2. Webフレームワークを使ったサービス・システム開発(バックエンド)
僕
ざっくり上記2つがあります。WordPressはこのブログのようなサイトをPHPで構築していくもので、2つめはLaravelというRubyでいうRailsのようなフレームワークを用いた開発です

これら2つの選び方としては、スキルをつけて何がなんでもすぐに独立したい方なら業務委託のWordPress開発・Laravelを使った純委任のフリーランスエンジニア。

企業に常駐しつつ、ある程度稼ぎたいならLaravelを扱えるようになって、準委任のフリーランスエンジニアになる方がいいですねー。

正社員でPHPだと、結構SIerとかでシステムエンジニアに割り当てられることも多く、ウェブ業界みたいに「仕事頑張ったらいつの間にか独立!」みたいな感じでもないので、自由を求めるなら「PHPを独学してとりあえず独立してやる!」くらいの方にオススメしたいです

結構、やってみると簡単でオススメではあるのですが、ウェブ系とSIer系が玉石混交という感じで、なかなかIT業界やプログラミング初めての方にPHPからオススメするのは辛いですねー。ただ、独立前提でプログラミング学習をするなら、PHPが絶対に適しています。

▼PHPの学び方などはこちらの記事をどうぞ▼

あわせて読みたい
【最短】PHP学習のロードマップを現役フリーランスエンジニアが解説してみます ✔︎ 対象の読者の方 HTML・CSSがある程度書けるようになってきた方 今回は、「PHP学習のロードマップ」ということでお...

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

僕
ぶっちゃけ初学者の方にJavaをお勧めはしないのですが、存在は知っておいて、ある程度Javaがどんな言語なのかは知って置いて損はないです。ウェブ業界だと使うことは圧倒的に少ないですが、プログラミングを学ぶのにおそらく最も適しています。

一言でいいましょう。Javaはウェブ業界だとレガシー(古い技術)です。そして、厳密な言語仕様(コンパイル型言語)のため、初心者にはかなりとっつきにくいです。

しかし、PHPもそうなのですが、Javaの文法をかなり多くの言語が引き継いでおり、今あるプログラミング言語の基礎を作ったと言っても過言ではない、「古典」のような言語です。そのため、Python/Ruby/PHP/JavaScriptなどの「動的型付け言語」をある程度描けるようになったら、Java/Go言語などの「静的型付け言語」にチャレンジしてみるのもいいでしょう。

「Javaはレガシーで、難しい!」と言いましたが、中級者以上のプログラマであれば、ざっくり進化版Javaである「Kotlin(Android開発でも利用)」や「Scala」と言った優秀な言語を習得するのは選択肢に入るでしょう

Javaを使って動いている組み込み系のシステムや銀行の勘定系システムはまだまだ大量にある状態です。メガバンなどのシステムのみならず、フィンテック系の会社だと、「Scala(Java)」を使う会社は多く、お金周りの厳密な処理が必要な際は、まだまだJavaが必須になっている場面も多く見られますね。

また、KotlinはAndroid開発の標準的な言語です。(元々はJavaのみでした)かなりモダンな言語仕様に進化していて、中級者以上ならぜひチャレンジしてみたい言語の一つですね。

プログラミング言語をまとめてみましたがいかがでしょう

僕
気がついたら1万字くらいになってしまいましたね。こんな感じで、プログラミング言語は全く同じものではなく、かなりそれぞれ特徴やユースケース(使い所)が分かれているんですよね。

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

ABOUT ME
クスハラ
立命館大卒('18)後、ニート。 その後、webエンジニアとして独立・開業。 留学経験あり。TOEIC960点(大学3年時) 複数のwebサービスのグロースから開発までを担当。楽しく仕事して自由に生きているので、ブロガーとしては世の中の当たり前を疑う視点を提供する記事を書きたい。 ■連絡先 shogo.kusuhara[あっと]gmail.com

コメントはこちら

メールアドレスが公開されることはありません。