何の言語を学んだらいいの?
皆さん、こんにちは。どんぶラッコです。
未経験でエンジニアへの転向を考えている方や新しくプログラミング言語を学ぼうとしている方にとって、「どのプログラミング言語を学んだらいいの?」という疑問がつきまとうと思います。
では最初に結論から言いましょう。
究極的には、好きな言語を学べばおっけーです。
えーー、答えになってないよーー!
…そんな声が聞こえてきそうです。
ピアノ初心者に例えると…
ジャンル別のおすすめ言語は次のパートでご紹介するので、ここではなぜ言語選択にあまり意味がないのかについて説明します。
未経験エンジニアにとっての「どのプログラミング言語を選択すれば良いのか」という迷いは、ピアノの超初心者が
「ピアノはヤマハがいいかな?スタインウェイかな?それともベーゼンドルファー?」
というようにピアノのメーカーを気にしている状態です。
こんな人がいたら、あなたはなんと声をかけますか?
もちろん、
「ヤマハは華やかな音色を出すピアノが多いよね。スタインウェイも明るめの音色だけど、ヤマハほどの底抜けの明るさがあるわけじゃない。ベーゼンドルファーは落ち着いた音色が出るよね」
と、特徴を答えることはできます。
※↑の感想は筆者の主観によるものです
でも、そもそもとしてこう思うはずです。
「まずはピアノの弾き方や表現方法を学ぼうか!」
プログラミング学習でも同じことが言えるわけです。どの言語を選んだかよりも、その言語を通じてプログラミングの原理原則を学習することの方がよっぽど大事です。
そして、プログラムの原理原則さえ知っていれば新しい言語を習得することはそう難しくないのです。
で、何を学習したらいい?
その原則を頭に入れていただいた上で、言語選択の話をしましょう。
どの業界に行きたいのか・どんなものを開発したいのかによってざっくり決めてしまうのが良いです!
下記に例を示します。
- 対企業向けパッケージ製品の開発
- Java
- Webアプリケーションの開発
- JavaScript, PHP, Ruby
- ネイティブアプリ(スマホアプリ)の開発
- Kotlin(アンドロイド), Swift(iOS)
- 機械学習, AI
- Python
- 制御・組み込み系
- C, C++
比較的入門しやすいのはJavaScript, Ruby, Python あたりでしょう。
しかし、繰り返しになりますが未経験エンジニアが最も注力すべきはプログラミングの概念を習得することです。
また、上の分け方もあくまでも各分野でよく使われる言語というだけの話です。
例えばJavaScriptであってもReact Nativeというフレームワークを使えばネイティブアプリの開発は可能ですし、PythonであってもDjangoやFlaskを使えばWebアプリケーションは作成できます。
そして、上記の運用をしている会社も数多く存在します。
プログラム言語はあくまでも手段です。なので、どの手段、つまりなんのプログラミング言語を使うべきか、それは各会社によってアプローチ方法は多種多様なのです。
要するに、今悩むべき悩みではないのです!
プログラミング言語、いわんや情報技術は流行り廃りが激しいです。Webの台頭とともに注目を集めているJavaScriptですが、10年前には脚光を全く浴びていない言語でした。Chromeエンジンの改良、各種Webフレームワークの登場、サーバサイド言語のNode.jsの登場など、様々な要因が重なり、現在の地位を確立しています。
逆に、フラッシュは今では全く使われない技術になってしまいましたね。
繰り返しになりますが、どの言語を学ぶかではなく、何故その言語を学ぶか、その言語を通じてどのような知識を獲得するかが重要です。目先の情報に振り回されないようにしましょう!!