【プログラミング未経験者・初心者向け】プログラミング言語はどう選ぶの?

【プログラミング未経験者・初心者向け】プログラミング言語はどう選ぶの?

Programing

当記事はプログラミングを始めたばかり、またはこれから始めようと考えている方の中でどの言語を学べばよいのか悩んでいる方に向けて書かれています。

プログラミング初学者の方はこのような悩みを抱えている方が多いのではないでしょうか?

HTML?Ruby?Python?
色々耳にするけどよくわからない!
自分が学ぶべき言語はどれなんだろう?
そもそもプログラミング言語で何ができるんだろう?

実は、この記事で紹介する『プログラミング言語の選び方』を参考にすると、誰でも自分にあったプログラミング言語に出会うことができます!

なぜなら、僕自身もプログラミングスクールに通うことなく学生時代に独学によってスタートアップ採用、新卒採用内定を獲得しました。

それは独学であったとしても自分の目標にあったプログラミング言語に出会うことができ、モチベーションを維持した学習ができたためです。

当記事では、プログラミング言語の選び方のポイントを3つ紹介して、最後には筆者自身のオススメの言語もご紹介いたします。

読み終える頃には、今ある『どのプログラミング言語を勉強すればよいのだろうか』という不安は解消され、今からプログラミング学習の次のステップ、未経験の方は大事なファーストステップを踏めるはずです!

では、本題へと移って参りましょう!

『言語』を整理しよう!

Programing

この章では『言語』の整理を行なっていきます。

というのも、身の回りやTwitterにいる初学者の多くが言語の整理がついていないために頭を抱えてしまっている現状があります。

そのため、まずはその頭の中にある物を整理していくことからはじめていきましょう。

まず、プログラミング言語使い方をせずに『言語』といった表現を使っていることにお気付きですか?

なぜ、このような使い方をしているのかというと多くの人がプログラミング言語と他の言語をごっちゃ混ぜにしてしまっていることが多いからです!

そこを一旦整理していきましょう。

多くのプログラミング初学者の方がこんがらがってしまうのは以下の4つ挙げられます。

  1. プログラミング言語(コンパイラ型)
  2. プログラミング言語(インタプリタ型)
  3. マークアップ言語
  4. データベース言語

以下で、それぞれ簡潔に説明していきます!

言語① : プログラミング言語(コンパイラ型)

プログラミング言語は『人間向け』の言語であり、機械を動かすには一旦『機械向け』の言語に直す必要があります。

その『機械向け』の言語に直すやり方は大きく、『一括』と『1命令ずつ』の2パターンがあります。

前者の『一括』で人間向け言語を機械向け言語に直すやり方を『コンパイル方式』と呼びます。

ここではコンパイル方式を採用する人間向け言語をコンパイル型言語とします。

具体的には、C、C++、C#、Java といったような言語がコンパイル型言語に属します。

言語② : プログラミング言語(インタプリタ型)

次に先ほどの後者である『1命令ずつ』人間向け言語を機械向け言語に直すやり方を『インタプリタ方式』と呼びます。

ここではインタプリタ方式を採用する人間向け言語をインタプリタ型言語とします。

ここで同時に覚えていただきたいのが『スクリプト言語』です。

スクリプト言語とは、簡易的な記述でプログラムを実行できる言語を指します。

この『インタプリタ言語』は多くの場合『スクリプト言語』でもあるため、ここを混同して覚える人もいます。

同意で扱ってる場合も多々あるため、頭に入れておくべきでしょう。

具体的には、JavaScript、Python、Puby、PHP といった言語があります。

コンパイル型、インタプリタ型共通でプログラミング言語は『ループ』『条件分岐』『繰り返し』を組み合わせることでコードを組み立てていく特徴があります。

これが以下で説明するマークアップ言語やデータベース言語との大きな違いとなります。

言語③ : マークアップ言語

マークアップ言語はプログラミング言語に属していません。

マークアップ言語とは構造化するための言語で主にWEBサイト制作に使われます。

WEBサイトはマークアップ言語で構造化され、CSSというもので色付けられ、JavaScriptによって動きをつけることで完成します。

具体的には、HTML、XMLといった言語があります。

言語④ : データベース言語

最後にデータベース言語です。

マークアップ言語同様にプログラミング言語に属していません。

具体的には、データベース言語は以下の3つの言語から構成されています。

  1. データ操作言語( Data Manipulation Language : DML )
  2. データ定義言語( Data Definition Language : DDL )
  3. データ制御言語( Data Control Language : DCL )

これらの言語を組み合わせながら、データベース内にあるデータを操作します。

様々な角度から言語を選ぶ方法を伝授!

次に実際にどの言語から学べばいいのかについて解説していきます。

プログラミング言語の選び方は、大きく分けて3つの方法があります。

選び方を1つずつ解説して、実際のデータ付きでご紹介していきます。

プログラミング言語の選び方

その① : 作りたいものから選ぶ

その② : 人気のある言語を選ぶ

その③ : 学びやすい言語を選ぶ

これらについてそれぞれ解説していきます!

言語の選び方① : 作りたいものから選ぼう

まずはどの言語では何が作れるのかがわからないと選ぶことはできないので、簡潔にまとめていきます。

" アプリ " で使用される言語

app

アプリ言語名具体例
WEBアプリRuby食べログ、クックパッド、Twitter
PHPFacebook、ぐるなび、Slack
スマホアプリSwiftiOSアプリ
KotlinAndroidアプリ
デスクトップアプリC#金融機関の顧客管理システム
Java情報システム

【ポイントを抑える!】

Ruby

⇨ 日本人が作った言語、日本語のドキュメントも多く勉強しやすい。

PHP

⇨ WEBサイトの3割を占めるWordPressで使用されている。WEBサイトを作るならPHP。

Swift/Kotlin

⇨ これからの時代はスマホにサービスが集中するためこれらの言語が主人公。

C#

⇨ 金融機関でよく使われる、Unityというゲームを作るフレームワークにも使われている。

Java

⇨ 基本何でもできる、新卒研修の王道。OSに依存しない強みがある。 

" AI、機会学習 " で使用される言語

data

言語名用途
PythonAI、機会学習、統計処理
R統計処理

【ポイントを抑える!】

Python

⇨ 今時流に乗っている機械学習、画像認識、統計で用いられるPython。

R

⇨ 大学の統計学の講義でよく使われている。僕自身も大学で学んだ。

" IoT " で使用される言語

IoT

言語名用途
C機関システム、ハードウェア
C++高速処理

【ポイントを抑える!】

C

⇨ コンパイラ型でも特に機械に近い。コンピュータの動きを理解するのに最適。

C++

⇨ 処理速度早いので高速処理システムに向いている。競技プログラミングで主流。

言語の選び方② : 人気のある言語から選ぼう

結論、人気のある言語はそれだけ需要があるということなので選択に失敗なしです。

プログラミング言語の人気度を知るには TIOBE Index が参考になります。

https://www.tiobe.com/tiobe-index/https://www.tiobe.com/tiobe-index/

ranking
(参考 : https://www.tiobe.com/tiobe-index/)

このグラフで着目すべき点は

プログラミング言語の選び方

着眼点① : CやJavaなどコンパイル型は比較的上位

着眼点② : 統計に強いPythonが上位、Rも急上昇

着眼点③ : iOSアプリに強いSwiftが上位

ここからわかることは人気のプログラミング言語はコンパイル型言語のような長年安定して上位にいる言語がある一方で、時代の流れに大きく影響されるということです。

日々のニュース等からの情報収集も怠らないようにしましょう。

言語の選び方③ : 学びやすい言語を選ぼう

結論、学びやすい言語とは参考コードと仲間の多さによって決まります。

というのも、プログラミング初学者の9割が最初の3ヶ月で挫折をしてしまうという現状があります。

その原因として大きく以下の3つをあげることができるでしょう。

原因① : 独学でエラー時に自力解決ができない

原因② : 学習モチベーションが続かない

原因③ : 学習プランがわからない

これらの原因を解決してくれるのが、参考コードと仲間の多さです。

参考コードが多いと沼にはまらない?

言語に関してはググれば多くの文献や、同じ場所でつまづいた人の情報がみれるものもあれば、ウェブ上には少ないため、参考書を買って自力で進めていくような言語もあります。

僕自身独学でのプログラミング学習で、3日間も同じエラーでつまることがありました(笑)

僕は個人で沼でもがくことができたからよかったものの、そのような困難が9割の脱落を生み出す原因の一部になってしまっています。

そのため、『自力で頑張れば乗り越えられる』ぐらいの参考コードがWEB上に転がっていることがプログラミング継続の助けとなるため、言語選択のポイントとなります。

初学者はモチベーション維持が大変!

初学者はモチベーションを維持することが極めて難しいです。

というもの、初学者は目の前の木を見ることしかできません

その木と木を合わせながら林、森へと大きくして何か成長を実感できる制作物を作り上げるのには時間がかかります。

そのモチベーションを維持するのは仲間の存在です。

『もくもく会』や『ハッカソン』、『プログラミング団体』のイベントを耳にしたことがありますか?

言語のコミュニティが盛んであればあるほど、毎週のようにイベントが行われ、他の学習者や、現役のエンジニアと出会う機会を作ることができます。

僕自身大学時代に『次世代ラボ』『ジ・アンティフォン』という2つのプログラミング団体を創設しました。

そこではこのような経験をしました。

メリット① : 常に少し前に進んでいる仲間を参考にできた

メリット② : 優しい社会人がすぐに質問に答えてくれた

メリット③ : 実際にアプリを作成し、実力がついた

以上のような経験をしたからこそコミュニティの大切さを実感しています。

プログラミング言語は参考コードが多く、コミュニティが活発な言語を選びましょう。

まとめ : 自己分析と時代の流れチェックしよう!

今回は、初学者のファーストステップとなるプログラミング言語の選び方を紹介していきました。

内容をまとめると以下の通りです。

✔︎ プログラミング言語の整理

① : プログラミング言語(コンパイラ型)
② : プログラミング言語(インタプリタ型)
③ : マークアップ言語

✔︎ プログラミング言語の選び方

その① : 作りたいものから選ぶ
その② : 人気のある言語を選ぶ
その③ : 学びやすい言語を選ぶ

✔︎ プログラミング言語の用途

その① : アプリ
その② : AI、機械学習
その③ : IoT

✔︎ 人気のあるプログラミング言語

その① : 安定のコンパイル型 ⇨ CやJava
その② : AI、機械学習、統計 ⇨ PythonやR
その③ : iOSアプリ ⇨ Swift

✔︎ プログラミング言語の学びやすさ

その① : 参考コードの多さ
その② : 言語コミュニティの活発度

これらを初学者のうちにしっかり抑えて、自分にとって適切な言語を選択できたことで、独学でもスタートアップ採用、IT企業内定を獲得することができました。

自分にあった言語を見つけ出し、学習の第一歩目を踏み出しましょう!

今回は以上です。

最後までお読みいただきありがとうございました


注 ) 当記事画像にはstories by Freepikの画像が使用されています。
‘Illustration by Freepik Stories’ (https://stories.freepik.com/)

最新情報をチェックしよう!