俺が学ぶべきプログラミング言語ランキング

定期的に「プログラマーはこの言語を学ぶべき」みたいな記事を見かけます。 と書いていたら、ちょうど令和3年最新版が出てきたみたいですね。

2021年、ITエンジニアが学びたいプログラミング言語ランキング - ITmedia ビジネスオンライン

もう散々指摘されていることですが、こういう記事がよくないのはITエンジニアとかプログラマーという大きな主語で書いてしまっているからです。 ITエンジニアとかプログラマーと一口に言っても、細かい業種や、その時点でやっている業務内容で必要なものって千差万別あるからです。

だからこういうのは、個人が自分の場合で書くのが一番です。 そういうわけでその一例として、私個人が直近の業務・興味から自分が学ぶべきプログラミング言語をランキングしてみました。

補足

ちなみにプログラミング言語だけ覚えればよいかというと、そうではありません。 実際には使っているフレームワークやSDK等の理解が一番大事なんですが、それらを理解するためにもプログラミング言語の知識は必要だよねって感じです。

その辺のフレームワークとかSDKの部分は解説で少し触れているので、そこからいろいろ察していただければと幸いです。

【1位】 Kotlin/Java

いまはAndroidアプリ開発が業務のメインになっているので、これを学ばなくてどうするというレベルです。

Androidアプリ開発の言語は、もうほとんどKotlinでやっています。 Javaでコードを書く機会はほぼありません。

ただし、リファクタリングのために既存のJavaコードを読むことがあります。 同様に、ライブラリやSDKがJavaで書かれている場合もあります。 そのため、Java自体の知識も覚えておいた方がよいです。

こうした理由で、Java自体はAndroidがサポートしている1.8までは最重要視していますが、それより先のバージョンはそこまで重要視していません。

【2位】 JavaScript

Webフロントの開発やCloud Functionsの開発、Hubotなどのスクリプト作成等で利用する機会は多くあります。 使い道として、VueやReact NativeなどのアプリケーションフレームワークとNode.jsどちらも重要です。 バニラで使う機会はほぼありません。 これは現状、自分(自社)で開発する以外に触らないからということもあります。

ECMAScript(ES)とかTypeScriptとかその辺の話に関しては、個人的にはESとしての書き方をまず理解すべきなんだろうなあと思っています。

【3位】 C#(Unity)

これは単に自分の趣味でランクイン入りしました。

3Dモデルを動かすことはもちろん、単にスマートフォンを使ったxR関連の開発においても、Unityでの開発を前提としている場面が多くあります。 そのため、興味と自分のやれる(作れる)ことを広げるために、いま一番興味があるという感じです。

そのため、C#自体よりもUnity自体の理解の方が重要といった感じがあります。

【4位】 Swift

いまのところネイティブでiOSアプリを作る機会や予定はありません。 ですが受託関連でAndroidアプリを開発する場合、動作をそろえたり仕様不備を補うために、iOS版のコードを読む機会が多くあります。 そのため、避けたくても避けられないという感じです。

たしかにネイティブでiOSアプリ開発できるようになっておけば最高ですが、そうでなくても最低限コードが追いかけられる程度の知識と理解が欲しいという感じです。

【5位】 シェルスクリプト

プログラミング言語じゃなくてスクリプト言語じゃないかみたいな話になるのは置いときます。 意外とCI関連で目にする機会や書く機会が多いので、重要度としては意外と高いです。

圏外の言語たち

Pythonは機械学習やスクレイピングの手段としてよく挙げられていることもあり、この辺の分野にも手を出すためには覚えておいた方がよい言語かなあという認識です。

Goはそれ自体に興味を持っていますが、いまGoでないといけないケースがないので、個人的に優先度は低くなりました。

CIの話で言うとDangerを使う場合はRubyの構文とかも覚える必要がありますが、限定的すぎるので圏外にいます。 とはいえ、割とアプリ開発では目にする機会が多いのであまり無視できません。

終わりに

こんな感じでした。 こうして書くと、プログラミング言語に限った話でも自分ひとりの話でも覚えるべき言語は結構あって、世の中厳しいなあってなりますね。