Facebook
1990年代前半からC++、C言語の代替えとして使われ始めたプログラミング言語Java。1994年からのインターネット普及と共にJavaは一気に広がりを見せました。24年たった今もJavaはIT業界には欠かせないと言われていますが、用途に応じて様々なプログラミング言語が台頭してきたのも事実です。今回は最新のトレンドを踏まえつつ、現在のJavaの案件(求人)ニーズについてご紹介します。

目次

1.Javaの最新のニーズ・トレンド

1.世界で見るJavaのニーズ

まずは、Javaの最新のニーズについて他言語と比較し、そのトレンドを見てみましょう。下図は、オランダのTIOBEという会社が公開している「TIOBE Index」というサイトから引用したもので、Google、Yahoo!、Bing、百度(バイドゥ)など、世界で使用されている検索エンジンの検索結果を踏まえ、言語別・年度別でどれだけ話題になったかを示しています。

https://www.tiobe.com/tiobe-index/

2002年をピークに少しずつ減少傾向にありましたが、Androidのニーズで2015年から2016年かけて息を吹き返しています。しかし、Kotlinが正式に2017年5月にAndroidの正式言語として採用されたこともあって、再び減少へ転じ、2017年との比較において1.69%減少しています。とは言え、シェアとして依然トップの位置におり、世界的に見てもJavaのニーズはまだまだ高いです。

2.日本国内のJava求人の動向

では日本国内はどうでしょうか。
始めに、検索エンジンのボリュームの推移を見てみましょう。

https://trends.google.co.jp/trends/explore?date=all&q=Java

Googleトレンドだと2004年以前の数値は見ることは出来ませんが、検索ボリュームとしては下降傾向にあります。複合キーワードで「Android Java」でのニーズが最も高い、かつKotlinの台頭を踏まえると
今後も減少傾向になる可能性が高そうです。
一方で求人はどうでしょうか。筆者が運営しているHigh-Performer engineerにおけるフリーランスのJavaの案件数において下記の傾向が見られました。

・2016年と比較し、2017年は138%Java案件数が増えている。
・2017年のエンジニアの全案件数の中で、Java案件は約3割を占めている。


こちらの数値や、実際の案件の詳細を見ていると、金融業界や官公庁系でのシステム改修、Web業界でもJavaを採用している企業もまだまだ多いため、エンジニア案件の中で、Java案件のシェアが依然として高いようです。話題として挙がりにくくなっているものの、Javaエンジニア不足はまだ続いていくと考えてよいと思います。

2.Javaエンジニアの正社員とフリーランスの報酬の違い

1.正社員Javaエンジニアの年収

Javaのニーズについて理解したところで、次にJavaエンジニアの給与について見てみましょう。まずは、正社員の給与について。下図は、ビズリーチが運営するスタンバイという求人検索エンジンのデータを元に算出した言語別の平均年収です。

http://www.bizreach.co.jp/pressroom/pressrelease/2017/0810.html
スタンバイ(https://jp.stanby.com/)調べ

第1位にランクインしたScalaは、関数型言語とオブジェクト指向の2つの特徴を持ち、サイバーエージェントやセプテーニなどのインターネット広告業界、TIS等の大手SIerも採用していて、非常にニーズが高まっています。1位になるのも頷けますね。
第2位のPythonの年収も高く、データ分析や、ソフトバンクのpepperの開発言語として採用される等、ニーズも高止まりしている印象です。そんな中Javaエンジニアの平均年収は552万円と全言語の中で6位と上位の位置にいます。自分の年収と比較し、参考にしてみてください。

2.フリーランスのJavaエンジニアの報酬

正社員でも使用経験年数に応じて報酬が決まりますが、フリーランスになると、よりその要素が強くなります。
下記がその参考報酬金額です。
※弊社運営の「テックストック」の実績を参考に算出していて、週5日間稼働した場合の金額です。

実務使用経験6か月:月額報酬30万円程度
実務使用経験1年:月額報酬40万円程度
実務使用経験2年:月額報酬50万円程度
実務使用経験3年:月額報酬60万円程度
実務使用経験5年:月額報酬70~80万円程度

経験年数に応じて金額が大きく変わるのが分かりますね。筆者も数百人のフリーランスのエンジニアの方々の支援に携わった経験から申し上げますが、60万円を超えてくると、プログラミングスキルのみではなくマネジメント経験やエンドユーザーとの折衝経験も求められてきます。現在のプロジェクトでそういう機会に出会えたら、積極的にチャレンジすることをお勧めします。
ご自身が正社員であればご自身の経験年数を参考にフリーランスになった場合の年収を算出できると思いますので是非計算してみてください。多くの方が現在の年収を大きく上回ると思います。

3.フリーランスエンジニアに求められるスキル

1.報酬の高いフリーランスエンジニア案件

次にフリーランスエンジニアの案件例を見てみましょう。
実際の案件例
<人材ビジネス向け勤怠システム開発プロジェクト支援業務>
月額報酬:60~70万円
業種:人材サービス
【業務内容】
・人材ビジネス向け勤怠システム開発業務
・タイムシート(勤務表)の勤怠処理自動化のシステム開発支援
・ユーザー・BPO(データエントリー)からの要望・要件整理
・開発ベンダーとの調整、進捗管理、関係者調整
・作業手順書作成、開発進捗状況のレポーティング
【必須スキル】
・Javaのコーディング経験3年以上
・要件定義、基本設計・詳細設計等の上流工程の経験
・SQLを使用したコーディング経験
・業務系システムの開発経験
・開発ベンダー管理経験

前述のように、60万円を超えてくると、プログラミングスキルのみではなく、開発ベンダーのマネジメントやエンドユーザーとの調整も業務内容で求められてきます。

2.よく出てくるエンジニア求人で求められるスキルセット/収入を上げていくには?

上記を踏まえ、エンジニアとしてどういうスキルを身に着けていけばよいか。大きくは二つかなと思います。

1.コアとなるメインの言語におけるプログラミングスキルを一つ身に着けるだけでなく、フレームワークの習得も並行して行う。そこで身に着けておくべきお勧めのフレームワークをご紹介します。
フリーランスエンジニアとして市場価値を高めていくためには何が必要か。コアとなるメイン言語のプログラミングスキルを身に着けるだけでなく、フレームワークの習得が必須です。正社員では必須スキルとして、フレームワークが求められることはありませんでしたが、フリーランスではフレームワークのスキルを求められるケースが非常に多いです。フレームワークを習得している方ならお分かりかと思いますが、開発効率を上げることができ、エンジニアの人数が多い際に、ソースコードの統一が図れるため、スムーズに開発が進みます。本記事を読んでいらっしゃる方はJavaエンジニアの方が多いと思いますので、Javaにフォーカスして身に着けるべきフレームワークをご紹介したいと思います。

【お勧めJavaフレームワーク3選】


恐らく習得している方が最も多いフレームワークかと思いますが、それに比例して、求人数から見ても、弊社テックストックサイトにおいて、求められる最も多いフレームワークになります。Spring frameworkの特徴としては、習得難易度が低く、短期で身に着けられるのにも関わらず、様々なJavaプラットフォームで動作する点にあります。もしフレームワークをまだ習得していなければ、最初に身に着けておいて損はないフレームワークです。


Spring frameworkに次いで、お勧めのフレームワークを紹介します。Play frameworkですが、お勧めである理由として、JavaだけでなくScalaでも使えるところです。ScalaはポストJavaとも言われている言語で、インターネット広告会社などのWeb系企業だけでなく、エンタープライズ系の企業で使われる等、非常にニーズの高い言語です。Scalaの習得を視野に入れているのであれば、Play frameworkの習得はお勧めです。Play Frameworkの特徴として、動作する際に使うCPUやメモリの量が少ないことから、高パフォーマンスを実現できる点にあります。また、Pythonのフレームワーク「Django」、Rubyのフレームワーク「Ruby on Rails」の影響を強く受けており、非常に軽く、効率性を追求できるフレームワークです。


Play frameworkと並んでニーズが高いのがStrutsです。求人の必須スキルとしても見かけることが多いです。特徴として他のJavaフレームワークと差はないですが、2000年代前半から使用されていて、歴史もあり、採用している企業もまだまだ多いです。現在では、Struts2が使用されることが多く、「プラグイン機能追加・MVCアーキテクチャ適用・アノテーション機能で設定ファイルの削減」が主な機能です。

Javaには開発されているフレームワークは非常に多いです。実現したいキャリアと照らし合わせながら、身に着けるフレームワークを選定しましょう。

2.マネジメントやクライアントとの折衝に携わる機会があれば積極的にその業務を取りに行く。
プロジェクトに入っていると自分の担当ではなくても、上流工程が出来る人が不足しているので、積極的に手を挙げればエンドユーザーとの折衝やマネジメントが出来る機会も多いと思います。自分の担当外だとしてもチャレンジするようにしましょう。そこで評価されれば、次の案件の参画時に報酬アップを狙えます。

4.まとめ

いかがでしたか?
Javaエンジニアの求人、案件自体のニーズ、もらえる報酬についてご理解いただけたかと思います。もし、もっと詳しい案件の内容や自分であればどんな案件にチャレンジできるか気になったら是非一度テックストックまでご相談ください。