プログラミング言語の選び方 | 現役エンジニアのおすすめタイプ別選び方 7パターン
プログラミングの講師をしていて、よく「どの言語を選んで勉強したらいいかわからない」という相談をよく受けます。
私の意見は…
「なんのための勉強か?」「何を目指しているのか?」によって、おすすめする言語が変わってきます。
今回は、上記の答えとして、タイプ別にお伝えしていきたいと思います。
- TYPE1: プログラミングを始めてみたいが、エンジニアになるかどうか決めてない。
- TYPE2: エンジニアとして働きたく、基礎をしっかりと身に着けたい。
- TYPE3: とにかくWEBサービスを早く作れるようになりたい。
- TYPE4: WEBデザインに興味がある。
- TYPE5: iPhoneやAndroidのアプリを作ってみたい。
- TYPE6: Windowsのアプリを作ってみたい。
- TYPE7: 機械学習に興味がある
TYPE1: プログラミングを始めてみたいが、エンジニアになるかどうか決めてない。
このタイプに当てはまる人におすすめな言語は、Pythonです。
理由は以下の通りです。
- 書き方がシンプルでわかりやすい。
- インテンドの重要性が学べる。
- 変数の型がなく、学びやすい。
- 機械学習・スクレイピングなどの幅広い分野で使われているので、応用しやすい。
- 仕事の需要もたくさんある
- 豊富なライブラリがあるので、わりといろんなことができる
デメリット: pythonの書き方は、シンプルなので、それに慣れるとほかの言語の勉強するときに少しストレスに感じやすい。 Java, PHP, Go言語などに比べて処理速度は若干劣る。
ですが、現在の市場を考えるとまだまだ需要のある言語なので、学んでおいて損はありません。
とても理解しやすいプログラミング言語だと思います。
TYPE2: エンジニアとして働きたく、基礎をしっかりと身に着けたい。
このタイプの人にお勧めするのは、Javaです。
理由は以下の通りです。
- ルールがしっかりしているので基礎を学びやすい。
- オブジェクト指向を学びやすい。
- 未経験の採用をしている企業でJavaやPHPが多いため。
- 仕事の需要もたくさんある。
デメリット: ・求人数は多いがSIerや昔ながらの企業さんで使われることが多い。 ・pythonやrubyのようなフレームワークはまだない。
ですが、現在の市場を考えるとまだまだ需要のある言語なので、学んでおいて損はありません。
とても理解しやすいプログラミング言語だと思います。
TYPE3: とにかくWEBサービスを早く作れるようになりたい。
このタイプの人にお勧めするのは、HTML/CSSとRubyです。
理由は以下の通りです。
- Webの基礎という意味で最低限のHTML/CSSの学びが必要。
- Ruby on Railsという強力なフレームワークで簡単にWebサービスが作れる。
- そんなに理解できてなくてもマニュアルに沿ってやればなんとなく作れてしまう。
- プログラミングスクールで一番多い。
- 仕事の需要も割りとある。
デメリット: ・日本の需要はあるが、海外の需要は減ってきている。 ・Web以外であまり使われていることがない。
Ruby on Railsは初心者でも簡単にWebアプリを作れるので、取り組みやすいフレームワークとなっています。
日本人の開発者であるRubyなので、日本語のドキュメントも豊富です。
ですが、PHPのLaravelや PythonのDjangoというRuby on railsに似たようなフレームワークもあるので、それらを学ぶのでも良いと思います。
TYPE4: WEBデザインに興味がある。
このタイプの人にお勧めするのは、HTML/CSS,javascriptです。
理由は以下の通りです。
- Webの基礎という意味で最低限のHTML/CSSの学びが必要。
- javascriptで動きのあるWebサイトを作ることができる。
- 1カ月ほどで頑張れば学べる。
- 環境構築にほとんど手間がかからない。
デメリット: とくにないです。というかこれ一択です。
特に、CSSではSassを身につけたり、javascriptだとフロントエンドのフレームワークであるReact.js, Vue.jsなどもあります。
レスポンシブなデザインという意味でBootstrapみたいなライブラリに触れてみるのも良いかと思います。
また、画像処理などは、Photoshopを使って作成することが多いと思います。
まずは、HTMLとCSSとjavascriptの基礎を学んでSTEP UPしていきましょう。
TYPE5: iPhoneやAndroidのアプリを作ってみたい。
このタイプの人にお勧めするのは、iPhoneならSwift, AndroidならKotlinです。
理由は以下の通りです。
- モダンな開発ではこの2つが人気。
- 最新の言語なので、コーディングしやすい。
- Swift play groundで子供でも学べる。
- 仕事の需要もたくさんある。
デメリット: ・iPhoneに関しては、とくにないです。これ一択です。 ・Androidについては、古い現場ではJavaを使われている場合もある。
SwiftだとiPadのSwift Play Groundというアプリで学ぶと小学生からでも学ぶことができるので、とても面白いです。
TYPE6: Windowsのアプリを作ってみたい。
このタイプの人にお勧めするのは、C#です。
理由は以下の通りです。
- Windowsアプリをつくるの言語で有名。
- Javaの言語に似ているが、Javaよりも柔軟な言語で使いやすい。
- Windowsアプリの多くの現場で使われている。
デメリット: ・Windowsアプリを作るくらいしかあまり使われない。(ほかの分野も考えているなら、Javaから学んでもよいです。) ・勉強するための本や参考書が少ない。
ただ、需要があまりない印象…。
Windowsアプリを作るのであれば、Webアプリなどを作る方が需要があるので、Windowsアプリを作ること自体はあまりおすすめしないかです。
TYPE7: 機械学習に興味がある
このタイプの人にお勧めするのは、pythonです。
理由は以下の通りです。
- 豊富なライブラリがある
- 機械学習のほとんどがpythonで書かれている。
- ほとんどの現場でpythonが使われている。
デメリット: ・現状はこれ一択です。ですが、処理が遅いというデメリットもあるので、ほかの言語でライブラリが構築されてきたら、将来変わる可能性もあります。
機械学習も様々な分野があり、大学レベルの数学の知識が必要な分野も出てきます。
しかし、とりあえず動かしてみる分には、pythonの構文さえ覚えておけば、大丈夫です。
まずは、チャレンジしてみるのも良いと思います。
まとめ
プログラミング言語のパターン別の選び方いかがでしたでしょうか?
まずは、先のことを考えすぎず、最初の一歩として学んでみることをお勧めします。
勉強のやり方については、以下の記事で紹介していますので、ぜひ、参考にしてみてください。
人気記事 Springbootの環境構築から Hello worldまで on Mac
人気記事 DockerでMySQLとphpAdminのコンテナを作るやり方