teratailにある「どのプログラミング言語を学ぶべきか」系質問を集めてみた。

## 何から始めるべきか、それが問題だ

世の中には実に多くのプログラミング言語があります。マイナーなモノからメジャーなモノまで実に様々ですが、その中から主要なプログラミング言語を選んでと言われても、人によっては数十個は簡単に出てくるのが現状です。そんな状況では、プログラミング初心者が最初に学ぶのに、どの言語を選択すれば良いのかは大変悩ましいことだと思います。

わからないことを調べることはプログラミングを行う上での基本中の基本ですが、単に調べるだけでは、その情報の多さに取捨選択が難しいというのがあります。他にも、下記の理由でネット上の情報は眉唾物が多いです。

* 情報が古い
* 無批判(マサカリ拒絶)
* ステマ(特定商品の宣伝)
* 低品質なキュレーション(編者に技術力が無い)
* 情報過多または情報不足

そんなときは、人に聞いてみるというのも一つです。でも近くに詳しい人がいないと言うこともあります。そんなときは[teratail](https://teratail.com/)や[QA@IT](https://qa.atmarkit.co.jp/)を利用するのが良いでしょう[^1]。


## tertailの質問を集めてみた

というとこで、本題です。QA@ITはあまり利用しないのでteratailでそういった質問を集めてみました[^2]。これからそういった質問をしようとする場合に、参考にしてみてください。

### 最初に学ぶべき言語

これからプログラミング言語を始めるという人が初めに何を学んだら良いのかという質問です。リンクの後ろは質問者の状況等です。

* 2015/04/21 [初心者に優しい言語はどのようなものがありますか？](https://teratail.com/questions/8889) Mac OS X
* 2015/04/22 [初心者が勉強するのに良いプログラミング言語は何ですか？](https://teratail.com/questions/8933) 当時大学生
* 2016/05/08 [何から学べばいいですか　プログラミング初心者です](https://teratail.com/questions/34358) Unityいじってます
* 2017/10/09 [プログラミング言語について](https://teratail.com/questions/95581)
* 2019/08/23 [プログラミング言語について](https://teratail.com/questions/207799) 大学生

### 次に学ぶべき言語

一つのプログラミング言語を終えて、次にどうすれば良いのかという質問です。何を学んできたのかは質問者によって違いがありますので、その違いによる解答の違いも参考になるかも知れません。リンクの後ろは質問者が習得済みの言語です。

* 2014/11/22 [PHPの次に覚えるべき、おすすめの言語は？](https://teratail.com/questions/3592) PHP
* 2015/08/28 [c言語の次は？](https://teratail.com/questions/15322) C
* 2015/12/02 [C言語を学んだ人に新しく始めるおすすめの言語](https://teratail.com/questions/21539) C
* 2016/01/18 [次に学習すべき言語](https://teratail.com/questions/24986) C
* 2017/05/10 [何を学ぶべきか](https://teratail.com/questions/75542) COBOL, JavaScript
* 2019/07/22 [オブジェクト指向だけ学んだ学生が競技プログラミングを含めて、プログラミング技術向上のために学ぶべき関数型言語](https://teratail.com/questions/201992) Kotlin, Go, JavaScript -> 関数型言語

### 特定の何かを作るのに学ぶべき言語

作りたいモノが決まっている場合です。何を作りたいかによって千差万別の回答になると思います。学ぶと言うよりも何を使えば良いのかも含めています。リンクの後ろは作りたいモノです。

* 2014/08/05 [初心者が一人でWebアプリを作れるようになるにあったて](https://teratail.com/questions/1133) Webアプリ (PHP or Ruby)
* 2014/09/08 [サーバー開発で使用する言語は、どれを使えば良いですか？](https://teratail.com/questions/1919) Webアプリサーバーサイド
* 2015/04/01 [今から始めるプログラミング初心者の大学1年生（情報科）](https://teratail.com/questions/8128) ゲーム
* 2016/07/27 [２D格闘ゲームが作りたい（初心者）](https://teratail.com/questions/42448) 2D格闘ゲーム
* 2016/08/14 [超初心者質問です。どの言語の取得が必要になりますか？](https://teratail.com/questions/44309) Webアプリ(メルカリのような)
* 2016/10/03 [プログラムの勉強はなにから始めるべきですか?](https://teratail.com/questions/50085) Webサイト
* 2017/02/11 [どの言語を学べばよいか教えてください。](https://teratail.com/questions/65421) Webアクセス補助
* 2017/02/15 [cocos2dxについてどの言語を選択すべきでしょうか？](https://teratail.com/questions/65897) Cocos2d-x
* 2017/04/13 [プログラミング言語について](https://teratail.com/questions/72388) ゲーム (ただし開発はWebで)
* 2017/05/27 [WEB APIを利用する場合に最適な言語はなんでしょう](https://teratail.com/questions/77973)　Web API
* 2017/07/27 [バッチファイルでどの言語を使うのがよいか](https://teratail.com/questions/85968) バッチ処理
* 2017/10/12 [ウェブサービスを作りたい。勉強が必要な言語は？](https://teratail.com/questions/96086) Webサービス
* 2019/06/25 [勉強するのはJavaか、Pythonか。](https://teratail.com/questions/196848) AI Java or Python
* 2019/07/05 [【初心者】学習すべき言語、及びその学習方法について](https://teratail.com/questions/198839) 会員制Webサイト
* 2019/07/13 [ゲームを作るときの言語](https://teratail.com/questions/200316) シューティングゲーム
* 2019/07/26 [プログラミング言語学習について](https://teratail.com/questions/202632) ゲーム
* 2019/09/05 [言語選択　 PHPかRubyどちらが将来的に良いかまた初学者には良いか　　 それぞれの違いがよくわからない](https://teratail.com/questions/210119) Webアプリ PHP or Ruby

### 特定目的で学ぶべき言語

何か具体的に作りたいものがあるのでは無く、もっと抽象的な将来の目標がある場合です。リンクの後ろは目標です。

* 2015/03/09 [javaとc++、どちらが統計解析、機械学習、データマイニングに向いていますか？](https://teratail.com/questions/7532) 統計解析、機械学習、データマイニング (Java or C++)
* 2015/09/02 [C系の言語ならどれを勉強すべきでしょうか？](https://teratail.com/questions/15564) C系
* 2019/05/23 [プログラミング言語CとJavaについて](https://teratail.com/questions/190916) リモートワーク C or Java
* 2019/07/10 [日本で働くためにはどのプログラミング言語を学ぶべきですか？](https://teratail.com/questions/199752) 日本で就職
* 2019/08/31 [プログラミングスクールでの言語選びについて](https://teratail.com/questions/209286) スクルーに通ってWeb系就職に就職
* 2019/09/11 [ゲーム制作に必要なプログラミング言語について](https://teratail.com/questions/211360) ゲーム会社に就職

## 既に質問があるからと言って新たに質問してはいけないわけではない

このような質問が許されていないQAサイトでは、同じ事を質問することはタブーとされ、速攻でクローズされます[^3]。しかし、この学ぶべき言語というものは時代の移り変わりによって変わっていくものであり、また、状況によっても大きく異なる場合があるものでもあります。ですので、新たに質問すること自体が悪いことではありません。そのとき、参考にした質問と回答、それらとの違い等を質問文に明記してあれば、あなたが求めるより良い回答を得ることができるでしょう。

最後に、この系の質問には**正解がありません**。常に主観的であり、絶えず移り変わるものであり、時や場所によって正しさが異なるものです。全ての回答は、真と偽が混ざった不確定な状態で存在し続け、全ての観察者が判断を完了するまでは、それが定まることはありません。だからこそ、最後はあなた自身の判断で決めなければなりません。それだけは忘れないようにしてください。

---

質問全てを見つけることができたわけではありません。抜けている質問がありましたら、編集リクエストやコメントをお願いします。

この記事は、この系の質問へ回答するための便利リンク集として作成されました。ご自由にお使いください。

[^1]: [スタック・オーバーフロー](https://ja.stackoverflow.com/)ではオフトピックなので、質問してはいけません。
[^2]: [スタック・オーバーフロー](https://ja.stackoverflow.com/)ではオフトピックなので、そのような質問は閉じられています。
[^3]: [スタック・オーバーフロー](https://ja.stackoverflow.com/)は不変的な質問と不変的な回答を求めています。彼らが求めるのは真理であり、真理なきものを拒絶します。