Udemy講師もやってます→u0u1.net/MGfzTwitterFacebookはじめにはい、今回はプログラミング言語の分類と選び方について書きます。プログラミングを学ばれている方で、言語選びが難しいと思った方は多いのではないでしょうか?何から始めればいいのか、何をやればいいのか、迷った結果なんとなくで決めてしまったなんて方もいるかと思います。そこで、改めて現役エンジニアである僕が思う言語の種類と選び方をお伝えします。今回の記事では、技術的側面というよりは仕事の取りやすさや目的に合うかどうかなどちょっと違った側面から書いていきます。(内容は先日のYouTube配信でも話したものですが、尺が長くてちょっと見づらい部分もあったのでまとめています。最初に全体の分類を載せます。これ以外にも言語はありますし分類法も様々ですが、今回は制作物別に分類しています。Web系まずはWeb系から紹介します。Web系の言語は最近特に人気になっているように感じますね。名前の通りWebページやWebサービスを構築する言語群です。分類としては、Web系の中でもさらにフロントエンドとバックエンドに分かれます。フロントエンド一言でいえばUIを担当するのがフロントエンドです。ユーザーから見える部分ですね。言語はHTML/CSS/JS以外は基本ないので迷う要素はほぼ無いですね。JavaScriptのフレームワーク選びには迷う場面があるかもしれません。今はVue.jsとReact.jsが人気が高くよく使われています。個人的にはこれまでのjQueryのように小規模でも使えるVue.jsがおすすめです。バックエンドこちらは言語によって特性に違いがあります。PHP使われている割合が多く、案件数が多い。WordPressの存在によりバックエンドの知識がそこまでなくとも一定レベルのシステムを構築できるのがメリット。RubyPHPに比べると案件数は少ない。有名サービスでの採用例もある(Twitterやクックパッドなど)。いえ全体ではベンチャー企業での採用が多い印象。スクールなどでやたらとRubyを推され、学ばれている方が多い割には仕事が多くないのでその辺りが疑問点。(もし知見の深い方がいらっしゃればコメントで教えていただけると幸いです。)Python今回はWeb系に分類したが、機械学習やスクレイピングなどの領域に強い。いった機能を組み込む場合はWeb構築もPythonでやってしまった方が楽。YouTubeやInstagramなどでの採用例がある。注意点は、フリーで仕事をとる場合にはハードルが高いことで、それなりに技術力がないと難しい印象。Javaピークを過ぎてしまった言語のためか、新規の採用例はあまり見なくなった。今から学ぶには少々遅いという印象。まとめると、フロントエンドはほぼ1択でバックエンドは状況に合わせて選ぶという形です。スマホアプリスマホアプリはほぼ選択の余地がなく、iOSアプリならSwift、AndroidならJava、Kotlinに決定されます。KotlinはJavaの100%互換かつエラーが出にくいなどメリットが多いので、今から始めるならわざわざJavaを選ぶ理由は薄いかと思います。近年はWebの技術でスマホアプリを作れるものが登場しています。(代表的なものを紹介します。Applicationの略で、Webアプリでありながらプッシュ通知やホーム画面へのアイコン追加などスマホアプリの特徴的な機能を持つものです。OSに左右されず利用できるので、サービス展開のハードルが低い。完全にアプリ化しているわけではないのでストアに出すことはできない。審査を受ける必要がないというメリットがあるが、ユーザーのストアからの接触もないというデメリットもある。Nativeこちらは先ほど紹介したReact.jsをベースにアプリを作ることができる技術。Reactを経験されているなら自然に開発できるため参入ハードルが低い。こちらもOSに左右されず開発が可能で、かつきちんとアプリ化したものを作るのでストアに出せる。まとめると、ネイティブ開発であれば言語が決まりきっていますがWebの技術を流用するのであればそれまでやってきたものに合わせて選択するという感じですね。デスクトップアプリこれに関しては僕自身の知識が乏しいのもあり、言語ごとの状況はあまり語れませんm(__)mMacアプリであればSwiftで開発できるので、iOSアプリと合わせて選択するのが良いでしょう。それ以外ではPythonでも開発ができ、すでにPythonでの開発経験があればそのまま参入可能です。デスクトップアプリにおいてもElectronというフレームワークによってWebの技術をほぼそのまま転用できます。仕事という側面で見ると、デスクトップアプリは社内の業務効率化ツールとしての要求が他に比べて多く、セキュリティ面などをそこまで気にしなくても良い場合があるので地味ながら参入しやすい領域かもしれません。まとめさて、ここまで読んできてお気付きの方もいらっしゃるかもしれませんが、僕としては今から学ぶならWeb系の言語をお勧めします。今回見てきたように、Webの技術の汎用性がここ数年で非常に高まってきておりスマホ/デスクトップアプリの開発が可能になってきました。なると、わざわざswiftのようにそこまで汎用性の高くない言語を選ぶ必要性が低いです。Web系の技術で色々作れるので試してみてはいかがでしょうか。学習の効率も高いですからね。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。type="date"で、どこをクリックしてもカレンダーが表示されるようにする。RECOMMENDこちらの記事も人気です。未分類2019.12.20プログラミング初心者から独学で学習したい人向けガイドライン【Web系】サイト制作とは2019.12.12【フリーランス志望は必読】Web制作の流れを改めておさらいするサイト制作とは2019.12.11【独学】初心者が3ヶ月でプログラミングをマスターする方法!【大公開】HTML/CSS2019.10.13Flexboxの初心者向けチュートリアル作ってみました。type="date"で、どこをクリックしてもカレンダーが表示されるようにする。