汎用性の高い言語?
こういう質問が結構来ます
なかなかに難しい質問ではありますがちょっと考えてみます
前提として「SQL」は除きます
あくまでも一般的なプログラミング言語に絞ります
一般的な言語と違い「何が出来るか?」ではなく、「何を求めるか?」ということになります
ただデータベース触るなら必要な知識なので学んでほしいです
では今回は下記の4つを紹介したいと思います
Python
JavaScript
Java
Kotlin
また以下の観点で書いていきます
どんな言語か?
何ができるか?
求人市場
Python
【どんな言語か?】
ythonは、シンプルな文法と強力なライブラリによって初心者からプロフェッショナルまで幅広いユーザーに愛用されている高水準プログラミング言語です
読みやすく書きやすいことから、学習コストが低いのが特徴です
【何ができるか?】
・Web開発
DjangoやFlaskなどのフレームワークを使って、サーバーサイドのWebアプリケーションを開発できます
・データ分析・機械学習
Pandas、NumPy、scikit-learnなどのライブラリを使って、データ処理や機械学習のアルゴリズムを実装できます
AIやデータサイエンスで最も使われている言語の一つです
・自動化スクリプト
繰り返し作業やデータの処理を自動化するスクリプトを簡単に書けます
・ゲーム開発
Pygameなどのライブラリを使って、シンプルなゲームを作成できます
・科学技術計算
研究や計算を行う科学分野でもPythonは広く使用されています(例:宇宙科学、医療データの分析など)
【求人市場】
AIやデータサイエンス、バックエンドエンジニアとしての需要が非常に高いです
特にここ最近では日本でもバックエンドにPythonを起用する企業も増えてきたと感じます
JavaScript
【どんな言語か?】
avaScriptは、主にWebサイトのフロントエンド(ユーザーが見たり操作したりする部分)を動的にするために使用されるスクリプト言語です
最近では、Node.jsなどによりサーバーサイド(バックエンド)でも使用されることが多くなり、Web全体を支えるフルスタック言語としての地位を確立しています
【何ができるか?】
・Webフロントエンド開発
JavaScriptは、HTMLやCSSと組み合わせてWebページにインタラクティブな機能を追加できます
クリックイベント、アニメーション、リアルタイムのデータ更新などが可能です
・Webバックエンド開発 (Node.js)
Node.jsを使用することで、サーバーサイドでもJavaScriptを使ってWebアプリケーションのAPIやサーバーの処理を実装できます
これによりフルスタック開発者として、フロントエンドとバックエンドの両方を1つの言語で扱うことができます
・モバイルアプリ開発
React NativeやIonicなどを使えば、JavaScriptでiOSやAndroidのモバイルアプリも開発可能です
・ゲーム開発
ブラウザ上で動作する2Dや3Dゲームを作ることも可能で、WebGLやCanvasなどの技術を利用します
【求人市場】
フロントエンド開発、バックエンド開発など、多くの分野で需要が非常に高く、フルスタック開発者としての需要も伸びています
また現在国内ではReactNativeのライバルにFlutterがいます
国内ではFlutter、米国ではReactNativeが人気です
ちょっと遅れて日本に流行りが来るのでいずれ日本もReactNativeの需要が一気に上るかもしれませんね
Java
【どんな言語か?】
Javaは、長年にわたりエンタープライズシステムや大規模なアプリケーション開発で使われてきたオブジェクト指向のプログラミング言語です
厳格な型チェックや安定した動作から、多くの企業で業務システムやサーバーサイドアプリケーションに使用されています
プラットフォームに依存せず、どの環境でも動作する「Write Once, Run Anywhere」が特徴です
【何ができるか?】
エンタープライズ向けアプリケーション開発
大規模な業務システムやサーバーサイドのWebアプリケーション開発に最適です
Springフレームワークなどを使用して、堅牢でスケーラブルなWebサービスを構築できます
Androidアプリ開発
Androidの公式言語の一つとして、スマートフォンアプリの開発に使用されてきました
最近ではKotlinも公式にサポートされていますが、Javaで書かれた既存のコードが多く残っているため、Javaスキルはまだ有用です
デスクトップアプリケーション開発: JavaFXやSwingなどを使って、クロスプラットフォームなデスクトップアプリケーションを開発できます
大規模な分散システム
クラウドやサーバー間で動作するシステムにおいても、Javaはその信頼性とパフォーマンスの高さから使用されることが多いです
【求人市場】
企業の基幹システムやWebサービス、Androidアプリ開発などで求人が多く、特に大企業や金融系のシステム開発で強い需要があります
おそらく求人数は一番多いと感じます
Kotlin
【どんな言語か?】
Kotlinは、Javaの代替言語として登場したモダンでシンプルなプログラミング言語です
Javaとの完全な互換性を持ちながら、より簡潔で安全性の高いコードを書けるように設計されています
特にAndroidアプリ開発においては、Googleが公式に推奨しており、Javaに代わる主要言語として急速に普及しています
JavaでできることはKotlinで出来ます
【何ができるか?】
Androidアプリ開発
Android Studioと完全に統合されており、Kotlinを使って効率的にAndroidアプリを開発できます。Javaの冗長なコードを簡潔に書き換えることが可能です
サーバーサイド開発
Ktorなどのフレームワークを使って、WebアプリケーションのサーバーサイドをKotlinで構築できます
またJavaのSpringを使用して開発も出来ます
デスクトップアプリケーション開発
JavaFXなどのJavaベースのライブラリとも互換性があるため、デスクトップアプリケーションの開発にも使えます
マルチプラットフォーム開発
Kotlin Multiplatformを使用すると、1つのコードベースでAndroid、iOS、Web、サーバーなど複数のプラットフォーム向けにアプリを開発できます
【求人市場】
Androidアプリ開発者としての求人が増加中で、特に新しいプロジェクトではKotlinが選ばれることが多いです
Java経験者もKotlinに移行しやすいため、エンタープライズアプリケーションの開発でも徐々に採用され始めています
まとめ
言語として一番おすすめしたいのはKotlinです
何でもできるし、後発言語なので完成度が非常に高いです
ただ今現在だとAndroid開発の求人がほとんどです
今後は幅広く伸びてくる言語だと思います
あと単純にエンジニアが非常に少ないので単価が高く狙い目です
Web系に行きたいならJavascriptを選びましょう
結局はWebに携わる以上必ず触れないと行けない分野ですので
ただやることが多く、後半戦はしんどく思えるかもしれません
順序立てて、しっかり一歩ずつです
幅広く開発がしたいならJavaかPythonでしょう
どちらでもいいのですが、データサイエンスと機械学習に重きを置きたいならPythonという感じですね
また、Javaを学んだ人はKotlinにも移行しやすいのでキャリアアップが用意です