プログラミングを学ぶ上で、まず初めに大切なのが、どのプログラミング言語を習得するか?ということだと思います。
前回、私はJavaを選択したことを報告しましたが、その選択に至るまでの経緯をもう少し詳しくお話しします。
どんな言語があるか?
そもそも、プログラミング言語にはどのような種類があるのでしょうか。
現在なんと、200種類以上(!)のプログラミング言語があるようです。
それぞれに特徴があり、使われる場面も異なります。
以下、主要な言語とその使用場面をまとめてみました。
参考
https://tech-camp.in/note/technology/37745/
https://www.be-system-engineer.com/programming-study/
https://eng-entrance.com/java_product_summary
・Java … Androidアプリ、Webサービス(Twitter, Evernote)、家電製品
・JavaScript … Webサービス
・PHP … Webサービス(WordPress)
・Objective-C / Swift … iOSアプリ
・C# … Windowsアプリ、VR
・C++ … Windowsアプリ
・VB … Excel
・Python … 人工知能、Webサービス(YouTube, Evernote, Instagram)、統計
・Ruby … Webサービス(Cookpad, CrowdWorks)
・R … 統計
言語選択のポイント①:将来性
上記に挙げたように、プログラミング言語によって、得意分野が全く違うことが分かります。
このことから、まず一つ目のポイントとして「プログラミングを学んで、将来自分は何をしたいのか?」ということを考える必要があります。
現在ホットな人工知能やVRを開発したいのであれば、PytonやC#といった言語を学ぶ必要がありますし、
iOSアプリの開発がしたいのであれば、Objective-CないしSwift、
Androidアプリの開発がしたいのであれば、Javaを選択しなければなりません。
また、今現在、どのようなプログラミング言語が人気なのかなど、ランキング形式で発表されていたりもします。
転職等を考える人にとっては、求人率の高さも考慮すべき点だと思います。
ただIT業界は日進月歩なので、いま求人が多い言語の人気が、自分が習得するまで続くかどうかは見極めないといけないと思います。
そこを考えると、新参者の言語よりも古株の方が安定かな、と思ったりします。
言語選択のポイント②:難易度
将来やりたいことがあったとしても、いきなり難しい言語に挑戦するわけにはいきません。
ある程度、初心者でも学びやすい言語を選択する必要があります。
難易度が変わる一つの指標として、その言語がフロントエンドか、バックエンドかという違いがあるようです。
これらの違いは、プログラミングと動作が一つのパソコン上で完結するか否か、です。
フロントエンドは、一つのパソコン上で完結するため、環境構築の必要がありません。例)HTML, CSS, JavaScript
バックエンドは、動作のためにもう一つのパソコンを必要とするため、そのための環境構築をする必要があります。例)Java, PHP, C#
この環境構築が難易度が高い場合があるらしく、フロントエンドの方が一般的には易しいようです。
また、同じバックエンドの中でも難易度は異なるらしく、PHPが一番容易と言われているようです。
自分がどの程度の難易度まで耐えられるかが、二つ目のポイントだと思います。
私の場合…
この2つのポイントを踏まえた上で、私はなぜJavaを選んだのか?
・私でも名前を聞いたことがあるから、有名なのだろう。
・一番よく使われている言語だし、今後も使用頻度は大きく変化しないのではないだろうか。
・なんとなくできそう。
という、なんともふわっとした理由です。
一番易しいのはPHPだろうと思いましたが、本気で取り組むなら少し難しい、汎用性のある言語を習得したいと思ってあえてJavaを選択しました。
…と言いつつ、Javaで挫折しそうになったら、PHPに鞍替えするのもアリかなと思っています。
次回、Javaについて詳しく書こうと思います。