【おすすめはJava】初めて勉強するプログラミング言語はどのように決めたらいいのか考えてみる

プログラミング言語っていろいろあるけれど
プログラミング言語を勉強してみようと思い立った時に、どの言語を勉強しようか選ぶのに時間がかかるというのはあるあるなのではないでしょうか?なぜなら世界にはたくさんのプログラミング言語があり言語ごとに長所と短所がそれぞれあるからこそ、学ぼうとしている人の属性によって最適解が変わってしまうからだと思います。
プログラミング未経験者が、下のような質問をプログラマのAさん、Bさん、Cさんにしてみようと思います。

プログラミング言語っていろいろあるみたいだけど、何を勉強すればいいのかな?
さて、どんな答えが返ってくるでしょうか?
Aさん「これからの時代はAIだしPythonを勉強しておけば」
Bさん「いろいろな用途があるJavaを勉強しておけば」
Cさん「簡単そうだしJavaScriptを勉強しておけば」

え、みんな言うこと違うんだけど…
ばらばらな答えになってしまいました。ただ、それも致しかたない程度にプログラミング言語の種類が多いのです。
では、初めの一歩として勉強を始める言語はどのように決めたら良いのでしょうか?
そのためには、それぞれの言語が得意な分野と自分がチャレンジしたい分野。そしてその言語にどれほどのニーズがあるのか。これらを比較して決めて良いのではないかと思っています。

どうしても迷うなら個人的にはJavaをおすすめします。
理由は後ほど。
言語ごとに得意な分野はそれぞれ違うけれど
それぞれの言語にはよく使われる分野があります。Windowsデスクトップアプリを作りたいならC#、Webアプリを作りたいならPHPやJavaScript、ExcelをはじめOfficeアプリのマクロを作成したいならVBA、Androidアプリを作りたいならJavaやKotlin、iPhoneアプリを作りたいならSwiftやObjective-C、データ分析にはPythonやR、といった具合です。
もしプログラミング言語を勉強するなら、自分が作りたいと思っているアプリやサービスを作ることができる言語だと覚えるモチベーションが上がりそうですよね。
逆に特に作りたいアプリやサービスが無い人だと(思い浮かばない人も含む)、どの言語を勉強しようか悩むかと思います。そうなのであれば、まずはJavaを勉強することをおすすめします。
初めて勉強する言語にJavaを選ぶメリット
JavaはAndroidアプリやWebアプリ、デスクトップアプリなど作ることができるものが多いので覚えてしまえば仕事を含めて後々活かす機会が多いと見込まれることが一つ。
またJavaScriptやC#、Swiftなどの派生元となった言語でありJavaを覚えれば他の言語を勉強することになった際も難なく進められると思います。

個人的に勝手に方言と呼んだりするのですが、異なるプログラミング言語でも同じ(もしくは似たような)機能を提供する文法があったりします。それって日常会話での方言と一緒だと思いませんか?
ある言語一つをしっかり学んでみると
プログラミング言語は常々バージョンアップを続けています。言語仕様として改善が続いているのです。
私が初めてJavaの勉強をした時、バージョンはJava7でした。try-with-resourcesという構文が追加されたバージョンですね。

try-with-resources文。今も、仕事で書くJavaのプログラムでお世話になっています。
変数があって繰り返しの構文(for文やwhile文)があって、条件分岐(if文やswitch文)があって。少数のそれらのみで実現可能なシンプルな処理ロジックならば、言語のバージョンアップをそこまで気にしなくても良いのです。
例えばJavaだと、Java8以降では
- ラムダ式の導入
- メソッド参照の導入
- 関数型インタフェースの導入
- ローカル変数の型推論の導入
- switch式の導入
- パターン・マッチング(Pattern Matching)の導入
などなど、複雑化していく処理ロジックを容易に実現するための仕組みが言語のバージョンアップで実現されていきます。
仕事でプログラムを書く場合は言語のバージョンが指定されてしまっている場合が多いですが、一から勉強するのであれば最新のバージョンを使用して導入されている言語仕様を理解すると良いと思います。
すると、〇〇という機能の実装はJavaの方が書きやすかったという具合に後々実装のしやすさという観点でプログラミング言語を比較することができるようになります。
まとめ
今回は、初めてプログラミング言語の勉強をするなら何を選べばよいのかという考え方を。また、選んだからにはしっかり学んでみることの大切さをお伝えしてみました。
私も仕事で様々な言語を覚える必要がありましたが、基本の言語をしっかり理解を深めていたからこそ、他の言語に触れても難しさは特に感じたことはありません。

言語が違っても同じことは基本的にできるはずですからね。
この記事が誰かの参考になれば幸いです。それでは。