はじめに
こんにちは、現役エンジニアのSANACHANです。
IT時代が進み、小学校からプログラミングの授業がカリキュラムに組込まれる時代。
大人の習い事でもプログラミング学習に注目が高まっています。
この記事にたどり着いた方は、最初に学ぶプログラミング言語を選択し、
既に学習を始めていたり、あるいは既に習得された方も多いと思います。
ここでは、次のステップとして2つめに習得するプログラミング言語の選び方をお伝えします。
こんな方におすすめ
- 最初のプログラミング言語学習を終了し、2つめの言語選びに迷っている
- プログラミング言語をどの順序で学んでいけばよいかイメージが沸かない
最初に学ぶプログラミング言語がまだ決まっていない、または他の言語を学びたいと考えておられる方は、以下の記事も参考にどうぞ。
こちらもCHECK
-
-
【初心者必見】主要プログラミング言語5+3選!特徴とおすすめ度まとめ
暮らしの様々なところで「プログラミング言語」によって記述されたシステムが稼働しています。今回はこのプログラミング言語の勉強を始めようと考えている方を対象に、「人気」と「求人数」の切り口から8つの言語について特徴やおすすめ度を一挙ご紹介いたします。
続きを見る
なぜ第2のプログラム言語を学ぶのか?
そもそも、なぜ第2言語を学ぶのでしょうか。学んだ時のメリットは何なのか。
既に目的があって本記事を読まれている方もおられると思いますが、
先ずは学ぶメリットを3つご紹介しましょう。
- 目指す業界の選択肢が増える
- まわりのエンジニアとの差別化
- 各プログラミング言語の思考を応用できる
目指す業界の選択肢が増える
私を含め、多くのベテランエンジニアは様々なプロジェクトを経験する中で、複数の言語を扱えます。これは担当する業界やシステムが異なったり、技術の進歩によって一つの同じ製品でもプログラミング言語の選択肢が広がっているためです。
プログラミング言語の種類によって需要の高い業界や製品が異なりますので、
複数のプログラミング言語を習得していると、業界や製品の選択肢を増やすことができます。

まわりのエンジニアとの差別化
昨今のプログラミングブームによって、最初の言語を習得された初学者が多くなってきています。
つまり、1つのプログラミング言語を扱える人はゴロゴロいるということです。
何か自分でストーリをもって複数のプログラミング言語を習得したり、最初に学んだプログラミング言語と関連する言語を学んでおくと、まわりの駆け出しエンジニアとの差別化を図ることができます。

各プログラミング言語の思考を応用できる
プログラミング言語には大きく3つのタイプが存在します。
手続き型言語、オブジェクト指向言語、関数型(リスト型)言語の3つです。(後に分類表あり)
それぞれのタイプで、プログラミングする際の思考が異なります。
しかし、結局プログラミングは「コンピュータに対する作業指示」ですので、どのタイプのプログラミング言語でも異なるタイプの思考でプログラミングすることは可能です。
作成するアプリやシステムに応じて、より効率よく記述できる思考を選択して取り入れることができるようになります。

第2言語を選ぶ準備:プログラミング言語の種類を知る
IT技術が進歩するにつれ「旬なプログラミング言語」は日々変化しています。
現場では、「いま○○言語が熱い」「これからは○○言語だ」という話がとにかく絶えません。
新規のプログラミング言語が生まれたり、プログラミング言語としては同じでもバージョンが変わって構文が変化したり、新しいフレームワークやライブラリが登場したりしています。

第2のプログラミング言語を選択するためにも、どのようなプログラミング言語が存在するのかを知っておく必要がありますので、ここで一気に紹介いたします。(私が扱える言語のみ)
プログラミング言語のタイプ・業界まとめ(アルファベット順)
言語 | タイプ | 需要の高い業界 | |||||
Web系 | ゲーム/アプリ系 | 組込み系 | 汎用系 | 通信系 | オープン系 | ||
BASIC/VBA | 手続き型 | - | - | - | ○ | - | ○ |
C | 手続き型 | - | - | ◎ | ○ | - | ○ |
C++ | オブジェクト指向 | - | ○ | ◎ | △ | ○ | ○ |
C# | オブジェクト指向 | ○ | ○ | ◎ | - | - | ○ |
FORTRAN | 手続き型 | - | - | - | ○ | - | - |
GO | オブジェクト指向 | ○ | ◎ | △ | - | - | - |
Java | オブジェクト指向 | ◎ | ○ | ◎ | ○ | ○ | ○ |
JavaScript | オブジェクト指向 | ◎ | △ | - | - | - | ○ |
Kotlin | オブジェクト指向 | △ | ◎ | - | - | - | - |
LISP | 関数型 | - | - | - | ○ | - | - |
Mathematica | 手続き型/関数型 | - | - | - | ○ | - | ○ |
MATLAB | 手続き型/関数型 | - | - | - | ○ | - | ○ |
Perl | 手続き型/関数型 | ○ | - | - | ○ | - | ○ |
PHP | オブジェクト指向 | ◎ | ○ | - | - | - | ○ |
Python | オブジェクト指向 | ◎ | ○ | - | - | - | ○ |
Ruby | オブジェクト指向 | ○ | ◎ | - | - | - | ○ |
◎:需要が高い、〇:需要がある、△:需要低、-:需要無し
最初に学んだプログラミング言語が一覧にない方へ
HTML/CSS や TeX、MarkDown を学習された方、これらは厳密にはプログラミング言語ではないです。
マークアップ言語と呼ばれているもので、「コンピュータに作業指示を出す言語」ではありません。
また、SQL言語や IDL を学習された方も同様に、プログラミング言語ではないため一覧に載せていません。

2つめのプログラミング言語の選び方
さて、メリットの紹介で意欲が高まり、各プログラミング言語の必要な情報がそろいました。
ここからは具体的な選び方を3つご紹介いたします。
- 目指す業界で需要の高いプログラミング言語を選択
- 異なるタイプのプログラミング言語を選択
- 比較的新しい言語を選択
それぞれ、詳しく見ていきましょう。
第2言語の選び方①:目指す業界で需要の高いプログラミング言語を選択
先ずは目指す業界で需要の高いプログラミング言語、または最初に習得したプログラミング言語が使われている業界で需要が高い他の言語を学ぶ選び方です。
企業が求人を出す場合は、大きく2通り。新規プロジェクトの立ち上げや、何かの理由で退職者が出た場合などです。すぐにでも業務に従事してもらえる人を探しているため、業界で使われているプログラミング言語を複数習得していると有利になります。
目指す業界で需要の高い言語を複数習得していると、その業界へ入り込める可能性がグッと上がります。
プログラミング言語の習得プラン例
Web系のプログラミング言語を習得された方
例えば、Web系の JavaScript を習得した方は、Java言語やPHP言語などを学ぶと良いでしょう。
HTML/CSS の知識があると更に良いと思います。
ゲーム・アプリ系のプログラミング言語を習得された方
ゲームやアプリ系の Kotlin言語、または Java言語を学ばれた方は、Ruby言語などがおすすめです。
Kotlin言語とJava言語は非常に相性のいい言語ですので、どちらもマスターするのも良いです。
AIや機械学習のプログラミング言語を習得された方
AIや機械学習で注目の Python 言語を習得された方は、C言語やC++言語などがおすすめです。
なぜなら、AI技術には膨大な量の情報処理が必要なため、処理速度の速いC/C++言語でパッケージを構成していることが多いためです。そのパッケージをPython言語から呼び出して使用しています。
スポンサーリンク
第2言語の選び方②:異なるタイプのプログラミング言語を選択
複数の言語を学ぶメリットとしてお伝えした「言語の思考を応用」を目的にした選び方です。
プログラマーとして収益を得るために、これから戦っていける武器になる選び方です。
IT技術の進歩の過程で新たな言語が登場したり、異なるシステムや業務を担当することになって扱うプログラミング言語が変わることはよくあります。それは、異なるタイプのプログラミング言語だったりします。プログラミング言語のタイプが変わると思考そのものを変えなければならず、業務をしながら新たな思考に慣れるのは大変です。
少なくとも、「オブジェクト指向型」の言語は習得必須です。
プログラミング言語の習得プラン例
手続き型のプログラミング言語を習得された方
最初に手続き型のプログラミング言語を習得された方は、オブジェクト指向型の言語をおすすめします。これから新たに登場する言語はほとんどオブジェクト指向型です。理由は、ソフトウェアの規模が膨大になってきており、複雑な処理を行う場合は「モノ」に例えてプログラミングした方が効率が良いためです。
C言語を習得された方はC++言語、BASIC/VBA言語を習得された方はPython言語やPHP言語など、構文が似ていて習得しやすいと思います。
オブジェクト指向型のプログラミング言語を習得された方
オブジェクト指向型のプログラミング言語を習得された方は、手続き型言語の習得もしてみましょう。
オブジェクト指向型でも手続き型のようなプログラミングを行うため、無理に手続き型言語を習得する必要はありません。しかし、もしC言語を習得していないのであれば、C言語は習得しておいた方が良いです。なぜなら、C言語はプログラミング言語の「祖」と言われており、プログラミングに必要な知識を網羅的に学ぶことができるためです。
スポンサーリンク
第2言語の選び方③:比較的新しい言語を選択
最近登場した言語を選択する選び方です。その言語の需要が高いと更にいいですね。
まだ扱えるエンジニアが少なくて需要が高いため、初学者でも参入しやすいです。
例えばKotlin言語
Kotlin言語は2011年に登場した言語で、Java言語を洗練した言語です。
Java言語と同じプログラムの中で一緒に使用することができます。(JVM上で動作します)
Googleが開発するAndroidの標準開発言語に認定されており、需要・給与ともに高くなっています。
例えばGO言語
GO言語は2009年に登場した言語で、並列処理などを高速に処理できる言語です。
YouTubeやメルカリなど、大規模なWebサービスにも起用されています。
こちらは、Googleが開発したプログラミング言語です。需要が急速に高くなっています。

第2言語の選び方:おまけ
この記事を読んでいただき、それでもまだ何を学べばよいか決まらない場合は、
以下の無料カウンセリングを利用されるのも良いかと思います。
まとめ
いかがでしたでしょうか。自分の目標やキャリア形成、需要と供給の切り口で紹介しました。
私は趣味で小学生からプログラミングを始めたのですが、「作りたい」と思ったアプリなどから、
「どうすれば楽に作れるか?」という観点でプログラミング言語を選択し、習得してきました。
自分のモチベーションとなる選び方が一番ですね。
以上、「【第2言語の選び方】2つめに習得するプログラミング言語はどれ?」でした。