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

      2016/09/04

Javaロゴ

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

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

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

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

と様々なタイプのソフトウェア開発をしてきました。

そんな経験を踏まえて、今回は「今どきのJavaエンジニアが転職する時の選択肢」を紹介します。

選択肢はこんなにある!

Javaを使った主な求人は以下のようなものがあります。
1. 業務システムのサーバーサイドエンジニア
2. Webサービスのサーバーサイドエンジニア
3. Androidアプリのクライアントエンジニア
4. スマホアプリのサーバーサイドエンジニア
5. スマホゲームのサーバーサイドエンジニア

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

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

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

Servlet + JSP(HTML,css,JavaScript含む) + JDBC + フレームワークの技術スキルが必要です。

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

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

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

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

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

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

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

また、Androidの開発企業であるGoogleがOracleから「Android開発でJavaを使っているライセンス料を払え」という裁判を起こされて結果が気になるところですが、仮にGoogleが負けても、既に大量のJavaコードでAndroidアプリが作られている以上、AndroidでJavaが廃止されることはないと思います。

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はしんどい

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に比べてプロパティ、インデクサ、デリゲート、型推論による方の省略など言語のシンタックスが進化していて現代的で簡潔な書き方が出来るので、書いててとても楽しいです。RubyっぽいJavaって感じがしました。

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

まとめ

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

ってな感じですね。同じ仕事をずっと続けてるとどうしても飽きてしまってその仕事への情熱を失ってしまいがちです。ですから、ある程度の期間で仕事を変えると毎日が楽しくなるし、自分自身の成長にもつながると思います。それに転職活動もなれると簡単になります。

転職はやってみると思ってたより簡単!

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

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

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

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

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

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

地方在住や、エンジニア未経験の人にも使える転職エージェントがある!

レバテックキャリアは東京・大阪近郊のエンジニア経験者向けサービスなので、地方在住の方や、エンジニアの仕事が未経験の方には、DODAがおすすめです。

未経験の人はサポート対象外のエージェントが多いんですけど、DODAは未経験者の転職も支援してくれます。以前エンジニア未経験の友達にDODAを教えてあげた所、ちゃんと登録できて未経験可の求人を紹介してもらえました。未経験の人こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいくと思います。

DODAは全国に拠点があるので地方在住の方もご利用いただけます。

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

フリーランスになりたい方にはギークスジョブがおすすめです。人脈がなくてもギークスジョブに登録するだけで案件を紹介してもらえます。案件の希望(どんな技術を使っているか、残業が少ないこと)等も聞いてくれるので、やりたい仕事が出来ます。対象地域は東京・大阪・名古屋・福岡近郊です。

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

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

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

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

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

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

メールアドレス (必須)

相談内容

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

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

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

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

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

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

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

エンジニア未経験の方や地方在住の方には『DODA』

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

未経験の人はサポート対象外のエージェントが多い中、DODAは未経験者を支援し転職を成功させています。未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

フリーランスになりたい人には『ギークスジョブ』

フリーランスエンジニアになるには人脈が必要と思われがちですが、ギークスジョブに登録して希望条件を伝えれば、自分に合った案件を紹介してもらえるんですよ!思ってるより全然簡単にフリーランスってなれるもんなんです。

東京・大阪・名古屋・福岡の案件を紹介してもらえます。

 - ITエンジニア成功術 ,