いまどきのJavaエンジニアが転職する時の選択肢

      2017/04/30

Javaロゴ

「Javaって求人多いから転職楽勝だよな?」
「今後も需要あるよね?あると言ってくれぇーー!!?」
「将来性ある会社に入りたいな」

Javaは、2000年くらいからWebアプリケーション開発に使われるようになり、業務システム開発のデファクトスタンダードになりました。当時Javaの仕事と言ったら、ほとんどがWebのサーバーサイドでしたが、現在は選択肢が広がっています。

私はこれまでに3回転職して、

業務システム → ECサイト → スマホゲーム

と様々な仕事をしてきました。そんな経験を踏まえて、「いまどきのJavaエンジニア転職市場」を紹介します。

選択肢はこんなにある!

Javaを使った主な求人は以下のようなものがあります。

  1. 業務システムのサーバーサイドエンジニア
  2. Webサービスのサーバーサイドエンジニア
  3. Androidアプリのクライアントエンジニア
  4. スマホアプリのサーバーサイドエンジニア
  5. スマホゲームのサーバーサイドエンジニア

この他にJavaから他の言語のエンジニアに転身する道もあります。これについては後述します。まずはJavaを使った仕事から見ていきましょう。

1. 業務システムのサーバーサイドエンジニア

いわゆるSIerのSE種です。システムを発注した顧客企業の要望を聞いてそれをシステムとして実装します。

  • Servlet
  • JSP(HTML,css,JavaScript含む)
  • JDBC, DB, SQL
  • フレームワーク

の技術スキルが必要です。

技術スキルの他に、顧客の要望をヒアリングして仕様に落とし込むなどのコミュニケーション能力分析能力も必要とされます。

2. Webサービスのサーバーサイドエンジニア

WebサービスのサーバーサイドというとPHPやRubyなどのLL言語で作られているイメージが強いですが、Javaで作られているWebサービスもたくさんあります。

Javaは、PHPやRubyのようなLL言語に比べて、CPU処理の効率が良いので、大量アクセスをさばくWebサービスに向いています。もちろんPHPやRubyでも可能ですが、Javaの方がより効率的にマシンパワーを使うことができます。JavaVMに搭載されているJIT(Just In Time)コンパイラがうまく効く時にはC言語よりも高速に動作するケースもあるほどです。

使っている技術は業務システム開発と同じですが、Webサービスの方が、動的に画面を切り替えるリッチなUIになっているものが多いので、AjaxやJQuery、AngularJS, React.js, Vue.js等のフロントエンド開発のスキルがあると重宝されます。

3. Androidアプリのクライアントエンジニア

Androidアプリの開発言語はJavaです。同じJavaでもサーバーサイドとは全く違うスキル(AndroidのSDKやAPI、UIの知識)が要求されます。サーバーサイドに飽きた人はチャレンジしてみるといいと思います。

4. スマホアプリのサーバーサイドエンジニア

スマホアプリのサーバーサイド開発にJavaを採用している企業はたくさんあります。

スマホアプリのサーバーサイドでは、レスポンスをJSON形式で返すJSON APIを開発します。

SpringMVCやJersey(JAX-RS)などを使えばかんたんにJSON APIを開発できます。

5. スマホゲームのサーバーサイドエンジニア

スマホアプリと同様にゲームのサーバーサイドでもJavaを採用している企業はたくさんあります。

使っている技術はスマホアプリのサーバーサイドと同じでJSON APIを開発するスキルがあれば採用してもらえるでしょう。

Javaから別言語のエンジニアへ転身するなら何が良い?

私は業務システムのJavaエンジニアでしたが、その後、Webサービスやスマホゲームのエンジニアへと転身しました。

Javaの他にPHP、Ruby、node.js、C#などを覚えました。やってみると意外とかんたんだったんです。それぞれ見ていきましょう。

PHP、Ruby等のLLへの転身はかんたん

私がPHPを初めて使った時に感じたのは「コンパイルがないから、なんかふわふわしてるな」というものでした。

ブラウザ側の処理はJavaScriptで書いていたのでコンパイルしない言語が初めてだったわけではないのですが、サーバーサイドはコンパイルして文法に誤りがないのが保証されているものっていう感覚が強かったので、初めの内はふわふわした不思議な感覚に襲われてましたが、慣れると快適に感じるようになりました。

コンパイルで文法チェックされなくてもちゃんとプログラムは書けますし、コードをちょっと変えて実行して確認してというスピーディでリズミカルな開発ができて気に入っています。

JavaってEclipse立ち上げてから依存性の確認でしばらく待たされるとか、コードを変えるたびにTomcatを再起動しなきゃ、と待つ時間が多いですが、PHPやRubyだとそういったことがなく、サクサク作業が進む気持ちよさがあります。

node.jsはしんどい

node.jsとはサーバーサイドJavaScriptの処理系です。

WebSocketを使ったリアルタイムすごろくゲームを作りたくてnode.jsをやってみたのですが、正直しんどかったです。

node.jsのアーキテクチャーってちょっと変わってて、シングルスレッドノンブロッキングIOなんです。

「はぁ?なにそれ?」って思われたかもしれませんが、Javaなどの一般的なWebアプリケーションサーバーはマルチスレッドブロッキングIOです。全てが逆なんです。

シングルスレッドで同時アクセスをさばくためにIOをブロックしないんです。

コードのイメージで言うとJavaでSQLを実行するのはこんな感じですよね。

executeQueryをメソッドを実行したらDBとのIOが発生してIOが終わったら結果が戻り値としてrsに入ると。このコードはマルチスレッドで並行で処理されるから同時アクセスをさばけますと。

それに対してnode.jsは以下のようなイメージのコードになります。(Javaと対比させるために実際とは違うメソッド名などにしてあります。)

IOがブロックされません。そのため、IOが終わったらコールバックされる関数を渡しています。ですからIOが発生する度にコールバック関数を渡す必要があり、IOが3回あったらコールバック関数が三回ネストすることになります。以下のような感じです。

いわゆるコールバック地獄です。正直しんどいです。node.jsをしばらくやった後、JavaやPHPに戻ったら、「なんて楽なんだぁ」と喜びに満ち溢れました(笑)

修行する意味でnode.jsを使うのはいいと思います。

C#はJavaとそっくりかつ先進的

スマホゲーム開発ではUnityというゲームエンジンがよく使われています。その開発言語がC#なんです。

ゲーム開発の仕事してみたいなと思ってUnityとC#を独学したのですが、思っていた以上にかんたんに修得できました。

ゲームのプログラミングって難しいイメージがあったのですが、Unityの場合、ローレベルな難しい処理はゲームエンジン側がやってくれますし、GUIでオブジェクトを配置したりすることでコードを書かなくても作り込める部分が多いので、初心者でもそこそこちゃんとしたゲームが作れます。

それに、C#の文法はほとんどJavaと同じなのでかんたんでした。Javaに比べてC#には

  • プロパティ
  • インデクサ
  • デリゲート
  • 型推論による型の省略

など、便利な文法がたくさんあり、現代的で簡潔な書き方ができるので、書いててとても楽しいです。言うなれば、C#はRubyっぽいJavaって印象です。

それで、いくつかゲームを作って、それを実績としてゲーム会社の面接を受けたらエンジニアとして採用してもらえました。案外できちゃうもんです。

まとめ

  • Javaエンジニアの仕事は業務システム・Web・スマホと多彩
  • Java以外の言語への転身もかんたん(プログラミング言語は皆似てる)

ぜひ、参考にしてください!

転職活動はやってみると簡単!

私自身3回ほど転職してるんですが、思ってたより簡単で、転職エージェントを使ったらあっという間でした。

エージェントが応募先候補の選出から、面接の日程調整までやってくれるので、こちらから動かなくても半分くらい自動的に進む感じで楽でした。しかも今は好景気で売り手市場なので転職するのにちょうど良い時期です。

レバテックキャリアっていうエージェントがおすすめです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

なので、レバテックキャリアのホームページ見てみてください。「ホントだ、美人じゃん♪」ってきっと思うはずです笑

職務経歴書の作り方がわからないという方は、私の使っているテンプレートを使ってみて下さい。

地方在住の人にも使える転職エージェントがある!

レバテックキャリアは東京・大阪近郊向けサービスなので、地方在住の方には全国の求人を扱っているワークポートがおすすめです。利用者の評判がめっちゃいいのでホームページ是非見てみてください。

人脈がなくてもフリーランスになれる!

フリーランスになりたい方にはレバテックフリーランスがおすすめです。人脈がなくてもレバテックフリーランスに登録するだけで案件を紹介してもらえます。案件の希望(どんな技術を使っているか、残業が少ないこと)等も聞いてくれるので、やりたい仕事が出来ます。対象地域は関東圏です。

「派遣社員」なら正社員とフリーランスのいいどこ取り!

フリーランスになりたいけど、確定申告とかめんどくさいなという方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるのでいいと思います。

私の先輩でフリーランスになった後、派遣社員になった人がいるんですが「自由かつ煩わしい手続きがなくて最高」って言ってました!リクルートITスタッフィングに登録するだけでかんたんに派遣社員になれます。

私(やまろう)への相談メールも募集中

転職や仕事術、勉強法等について質問や相談がありましたら、以下のメールフォームからぜひご連絡ください。
経験者から見れば簡単に解決できる相談って多いのでお気軽にどうぞ!こう書いてもなかなかメールくれる人って少ないのでホント気軽にメールしてくれると嬉しいです。

メールアドレス (必須)

相談内容

たまに間違ったメールアドレスを入力されていて返信できない場合があります。一週間経っても返信がない場合、メールアドレスを確認の上、再度送信をお願いします。

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

ホームページを見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはワークポートというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『ワークポート』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 技術 ,