技術

【初心者向け】プログラミング言語はどれから勉強すべきか【2019年版】

こんにちは。

最近はプログラミング教育が導入されはじめたり、またエンジニアでなくても簡単なプログラムを書けるという人も増えてきており、プログラミングのスキルが一般的なものになってきました。こういった流れもあり、プログラミングを勉強してみたいと思っている方多いと思います。

しかし未経験者の方からすると、「プログラミングの種類がたくさんありすぎてどこから手をつけてわからない。結局どの言語を勉強すればいいの? 」と疑問に感じるのではないでしょうか。

こういった疑問をお持ちの方向けに、各言語の難易度できること実際にどういった仕事で使われているのかといった観点からまとめてみました。

本記事が役にたつ人
  • これからIT業界に飛び込もうと思っている方
  • IT業界で働き始めて、これからどんどんスキルアップしたい方
  • プログラミングができるようになって世界を広げたい方
  • ビジネススキルの一環として、プログラミングをできるように成りたい方

目的から選ぶ最適なプログラミング言語

各言語の特徴や難易度から言語を選択するのもいいですが、最終的な目的がはっきりにしているなら、それに適した言語を選ぶべきです。そういった方のために、よくある目的から学ぶべき言語をまとめてみました。

Java

  • 大手SIerやコンサルティングファームで、ビジネスアプリの開発に携わりたい人
  • アンドロイドアプリを作りたい人

C#

  • ゲーム作成に興味がある人

Python

  • 金融やFintechに興味がある人
  • データ分析やAI開発、機械学習に興味がある人
  • 海外でWebサービスを作りたい人(海外ではPythonが標準)

Ruby or PHP

  • Webサービスを作りたい人(国内はRubyやPHPが多い)
  • Webサービスの中でも、データ周りに興味がある人(サーバサイド)

JavaScript

  • Webサービスを作りたい人
  • Webサービスの中でも、デザイン・装飾周りに興味がある人(フロントエンド)

Swift

  • iPhoneアプリを作りたい人

さっくり言うと、上記のような分類になります。これ以外の言語もいろいろありますが、最初に学ぶ言語の候補には入れなくても大丈夫です。

では、各言語の特徴を見ていきましょう。

プログラミング言語の特徴と2019年の現況

Java -昔も今も王道-

時代の趨勢とともに様々な言語が台頭してきますが、昔も今も変わらずシェア1位の王道言語です。今の30代のエンジニアの大半は、最初に学んだのがJavaです。

カバー範囲が広く基本的に何でもできる言語です。大企業の基幹アプリ、つまりその会社の業務で使われる独自アプリがJavaで構築されていることが多いです。そのため人的リソースは常に必要という事情があり、求人は今でも多いです。システムエンジニアとして働いていきたいと考えている方には、最初に学ぶべき言語の第一候補といえます。

難易度は高めです。オブジェクト指向やデザインパターンを学ぶ必要があり、フレームワークも複雑なものが多いです。ただこれらの知識はプロとしてやっていくなら、避けて通れない道であります。

昔からあるということもあり、コードは冗長で複雑になりやすいです。正直、今風の言語とはいえませんが、Javaができるなら他の言語にもすぐ対応できるようになりますので、この辺は気にしなくて大丈夫です。

KotlinやScalaなどJavaから派生し言語もあり、Javaを書けるようにしておけば、この辺りにも対応できるという利点もあります。

同じ用途で使われることが多い対抗の候補としては、C#やScalaなどがあります。

Javaを勉強するのに適した人

– システムエンジニアになりたい人
– ビジネスアプリに興味がある人

C# -意外と使われているオールラウンダー-

C#は、Javaと同じ様な構文、書き方で用途も同じ様なことに使われています。ただJavaよりシンプルで書きやすいです。

開発環境がWindows限定のイメージがありますが、最近はMac対応もされおりMacユーザーでも使えます。

ゲームエンジンのUnityで採用されていることもあり、ゲーム業界で使われることも多い言語です。

C#を勉強するのに適した人

– Javaより少し軽めのオールラウンド言語を学びたい人
– Unityでゲームを作りたい人

Python -データ分析/AIの代表格-

機会学習・AIの開発をやりたい人は、Python一択といっていいでしょう。

金融やデータ分析に強い言語ですが、PythonはWebサービスやインフラ構築や運用にも使われるオールラウンド言語です。GUI周りは弱いので、ゲームやアプリ制作には不向きですが、それ以外の目的があるなら、最初に学ぶ言語としてはオススメの言語です。

言語仕様でフォーマッターが決まっているので、誰が書いてもシンプルでわかりやすいコードになりやすいです。とはいえ、オブジェクト指向や関数型の両方に対応できる言語で、柔軟にコーディングできるようにもなっており、ちょっとしたスクリプトから大規模アプリまで対応できるようになっています。

仕事事情ですが、Pythonに特化した案件はあまりありません。日本ではWebサービスはRubyやPHPで作られることがほとんどで、Pythonが書けるWebエンジニアの需要はあまりありません。データ分析や機械学習の案件は豊富にありますが、これらはPythonというよりはデータ分析や機械学習の理論の理解や経験が求められます。ですので、「Pythonバリバリのプログラマーです」というだけでは、やっていくのは厳しいのが実情です。

Pythonを勉強するのに適した人

– 金融、データ分析、機械学習に興味がある人
– インフラ運用に興味がある人
– スキルの幅を広げたいインフラエンジニア

Ruby -Webサービスの代表的言語-

Webサービスを作りたい、将来的にはWebエンジニアとしてやっていきたいと考えている人には、最初に学ぶべき言語としてRubyが第一候補といえます。フリーランスのWebエンジニア向けの案件は、Rubyが多いです。

対抗の言語としては、PHPがあります。こちらもRubyと同じ用途で、Webサービスのバックエンドで良く使われる言語です。案件も豊富にあります。

RubyとPHPの比較として、PHPの方が簡単で学習コストが低いといわれています。なので、個人的に簡単なWebサービスを作りたいと考えている人には、PHPから勉強するのもありです。

ただプロとしてやっていくつもりなら、Rubyの方をオススメします。Rubyですと、プログラミングの基本と言えるオブジェクト指向の考え方も身につきますし、案件の単価もPHPより高くなる傾向があります。

Rubyを勉強するのに適した人

– Webサービスを作りたい人
– プロのWebエンジニアになりたい人
– Webサービスでデザインや装飾よりデータ処理に興味がある人

JavaScript -Webデザインの基本-

Webサービスで使われる言語です。Webサービスの中でも、デザインや装飾周り、いわゆるフロントエンドで使われます。フロントエンドは技術が乱立気味なのですが、やはりJavaScriptが基本といえます。JavaScriptができれば、他の技術にも対応しやすいので、やはり最初に学ぶべき言語はJavaSciptでしょう。

難易度はそれほど高くはありません。プログラミングをはじめてやるという人は、とっつきやすい言語といえます。

JavaScriptを勉強するのに適した人

– Webサービスを作りたい人
– Webサービスでデータ処理よりデザインや装飾に興味がある人

Swift -iPhoneアプリなら、これしかない-

iPhoneアプリを作りたい人は、これしか選択肢がありません。逆に言うと、目的がそれ以外なら学ぶ必要のない言語です。

開発環境がMacに限定される上に、参考文献も少なめなので、最初に学習する言語としてはあまりオススメはできません。

Swiftを勉強するのに適した人

– どうしてもiPhoneアプリを作りたい人

その他 -マイナーと呼んでいい言語たち-


これら以外にも、言語はいろいろあります。最初に学ぶべき言語としてはオススメできませんが、現場で使われている言語をいくつか紹介します。

  • Go言語(Go lang)
    Googleが作ったシンプルで使いやすい言語です。最近はサーバサイドを中心に使われることも増えてきてシェアを伸ばしつつあります。フリーランスの案件も結構あります。

  • Scala
    Javaの後継として登場し、基幹アプリで使われる事例が増えてきました。Javaを関数型に対応させた言語として紹介されることもありますが、はっきり言ってJavaとは別物です。現場ですぐにScalaを使う必要があるという事情がなければ、Javaからじっくりとオブジェクト指向を学んでいく方がいいでしょう。

  • C++
    オブジェクト指向の言語ですが、Javaよりも複雑なコードになりやすいです。据え置きゲームの制作に使われることが多いです。

  • COBOL
    汎用機(メインフレーム)、いわゆるレガシーシステムの開発に使われています。オブジェクト指向の概念が登場する前の昔の言語と言うこともあり、メンテナンスが困難な複雑なコードになりやすいです。現場で使われているという理由がないかぎり、学ぶ必要はないでしょう。

開発言語ではない言語たち

プログラミングに分類されることもありますが、開発言語とは呼べない言語があります。

シェルスクリプト、Bash、SQL、JCLなど、ちょっとした処理やデータ操作に使われる言語です。これらの言語は、インフラの運用で使われることは多いですが、開発者にはあまり縁がないといっていいでしょう。

概念的に知っておいた方がいいものではありますが、ちょっと調べれば書くことができますのでプログラミング勉強の題材にはなりません。

まとめ

以上、代表的なプログラミング言語の紹介になります。

プログラミング学習の言語選択の参考になれば幸いです。

ABOUT ME
tara
tara
年収360万円でIT業界のキャリアスタート
SES -> Web業界 -> 大手メーカー -> フリーランス
と経験してきて、現在は年収1000万円を越えました。

エンジニアのキャリアアップに役立つ情報を発信していきます。