エンジニア転職 Java

Javaに向いている人・向いていない人

投稿日:2022年3月10日 更新日:

プログラマ、エンジニアを目指している方の中で、どんな言語がいいのか?
という悩みをもっている方に向けて、Javaに向いている人と向いていない人という観点でお話しします。

Javaができること

Javaは基本的になんでもできます。
できることを上げると以下のことができます。

  • Webサービス開発
  • PC向けアプリ開発
  • Androidアプリ開発
  • 基幹システム開発
  • 組み込みシステム開発
  • IoT開発

うん、ほぼすべてのことができます。
なのでJavaは汎用的な言語と言われている所以(ゆえん)です。

色々と挑戦してみたいなぁ
と思っているのであれば、Java向き
と言えます。

これがやりたい!
決まったものがあり、Javaよりも向いた言語があるというのであればJava向きではありません。

Javaができないこと

基本的にはないと思って頂いてよいです。

機械学習はできないと言われていますが、そんなこともありません。
2020年9月15日、Oracle社がJavaによる機械学習ライブラリ「Tribuo」をオープンソースで公開しています。

また、機械学習のフレームワークとして有名なTensorFlowもJavaに対応していますし、Deeplearning4jはJavaで開発されています。

そう、Javaでできないことはないと言っても過言ではないのが現状です。
とは言っても機械学習関連はPythonの方が優位なところはありますので、あとは好みでわかれるとことかなと思います。

機械学習だけにこだわらず、広く技術を追求したい方はJava向き。
機械学習・Ai関連だけに特化したスキルとキャリアを磨きたい方はJavaには不向きという感じでしょうか。

Javaが得意なこと

①Javaは静的型付け言語
これは必ず型を宣言する言語のことです。
Java8以降は随分と使いやすくなっており、Java5以前よりは柔軟に宣言できる仕組み(ジェネリクス型)がありますので、Javaは使いにくいというイメージは過去のものになりつつあると個人的には思っています。

静的型付け言語の反対で動的型付け言語と呼ばれるものがあります。
代表的なものだと、PHP、Ruby、Pythonが挙げられます。

動的型付け言語は型の宣言は不要ですが、どんな型の値が入っているかわからないことで予期しない処理結果になることがあります。
Javaはその点では予期しない値が入ることが少なく、一般的には安全に運用可能な言語です。

②並列処理
Javaは並列処理もできますので、処理速度を求められるアプリケーションにも有用です。
並列処理の実装は難しいとされていますが、研究心や探求心のある方にとっては魅力的な技術ですし、使いこなせると重宝されます。

③ガベージコレクション
使用しなくなったメモリを自動的ン解放してくれる仕組みです。
Java以前の言語であるCではメモリ解放は実装に含めるものでしたが、Javaではこれを自動で行ってくれる仕組みとしてガベージコレクションができました。

とはいえ、ガベージコレクションでメモリ解放を完全にコントロールすることはできませんが、メモリ解放といった次元の実装を意識しなくていいのはプログラマにとっては有難いものです。

Javaは静的型付けでかっちり実装しますので、型があるから安全だと思う人に向いています。
型付けって面倒だし動けばいいし、そんな凝ったものは作らないという人には向いていません。

Javaが不得意なこと

手軽なツール作成という分野は不得意かなと思います。
そういった分野がVBAやJavaScriptが得意な分野です。

ただ私の場合はJavaでフォーム自動入力ツールを作ったりして、ちょっとした作業を効率化しています。
同じものを作るとなるとPythonとかの方が情報もあるので簡単に作れるとは思います
なので、不得意だけど作ることは可能です。

ちょっとしたツールはJavaでなくてもいいので、知見を広げるために別の言語を使ってみるためにPythonやJavaScriptを触ってみればいいと思います。

それでもJavaで作ってみたいという、Java好きな方は向いています。
好きこそ物の上手なれです。

いや、効率重視でいきますという方は言語にこだわらない思考をお持ちなのでJavaでなくても大丈夫でしょう。

Javaに向いている方

・Javaは技術の適用範囲が広いので、色々と挑戦してみたい方
・広く技術を追求しつつ、機械学習にも関わりたい方
・静的型付け言語であることが安全だと思う方
・そもそもJavaが(何となくでも)好きな方

Javaに向いていない方

・やりたいことが決まっており、Javaよりも向いた言語が他にある場合
・機械学習・Ai関連だけに特化したスキルとキャリアを磨きたい方
・型付けが面倒、動けばよい、凝ったものは作らないという方
・効率重視で言語にこだわらない思考をお持ちの方

まとめ

Javaに向いている方と向いていない方を整理してみました。
Javaはどんな分野にも適用できるのと案件も最も多い言語であることから、エンジニアのキャリアを長い視点でとらえている方はJavaに向いているとも言えます。

ただ、今後のIT業界で1つの言語だけで食べていくというのは非現実的です。
複数の言語を使えて当然で、なおかつ上流や下流も含めて経験しているなどのキャリアの豊富さも武器になります。

Javaは仕事が多いという点で経験を積みやすいので、エンジニアを真剣に考えているのであれば第1言語とすることをお奨めします。

学習プラン

Javaを学習したい方はチュートリアルを順に学んでみて下さい。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-エンジニア転職, Java
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

2進数を使うと判定がシンプルになる!(じゃんけんプログラム編)

概要 仕事で2進数を使った判定処理について学んだので共有したくて執筆しました。 仕事上で設計したロジックは本記事で紹介するものより複雑でしたが、本質的な部分は変わらないので使って頂けると思います。 説 …

【SpringBoot入門】#13~ 独自のエラー画面の作成

概要 何らかのエラーが発生した場合に、エラー画面を表示して対応したいことがあります。 デフォルトのwhite label Error pageのままというわけにはいかないので、 独自のエラー画面を作成 …

【Javaの始め方】環境構築から最初のコード作成まで

Javaを始めるにあたって必要な知識を必要最小限でお伝えします。 前提知識 Javaで開発するにはIDE(統合開発環境)が必要です。 そしてよく使われているIDEは以下の3つです。 名称無償/有償特徴 …

Thymeleafで1000円単位をカンマ区切りで表示する方法

Thymeleaf(テンプレートエンジン)で金額などの数値を 1000円単位のカンマ区切りで表示する方法です。 ここでは、カンマ区切りの機能はオブジェクト側で実装し、 Tymeleaf(View)は表 …

【Javaポートフォリオ】なぜスクレイピングツールがおすすめか?

なぜスクレイピングツールか? ・スキルに需要がある ・総合的なスキルが身に付く ・個人開発に応用できる スキルに需要がある 執筆時点(2021年3月28日)時点で、ランサーズに1643件の発注がありま …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。