1.はじめに

MENTAでメンターとして活動を初めて3ヶ月目へと突入しました。
Twitter上で拝見したり、メンティーの方からいただいたりする質問で「なんのプログラミング言語を学べばいいでしょうか?」というものがあります。
私の持論ではありますがここでお答えしたいなと思いタイムラインにて記事を書かせていただきました。
※持論なのでもちろんポジショントーク満載です!異論は認めます!

MENTAには私以外にもプログラミングを教えているメンターの方がたくさんいらっしゃると思いますので、ぜひこのコメント欄を利用してこのタイムラインに対してご自身の考えを聞かせていただけると大変ありがたいです。

2. 学ぶプログラミング言語の決め方

プログラムを学習したい方はおそらく何かしらの目的があるかと思います。
今回は私がよく見る3パターンにわけてそれぞれオススメのプログラミング言語をお伝えしていきたいと思います。

3. パターン1「スマートフォンアプリを作りたい」

スマートフォンアプリを作りたい場合AndroidかiOSの2種類で選択肢が変わります。
Androidの場合は「Kotlin(コトリン)」という言語を使うのが今は主流となっています。
以前は「Java(ジャヴァ)」で書かれていたこともありました。

iOSの場合は「Swift(スイフト)」という言語を使うのが今は主流となっています。
「Objective-C(オブジェクティブシー)」という言語で書かれる場合もありますが、これから学ぶのであれば「Swift」で良いかと思います。

4.パターン2「Webアプリケーション、Webページを作りたい」

WebアプリケーションやWebページを作りたい場合は画面を描画する「フロントエンド」の言語と裏側でデータの処理などをする「バックエンド」の言語を学ぶ必要があります。
フロントエンドの言語としては「JavaScript(ジャヴァスクリプト)」や「TypeScript(タイプスクリプト)」がオススメです。私個人の趣味ではありますが後者の「TypeScript」の方がオススメです。
理由としては型づけのある言語だからです。(型づけについては後述します。)
また、最近よく聞く「Vue(ビュー)」や「React(リアクト)」はこれらの言語のフレームワークという枠組みになるので今回は記載を割愛させていただきます。

次にバックエンドの言語についてですが、「Java」、「PHP(ピーエイチピー)」、「Ruby(ルビー)」、「Python(パイソン)」などがあります。(他にもかなりの言語があります。)
プログラミングスクールなどで教えていることが多いのが「Ruby」、「PHP」です。
これらは比較的学習コストが低く、理解がしやすい言語であることから選ばれているのではないかと推測しています。
私がオススメするのは「Java」です。「Java」はよくレガシーな言語だとか言われて若干敬遠されることが多いですが、初学者の方こそしっかりとしたメンターをつけてJavaを学ぶべきだと思います。
Javaは学習コストが高く、学ぶ側の人からしたら難しいことが多いのですがそこを乗り切りさえすれば他の言語の習得が簡単に思えるというメリットがあります。
また、いい意味で古くからある言語なので「Javaでいう〇〇という処理がこの言語だと△△になる」といった置き換え型学習ができることもメリットの一つだと思います。
ちなみにこの言語も型づけのある言語です。

型づけとは?

「型づけ」とはプログラムの時によく使われる「変数」と呼ばれるデータなどを一時的に保持しておく箱に対して「この箱にはこの型しか入れてはいけません」という仕組みになります。
例えば「okane」という変数には数値型しか入れてはいけません。などのルール決めをすることが出来ます。このルール決めのおかげで変数に対して予期せぬ結果を保持させることがないので、自分が想定していないような挙動をシステムがしないようにすることがある程度できるようになります。

5.パターン3「特にやりたいことがあるわけじゃないけどIT業界に転職したい」

最近こういった方達も増えてきているなという印象があります。
まずは「IT業界のことを調べる」ことをオススメします。
あなたが「IT業界になぜ入りたいのか」を明確にした上でそれを実現するには「どんなジャンルの会社に入るのがいいのか」を調べて「そのジャンル(もしくは会社)ではどのような言語が使われることが多いのか」から言語を選ぶといいと思います。

もし、ポートフォリオを作っておきたいと考えるのであればパターン2に該当するのでそちらから学習を始めてみてください。

また、どうやって業界のことを調べればいいのかわからないという場合には初学者未経験者向けのイベントに参加することをオススメします。

https://connpass.com/

エンジニアの方達は上記のようなサービスを利用して勉強会や座談会を企画・運営されている方が多いのでそこから探すのが一番良いかと思います。
また私の知人も同じように勉強会、座談会を主催しているので連絡いただければ教えることも可能ですのでお気軽にメッセージいただけると幸いです。

6.終わりに

ここまで読んでいただきありがとうございました。
私自身もメンターとして活動をしておりますのでもし興味があればプランの方みていただいたり、ご相談いただければと思います。

気になる点や誤字・脱字などありましたらコメントにてご指摘いただけると幸いです。