エンジニアステップ

初心者・未経験エンジニア向けの技術ブログ

初心者向けプログラミング言語選び方【データ・ランキングから考えよう】

「何を作りたいか決まっていない」初心者向けに、プログラミング言語の選び方をまとめました。

利用者が多く廃れにくい言語を選ぶのがオススメです。

※ちなみに筆者の私は今まで仕事 / 仕事で「Java, C, C++, C#, Python, JavaScript」などの言語に触れてきました。

 

先に結論から言うと、

  • 何でも良い人→HTML, CSS, JavaScript
  • WEBエンジニアになりたい人→Ruby
  • アプリを作りたい人→Swift, Kotlin
  • 根気ある人→Python

という感じですね。

 

 

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

プログラミング言語の人気度は

  • IEEE:有名な学会
  • stackoverflow:世界一のプログラミング関係のQAサイト

の情報をもとに考えましょう。

 

以下、ランキングです。

screenshot of the top ten programming languages app

引用元:https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages

 

f:id:alpacajp:20190402054350p:plain

引用元:https://insights.stackoverflow.com/survey/2018/

 

プログラミング言語は何100とありますが、とりあえず↓

HTML、CSS、JavaScript、Java、Python、C#、PHP、Ruby、C++、C、Swift、Go…あたりから選べばOKです。

 

プログラミング言語を選ぶ前に知っておくべきこと

プログラミング言語を選ぶ前に知っておくべきことです(個人的な見解あり)

  • プログラミング言語は一つ学習すれば、他の言語も"容易"に学習できるので、そこまで深く考えなくてOK
  • なりたい職種、入りたい企業、作りたいもの…から言語を選ぶのがオススメ
  • 技術の流行り廃りがあるので注意
  • HTMLやCSSはプログラミング言語ではない

 

では、各言語についての概要と、仕事、難易度、オススメ度を紹介していきます。

 

HTML(マークアップ言語)

HTMLはプログラミング言語ではなく「マークアップ言語」です。

簡単に言うと、Webページ(Webサイト)の作成に使われる言語です。

 

どんな職種があるのか?どんな仕事があるのか?

  • コーダー(Webページのデザインをコードに変換する仕事)
  • フロントエンドエンジニア
  • Webを使った開発業務(バックエンドエンジニアも)

の3種類です。

 

今やWeb技術は、Webエンジニア以外の現場でも使われています。

  • Webサイト制作
  • Webサービス制作
  • Webアプリ制作
  • WebAPI制作

など多種多様なWebの仕事があります。

 

ということで、HTMLはとりあえず学んでおいて損はない言語です。

プログラミング言語ではないですが、プログラミング未経験者が「コード」を書く導入としては良いと思います。

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★☆☆
  • おすすめ度:★★★

 

CSS(スタイルシート言語)

CSSもプログラミング言語ではなく「スタイルシート言語」です。

HTMLを学習する際に必ずセットで学習する必要することになります。

 

簡単に言うと、HTMLで作ったWebページの見た目を変える言語です(文字の色や配置、大きさなど)

 

どんな職種があるのか?どんな仕事があるのか?

  • コーダー(Webページのデザインをコードに変換する仕事)
  • フロントエンドエンジニア
  • Webを使った開発業務(バックエンドエンジニアも)

の3種類です(HTML同様です)。

 

CSSだけ書けても仕事になることはないので、HTMLも必須になります。

また、バックエンドエンジニア(システムの裏側のロジックを組んだりする人)も、CSSを触ることはあります。

※バックエンドが出来る人は、CSSはすぐに理解できるはず

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★☆☆
  • おすすめ度:★★★

 

JavaScript(プログラミング言語)

これ以降紹介する言語はプログラミング言語です。

まずは、JavaScriptを紹介します。

 

 

StackOverflowでも人気ですし、しばらく廃れることはないと思います。

最新の技術、フレームワークが次々と出てくるのでキャッチアップは大変ですが、初心者が「とりあえず習得」するのはそこまで難しくないです。

 

環境構築も簡単(ほぼ不要)で、簡単に試すことも出来るので、初心者にオススメの言語の一つ。

 

どんな職種があるのか?どんな仕事があるのか?

  • コーダー
  • フロントエンドエンジニア
  • バックエンドエンジニア

の3種類です。

 

イメージとしては、HTMLとCSSで作ったWebページを「動的に動かす」ことができる感じ。

普段Webサーフィンをしていて「なんかアニメーションがたくさんあって格好良いな」と思うサイトは、このJavaScriptを使っている可能性が高いです。

 

※ちなみにフレームワークとして有名な「Angular React Vue.js」あたりを勉強するとフロントエンドの開発ができますね

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★★☆
  • おすすめ度:★★★

 

PHP(プログラミング言語)

PHPはWebサイト制作でよく使われている言語です。

今なお、案件はたくさんあり、求人数も多いのですが「保守案件」が多い印象です。

2000年代に作られた古いWebサイトの修正なども、かなりシンドい仕事も多々あると思います。

 

ただ、Webサイト作成時によく使われる「Wordpress」の開発にはPHPは必須です。

なので、WEBサイト制作&Wordpress案件をやりたい人にはオススメです。

 

どんな職種があるのか?どんな仕事があるのか?

  • コーダー(というよりWordPress案件ができるWebサイト製作者)
  • バックエンドエンジニア

 

Webサイト制作をやっている人が、HTML&CSSのコーディングから一歩進んでやるのに良いと思います。

※一方、システムやアプリを作るキャリアを歩みたい人にはオススメできません

 

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★☆☆
  • おすすめ度:★☆☆

 

Ruby(プログラミング言語)

Rubyは、日本人プログラマのMatz(まつもと ゆきひろ)さんが作成した、国産プログラミング言語です。

非常に「人間に優しい(書きやすく読みやすい)」言語という印象。

一時期、日本国内で大人気だったため、

  • 日本人向けの情報が多い(QAサイト、書籍)
  • プログラミングスクールなどでの教材が多い

という状況でして、プログラミング初心者はとっつきやすいと思います。

 

また「Ruby On Rails」というフレームワーク(便利なパーツの集まりみたいなもの)がかなり有名です。

Railsを使えば、Webサービスの開発はかなり簡単にすることが出来ます。

 

どんな職種があるのか?どんな仕事があるのか?

  • バックエンドエンジニア
  • Webサービスを作成したい人

 

今なお日本人向けの求人が多く、未経験者も採用されやすいので、Ruby(というかRuby On Rails)を学習するのはおすすめです。

 

ただ、技術トレンドは次の言語(GoやKotlinなど)に移ってきている感じがします。

現状としては、最先端ベンチャーの次点のベンチャー企業で人気なイメージです。

 

まだ将来性はあると思いますし、PHPの様に、将来的にも保守案件も豊富にあるはずなので、職にはしばらく困らないチョイスだと思います。
 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★★☆
  • おすすめ度:★★★

 

Python(プログラミング言語)

プログラミング言語の中でもPHP、RubyはWebエンジニアがよく使っているイメージです。

一方、PythonはAI分野(機械学習分野)で人気の言語です。

 

特徴としては

  • アメリカの大学の入門用プログラミング言語として人気
  • Google社内でも使われている
  • 他の言語よりも「厳密」なので、初学者が勉強しやすい

です。

 

プログラミングの考え方を学ぶのにはかなりおすすめですが、将来的な仕事(AI分野)を考えると、選ぶのはなかなか難しいかも。

 

というのも、AI分野は、プログラミングの理解に加えて、統計学(数学)の知識も必須なので、その部分でハードルが高いです。

 

どんな職種があるのか?どんな仕事があるのか?

  • バックエンドエンジニア
  • AI関係(機械学習分野)に携わりたい人
  • 自分で簡単なツールを作りたい人

 

Pythonは、機械学習関係のライブラリ(便利ツール)が豊富なので、今や機械学習やるなら問答無用でPythonというイメージです。

そのため、日本の求人などを考えても、Python=機械学習やりたい人という感じがしますね。

 

先程も行った通り、独学だとほぼ挫折すること間違いなしだと思うので、プログラミングスクールに通うか、仕事の中で学習していくのが良いかなと思います。

ただ、

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★★★ ※機械学習も含めて考えると
  • おすすめ度:★★☆

 

JavaとKotlin(プログラミング言語)

Javaは、今まで紹介したプログラミング言語(PHP、Ruby、Pythonなど)と違って、コンパイラ言語と呼ばれる言語です。

イメージとしては「間違いがないようにしっかり動かす」システムでよく使われる感じです。

 

Webエンジニア系というよりも、システムインテグレータ(SIer)の分野でよく使われる言語です。

プログラマとして成長するのであれば、一度は学習しておいたほうが良い言語だと思います(ただファーストチョイスとしてはおすすめしません)

 

また、最近はAndroidアプリ開発でも使われます。

ただ、法律とか企業間のあれこれとか面倒くさい話もあり、最近はKotlinというJavaに似た言語が人気です。

なので、Javaを今から学ぶなら、Kotlinを学んだほうが良いでしょう。

 

どんな職種があるのか?どんな仕事があるのか?

  • SIerになり、業務系システムに関わりたい人
  • Androidアプリを作る人

 

Javaは、SIerの道に進みたいなら一番オススメな言語です。

  • 大手企業の業務システム(社内で使うシステム)
  • 組込みシステムのAndroidフレームワークで使う(メーカーの製品のソフトウェアの部分)

でよく使われています。

 

一方、Androidアプリを作りたいなら、Kotlinを学ぶのが良いでしょう。

いずれにせよ、プログラミング未経験者が「プログラミングに慣れる」言語としては、あまりおすすめできませんね。

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★★★
  • おすすめ度:★☆☆

 

CとC++(プログラミング言語)

C、C++は難しいので初心者は辞めておきましょう(以上)

 

どんな職種があるのか?どんな仕事があるのか?

  • 組み込み系システム開発者
  • 実行速度が大切な分野のソフトウェアの開発者

 

日本の大学のコンピュータサイエンス専攻では、Cの授業でプログラミングを学ぶことも多いです。

ただ、他の言語と比較すると「かなり難しい」ので、全くおすすめしません。

※コンピュータの基礎部分は分かりますが、挫折率高いので…

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★★★
  • おすすめ度:★☆☆

 

C#

C#(シーシャープ)は、CともC++とも違う言語です。

※どちらかというと、Javaに近いですね

 

マイクロソフト関係の仕事に付きたいなら、これがファーストチョイスです。

「.NETFramework」というフレームワークも学ぶ必要があります。

 

ドキュメントも豊富ですし、いわゆるプログラミング的な考え方を学べます。

個人的にはけっこう好きな言語です。

 

どんな職種があるのか?どんな仕事があるのか?

  • マイクロソフト関係のシステム開発(業務系多め)
  • Unityを使った開発をしたい人
  • VRやゲーム作成をしたい人

 

Unityを使ってゲームやVRを開発したい人が選ぶのはありです。

また、マイクロソフト系の環境の会社は多いので、SIerになり業務系システムに携わりたい人がC#を学ぶのは良いと思います。

※それ以外の人にはオススメしません

 

プログラミング言語の難易度とおすすめ度(★が多いほど高い)

  • 難しさ:★★☆
  • おすすめ度:★★☆

 

その他(Swift, Go)

その他のプログラミング言語「Swift」や「Go」も人気です。

簡単に説明すると

  • iOSアプリを作りたい→Swift
  • 技術感度が高い会社で働きたい→Go

という感じですね。

 

勝手なオススメ言語まとめ

最後に、勝手なオススメ言語を人のタイプ別に選んでみました(独断です)

 

何でも良い人

何でも良い人は

  • HTML
  • CSS

で、まずはWebページを作ってみるのが良いと思います。

その後に、JavaScriptを学んで、Webページを動かしてみるのが良いかな、と。

続けていけば、フロントエンドエンジニアへの道にも繋がります。

 

とりあえずWebエンジニア→フリーランスエンジニアになりたい人

Webエンジニア→フリーランスエンジニアになりたい人は

  • Ruby(Ruby on Rails)

を学ぶのがおすすめです。

まだまだ日本国内では求人数も多く人気ですし、未経験者が採用されやすい雰囲気です。

学習教材や記事も多いので、つまずいたらググれば解決しやすいです。

 

あと、自分でWebサービスを作れるようになるので、楽しいと思います。 

 

スマホのアプリを作りたい人

スマホのアプリを作りたい人は

  • iOSアプリ(iPhone)→Swift(XCode)
  • Androidアプリ→Kotlin

ですね。

ただ、ちょっと学習が難しいかもしれません。

 

根気はあるので今後伸びる分野を学びたい人

根気はあるので今後伸びる分野を学びたい人は

  • Python

が良いかなと思います。

機械学習分野の伸び率と、参入障壁の高さを考えると、しばらくは食いっぱぐれないと思います。

 

 以上、初心者向けプログラミング言語選び方【データ・ランキングから考えよう】というお話でした。