初心者が最初に学ぶプログラミング言語の決め方

プログラミング学習を始める動機はそれぞれですが、「作りたいものがある」という理由の方は多かったりします。

プログラミング学習や言語選びをする際は、作りたいもの・目的に合った言語から選ぶのがおすすめです。

理由としては、作りたいのものから選んで学習し始めることによって、無駄が少なくて、モチベーションを保ちながら進められるからです。

ただ、世界にはプログラミング言語がなんと8000種類以上、主要なものだけでも30種類もあると言われているので迷ってしまいますよね。

そこでこの記事では、実際によく使われている人気言語目的(作りたいものの用途)から言語選びをしてみましょう。

これに目を通せば、作りたいものがある方は迷わず言語選びができますし、イメージがわかない方もアイデアの参考になるでしょう。

自分に合ったプログラミング言語を見つけて楽しくプログラミングを習得してください。

プログラミング言語の人気ランキング

ここでは世界的にも認知度の高い2つのランキングから紹介します。各ランキングは、順位付けのもととなるデータが異なるため、それぞれに順位が異なりますが、いずれも信頼度の高いランキングです。

人気があるということは、「需要がある」あるいは「優れた言語である」ということも言えます。
これらのランキングを見て、学習する言語を選定する際の参考にしてみてください。

TIOBEによる人気ランキング

TIOBEは、GoogleやYahoo、Bingなどの「検索エンジンでのトレンド」を計測してランキングを発表しています。

2017.11 2016.11 プログラミング言語 インデックス値 推移
1 1 Java 13.23%
2 2 C 9.29%
3 3 C++ 5.34%
4 5 Python 4.48%
5 4 C# 3.01%
6 8 JavaScript 2.97%
7 6 Visual Basic .NET 2.91%
8 7 PHP 1.90%
9 16 Delphi/Object Pascal 1.74% ↑↑
10 9 Assembly language 1.72%
11 19 R 1.61% ↑↑
12 15 MATLAB 1.60%
13 14 Ruby 1.59%
14 13 Go 1.57%
15 10 Perl 1.56% ↓↓
16 Scratch 1.55% ↑↑
17 17 Visual Basic 1.49%
18 20 PL/SQL 1.45%
19 11 Objective-C 1.41% ↓↓
20 12 Swift 1.39% ↓↓

上位3言語は安定的に人気のあるプログラミング言語です。

「Java」や「C」(日本では「C言語」と表示されることが多い)などは、多くの人が一度くらいは聞いたことのある言語ではないかと思います。各言語の概要については後術します。

PYPL PopularitY of Programming Language Index

PYPLは、Googleの検索エンジンにおける「プログラミング言語のチュートリアルが検索された回数」を指標にしてランキングを発表しています。

Rank Change Language Share Trend
1 Java 22.70% -0.80%
2 Python 21.69% 5.40%
3   JavaScript 8.53% 0.30%
4   PHP 8.33% -1.70%
5   C# 7.99% -0.70%
6 C 6.42% -1.30%
7   R 4.23% 0.40%
8   Objective-C 3.81% -1.10%
9 Swift 3.00% -0.60%
10 Matlab 2.39% -0.40%
11 Ruby 1.72% -0.40%
12   TypeScript 1.52% 0.40%
13 VBA 1.42% 0.00%
14   Visual Basic 1.26% -0.30%
15   Scala 1.21% 0.00%
16   Kotlin 0.90% 0.80%
17 Go 0.78% 0.30%
18   Perl 0.78% -0.10%
19   lua 0.36% -0.10%
20   Rust 0.36% 0.10%
21   Delphi 0.31% -0.10%
22   Haskell 0.30% 0.00%
© Pierre Carbonnelle, 2018

Javaの下落傾向とPythonの増加傾向が続いており、2018年3月には両者のインデックス値の差が1.25まで近づいた。

この傾向は長期にわたって続いており、今後も継続すると見られる。そう遠くないタイミングでJavaとPythonの順位が入れ替わり、Pythonが1位になることが予想される。



目的から学ぶべきプログラミング言語を決定する

もしすでにプログラミングで実現したいことがある人は、その目的のモノやサービスを作るために必要な言語を選択してください。目的が決まると、自ずと学ぶべき言語が決まってくると思います。

デスクトップアプリ、スマホアプリ開発
C言語、C++、Objective-C、Java、Kotin、Swiftなど
速度と堅牢さを重視、ルールが多く、学習難易度は比較的高い

Web(クライアントサイド)開発
JavaScript、TypeScript、CoffeeScriptなど
Webブラウザ内で使われている言語。
TypeScriptとCoffeeScriptはJavaScriptに変換される。

サーバーサイド開発
Java,Perl,PHP,Python,Rubyなど
同じサーバーサイドでもWeb向けはこまめに更新できるまで変更しやすさが重視されるが、基幹システム向けでは堅牢さが重視される。

組み込み
C言語、Go、Rustなど
家電などのマイコンにくみこむためのもの低スペック環境での確実な動作が求められる。

データ分析
Python、R など
研究室でのデータ分析などに使われる。

データベース
SQL
データベースの管理に使われる。

マクロ
VBA、JavaScript、Ruby、Pythonなど
アプリを使った作業の自動化。
Excelで使われるVBAが有名。

ゲーム
C言語、C++、C#、Luaなど
傾向はデスクトップアプリに似ていて、
速度と堅牢さ重視。

関数型
LISP、Haskell、Scalaなど
関数と四季を中心にプログラミングする言語。

学習
Scratch、Squek、BASIC、LOGO、HSPなど
プログラミング学習用の言語、マウス操作でプログラミングできるものもある。



主なプログラミング言語の10選

Java

日本語サイト  https://www.java.com/ja/

◇Javaの基礎知識

Javaとは、1995年に米国のSun Microsystems(サン マイクロシステムズ)社が開発したプログラミング言語です。2010年にORACLE社に吸収合併され、その後はORACLE社がJavaを提供しています。

Javaは、世界中で多く使われる人気のプログラミング言語で、Googleが開発に用いることが多い三大言語(Java、C++、Python)のひとつです。

「Write once, Run anywhere」というキャッチフレーズがあり、「一度書けば、どこでも使える」という意味の通り、Java でコーディングすれば WindowsやMacなどのOSを問わずプログラムが実行されます。

Javaを使いこなせればWebページやAndroidアプリ、自作ゲームなど様々な制作が可能で、動作確認も簡単にできるので速く理解できるという特徴も持っています。

誰でも使いやすいため自由度はあまり高くありませんが、会社などでチームを組んで仕事をするならば必ず覚えておいた方がいいプログラミング言語の1つです。

基本的にJavaはとても難易度が高い言語になります。具体的に言うと、「バグの解析」や「将来を見据えた設計」がとても難しいのです。

そして、学習し習得するまでに「大幅な時間がかかる」ことでも有名です。

◇Javaの特徴

  • オブジェクト指向のプログラミング言語
  • ガベージコレクション
  • 技術的に安定している
  • 学習しやすく需要も多い

◇Javaが世界で人気の理由

  • OSにかかわらず実行できる
  • 処理速度が速い
  • セキュリティが高い
  • ライブラリが豊富にある

◇Javaのメリット・デメリット

メリット ・プログラミングの基礎知識がしっかりと身につく
・プラットフォームに依存しない
・大きな業務システムに採用されやすく、企業ニーズがある
・Androidアプリを開発できる
デメリット ・しっかりとしたプログラムを書かなければいけないため、学習難易度が高め
・アメリカでは需要が伸び悩んでおり、今後は日本でもJavaの使用を見直す企業が増える可能性がある

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてJavaをお勧めします。

  • 流行に左右されず、習得した知識を長く使いたい人
  • 大規模システムの開発に興味のある人
  • Android アプリを制作したい人



C、およびC++

公式サイト  https://isocpp.org/

◇C、およびC++の基礎知識

日本では「C言語」と表記されることが多いCは、1972年に開発されたプログラミング言語です。また、その後継として1982年に開発されたのがC++です。

Cは、実行速度最速の異名を持ちます。汎用性が高く、パソコンのソフトやゲーム、機械制御など、非常に多くの分野で使われています。

WindowsやLinuxなどのOSにも使われています。他にも、リアルタイム処理が求められる業務システムなどにも、C/C++が採用されていることが多いです。

「記述した通りに動く」という特徴を持ち、必要な処理は全てコーディングする必要があります。

C++はC言語の拡張版言語です。C言語でできることはC++でもできます。C言語のプログラミングを習得した人達の理想が具現化したような言語で、コンシューマーゲームから生産性ソフトウエア、ロボット工学から電化製品のような組み込みシステムまで手広く開発することができます。

しかし、ポインターやメモリー管理など概念として難しい点がある為、初めての言語として選んだ場合に初学者は苦労し挫折する可能性があると思います。

◇C、およびC++の特徴

  • 汎用性が高い
  • 対応する機器の範囲が広い
  • プログラムの記述の自由度が高い
  • Cの将来性については、需要は少ない
  • 組み込みやメモリー操作等、C言語が特化した部分での需要はあり
  • オブジェクト指向に対応(C++)

◇C、およびC++のメリット・デメリット

メリット ・プログラミングの基礎知識がしっかりと身につく
デメリット ・しっかりとしたプログラムを書かなければいけないため、学習難易度が高い

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてC/C++のいずれかをお勧めします。

  • ハードウェアに関連した開発に興味のある人
  • プログラミングにどっぷりと浸かりたい人
  • ゲーム開発に取り組みたい人

別記事 【初心者向け】C言語/C++の学習 はじめの一歩

C#

C# のガイド  https://docs.microsoft.com/ja-jp/dotnet/csharp/

◇C#の基礎知識

C#(C シャープ)はマイクロソフトWindowsの.NET フレームワークの為に開発されました。

C#は、Web開発、ゲーム開発(Unity)及びマイクロソフトの開発一般に使用されています。

マイクロソフトは互換可能なクロスプラットフォームでは知られていませんでしたが、C#を他のプラットフォームへ移行させ、リナックス技術者により良い開発ツールを提供する目的で、Monoと呼ばれるオープンソースプロジェクトを発案しました。

C++よりも簡単な言語仕様のため、初心者がプログラムを学習するにも適しています。ただし、C言語やC++ほど普及はしていないため、学習環境を用意することについては、多少手間取る可能性もあります。

最近では、C#をiOSやAndroid向けのネイティブモバイルアプリに使用できる様になりました。(Xamarin)

◇C#の特徴

  • .NET Framework上で動作するプログラムの開発
  • オブジェクト指向のプログラミング言語
  • C++よりも、より開発しやすいように設計されつつ、C++の柔軟性とパワーを持ち合わせている

◇C#のメリット・デメリット

メリット ・プログラミングの基礎知識がしっかりと身につく
・Unityを利用すれば、ゲーム制作を通じてプログラミングを学習できる
デメリット ・業務上の汎用性は低い
・学習難易度が高い

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてC#をお勧めします。

    • Unityでゲーム開発をしたい人
    • Windows アプリを開発したい人

別記事 【初心者向け】C#の学習 はじめの一歩

Python

出典:https://www.python.org/community/logos/

公式サイト  https://www.python.org/

日本語サイト https://www.python.jp/index.html(翻訳ドキュメント)

◇Pythonの基礎知識

Pythonとはプログラミング言語の1つの名前であり、パイソンと読みます。Pythonという英単語はニシキヘビという意味であり、言語のロゴもニシキヘビをモチーフとして作られています。

Pythonは、日本ではまだマイナーな言語ですが、海外のメジャーなWebサービスでは広く利用されているとても人気のある言語です。

Pythonという言語はとても書きやすいことで有名です。使用用途としてPython用のフレームワークを用いたアプリケーションの開発や豊富なライブラリを活用したデータ分析や機械学習、ディープラーニングなどがあります。

◇Pythonの特徴

  • 書き方に留意された言語
  • インシデントの利用
  • オブジェクト指向
  • 近年はディープラーニングなど人工知能・データ分析関連の開発に利用されることも多くなっている

◇Pythonのメリット・デメリット

メリット ・専門分野(データ解析やAI)の分野へ進める
・JavaやCと比べると学習難易度が低め
デメリット ・日本ではまだ広く普及していないため、業務上の汎用性は低い

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてPythonをお勧めします。

  • 人工知能や機械学習、ビッグデータ解析の分野に興味のある人
  • 将来的に海外での活躍も見据えている人

関連記事(【初心者向け】Python学習 はじめの一歩)へ



JavaScript

Standard ECMA   http://www.ecma-international.org/publications/standards/Ecma-262.htm

JavaScript MDC  https://developer.mozilla.org/en-US/docs/Web/JavaScript

◇JavaScriptの基礎知識

JavaScriptは、現在ではほぼすべてのWebサービスに利用されているといっても過言ではないほど広く利用されている人気言語の1つです。

Webサイトのフロントエンド開発に必須となっているのがJavaScriptです。フロントエンドとはWebサイトやWebアプリケーションなどのデザインや動きを作る領域のことを指し、最近ではjQueryなどのライブラリや、Google製のAngularJS、Ember.js、Facebook製のReactといったフレームワークにて実装されることが増えています。

またJavaScriptはほとんどすべてのブラウザと親和性が高い状態にありますが、Node.jsを活用したサーバ側の言語としても使用されるようになっているのも近年における特徴の1つです。

ただし言語的に自由度が高いが故に(決まった型があまり存在しない)、バグなどを見つけることが容易ではないというデメリットもあります。そのためエンジニアの一部には扱いにくい言語として認識されています。

◇JavaScriptの特徴

  • Webページに動きを与える
  • 対応したブラウザさえあれば実行可能(パソコンに実行環境や開発環境が既に入っている)
  • 文法は安易で習得にそれほど苦労しない
  • Ecmaで改良が重ねられた進化している
  • 多くのフレームワークがあるので情報のキャッチアップが必要

◇JavaScriptのメリット・デメリット

メリット ・開発環境の導入作業が不要。すぐに学習を始められる
・文法が平易で、学習コストが低い
・Web制作だけでなく、アプリやゲーム開発などでも利用できる
デメリット ・使いこなすには幅広い知識が必要
・仕事でJavaScriptの知識を活用するには、入れ替わりのスピードが速い関連技術の知識習得も必要

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてJavaScriptをお勧めします。

  • WebデザインやWeb制作に興味のある人
  • Webサービスを制作したい人
  • 最初は手軽に始められるプログラミング言語で学習を開始したい人

関連記事(【初心者向け】JavaScript学習 はじめの一歩)へ



PHP

公式サイト            http://www.php.net/

日本語マニュアル        http://jp2.php.net/manual/ja/

日本PHPユーザー会      http://www.php.gr.jp/

◇PHPの基礎知識

PHPは「Hypertext Preprocessor」という意味で、「PHP:Hypertext Preprocessor(PHPはHTMLのプリプロセッサである)」という説明を指しています。開発当初は「Personal Home Page Tools」という名称だったため、PHPと略されていましたが、バージョンアップを重ねる中で「Personal(個人向け)」というイメージをなくすため名称を変更し、略称のみそのまま定着しています。

Webサイトのバックエンド開発に使われることが多いのがPHPです。バックエンドとはユーザーには見えない内部のシステム領域のことで、Webサービスであればサーバサイドの機能的な部分を指します。

Web開発に特化した言語ですので、PHPを用いることによりWebで具体的に何をするのかといった目的を概念化しやすくなるというメリットがあります。

「WordPress」というオ-プンソースのCMS(Contents Management System)で使われていることでも有名です。

◇PHPの特徴

  • サーバーサイドで動的なウェブページ作成するための機能を多く備えている
  • データベースと連携して動作することを得意とする
  • テキストベースで構築できる
  • コンパイルが不要
  • 動的なページが作成可能

◇PHPのメリット・デメリット

メリット ・日本では多くのWebサービスに利用されている
・学習するための情報や環境が充実している
・文法は平易で初心者にとっても使いやすい
デメリット ・Webに特化しているため汎用性は高くない
・学習するには、サーバとクライアントコンピューターの環境が必要となる

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてPHPをお勧めします。

  • Web制作に興味のある人
  • 新しいWebサービスを考えている人
  • WordPressを利用したサイトやブログを制作したい人

別記事 【初心者向け】PHPの学習 はじめの一歩 へ

Ruby(Ruby on Rails)

Ruby公式サイト                  https://www.ruby-lang.org/ja/

Rubyリファレンスマニュアル      https://docs.ruby-lang.org/ja/

◇Rubyの基礎知識

Rubyはメジャーなプログラミング言語の中で唯一、日本人が開発したプログラミング言語です。まつもとゆきひろ(通称 Matz)により開発された言語で、コンセプトは学ぶ人が楽しめて、エレガントな開発が行える事です。

またオブジェクト指向を取り入れられています。更にRuby on Rails(Rubyのフレームワーク)を使用する事で、簡単に開発が行えます。

フレームワークを使えば、開発者は必要最低限のプログラムを書くだけになり、開発者の負担を大きく減らしてくれます。

RubyでWebアプリを作成するときに毎回書かなければいけないような処理が存在します。Railsは、そのような凡庸的な処理を最初から備えていて、利用者はそれらを意識することなく開発に集中できます。

プログラミングのコードを短く書くことができるので、とても早く様々なサービスを開発することができます。最近ではSNSサービスや、求人などのマッチングサイト、メディアサイト(大規模なブログのようなもの)などを作るときに利用されることが多いです。

Rubyで作成されている有名なサービスを幾つか紹介します。

「食べログ」、「Cookpad」や「Wantedly」が有名です。

◇Ruby(Ruby on Rails)の特徴

  • 言語の仕様をプログラマーが変更することができるといった、柔軟性を持っている
  • 開発効率が良い
  • webサイトの開発で力を発揮する

◇Ruby(Ruby on Rails)のメリット・デメリット

メリット ・元々国産のプログラミング言語ということもあり、日本語での学習環境や情報が豊富
・比較的少ないコードで多くの機能を実現できる
デメリット ・基本的にRuby on Rails(フレームワーク)とセットで学習を進めなければならないため、学習難易度はやや高い

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてRuby(Ruby on Rails)をお勧めします。

  • 起業を考えている人
  • ベンチャー企業への就職を考えている人

関連記事 【初心者向け】Rubyの学習 はじめの一歩 へ

Objective-C と Swift

公式サイト https://developer.apple.com/swift/

◇Objective-C と Swiftの基礎知識

Swiftは、2014年にApple社が発表したオープンソースのプログラミング言語です。Swiftとは本来アマツバメという鳥のことで、「速い」「すばやい」「迅速な」といった意味があります。

Swiftは、iOSやMac向けのネイティブアプリケーションを開発するために、Apple社が毎年開催している開発者向けのイベント「WWDC(Worldwide Developers Conference)2014」で発表されました。

AppleのiOS 7以降、OS X version 10.9以降のOSを搭載しているデバイスのすべてのアプリケーションをSwiftで開発することができ、Apple TV、Apple Watchなどのアプリも作成可能です。

Pythonに触発されたSwiftは、新参のプログラマーが習得しやすくObjective-Cに見られるいくつかの課題を解決する様に設計されています。2016年にはオ^プンソース化されるなど、注目度が年々高まっている言語の1つでもあります。

◇Swiftの特徴

  • 他の言語との相互性
  • 名前の通り「迅速」なパフォーマンス
  • Playgroundの実行環境

◇Swiftのメリット・デメリット

メリット ・新しい言語であるため、文法がシンプルで初心者でも分かり易い
・Apple製品共通のプログラミング言語
・安定的な将来性
デメリット ・Apple社が作ったプログラミング言語だけあって、現時点ではWindowsでは勉強しづらい
・歴史の浅い言語なので、他の言語と比べ、学習用の情報が少ない(ただし、これまでも他の言語との比較であって、現在でも十分な教本やガイドなどはある)

上記を踏まえ、次のような人に、最初に学ぶプログラミング言語としてSwiftをお勧めします。

  • iPhoneやiPad向けのアプリを作成したい人
  • macOS向けのアプリを制作したい人
  • Macを持っている人

別記事 【初心者向け】Swiftの学習 はじめの一歩 へ



Visual Basic .NET

Visual Basic のガイド https://docs.microsoft.com/ja-jp/dotnet/visual-basic/index

◇Visual Basic .NETの基本知識

VisualBasic .NETは、Microsoft が開発したプログラミング言語であり、Windows アプリケーション、Web アプリケーション、およびモバイル デバイス アプリケーションを開発できます。初心者でも扱いやすい言語であるため、IT教育の教材でも利用されています。

ただし、Windows以外の環境では利用できない汎用性の低い言語です

◇Visual Basic .NETの特徴

  • 操作しながら学習できる
  • .NET Frameworkのさまざまなクラスを使用
  • さまざまなユーザーインターフェイスを提供
  • よく使われるテクニックをひとつのアプリケーションに網羅

◇Visual Basic .NETのメリット・デメリット

メリット ・言語が容易
・VBAなどへの応用が可能
デメリット ・Windowsでしか利用できないため、他言語を学ぶ際の基礎力にはつながらない可能性が高い

別記事 VBとVBAの勉強方法 へ



まとめ

数多くあるプログラミング言語の中からおすすめの言語をご紹介しましたが、いかがでしたか?

プログラミング言語を学習する目的や目標が明確な人は、その目的や目標を叶えるために最適な言語を選択し、学習を進めて下さい。

もし迷っている人や、プログラミングの学習をより効率よく進められるならば何でも構わないという人には、筆者は書記のハードルが低いJavaScript」、「Python」または「Swift(Mac PCの場合)をお勧めします

  用途 学習難易度 年収 求人数 将来性
JavaScript Web系 ★★ 普通 多い ★★★★★
PHP Web系 ★★ 普通 多い ★★
Perl Web系、テキスト処理 ★★ 少ない ★★★
Python 汎用的 ★★★ 少ない ★★★★
Java 汎用的だがWeb系の開発が多い ★★★ 普通 多い ★★
Ruby 汎用的だがWeb系の開発が多い ★★★ 少ない ★★★
C# Windowsアプリケーション ★★★ 普通 多い ★★
C 制御系、組込み系 ★★★★★ 普通 少ない
C++ 制御系、ゲーム ★★★★★ 普通 多い
Swift iPhoneアプリ ★★★★ 多い ★★★★★

プログラミング初心者で具体的に決まっていない方はJavaScript、PythonまたはSwiftをおすすめしましたが、まったくの未経験者であればJavaScript、Python、Swiftでも独学での習得は挫折してしまう人も少なくはありません。

独学が厳しい方は学習する言語を変えてみたり、勉強方法を勉強会やプログラミングスクールに通う等学習方法について変更したり、諦めずにチャレンジすれば必ずプログラマーになれます。

今回とりあげたプログラミング言語は、どれを学んでも損をすることはありません。

「やりたいことがないけどプログラミングを覚えたい」ということであれば最も簡単な言語を選ぶといいでしょう。どの言語も広く使われているので、習得すればさまざまな業界への道も開かれます。

ひとつを学べばプログラムの基本を身につけることができるため、ほかの言語に移るのも容易になるでしょう。

実際、プログラマーの多くはひとつのみならず、複数の言語を習得している場合が多いのです。まずはひとつを選んでじっくりと学び、力をつけてからほかの言語にも挑戦してみてください。

シェアする

  • このエントリーをはてなブックマークに追加