「将来性ある会社に入りたいな」Javaは、2000年くらいからWebアプリケーション開発に使われるようになり、業務システム開発のデファクトスタンダードになりました。当時Javaの仕事と言ったら、ほとんどがWebのサーバーサイドでしたが、現在は選択肢が広がっています。スマホゲームと様々な仕事をしてきました。そんな経験を踏まえて、「いまどきのJavaエンジニア転職市場」を紹介します。スマホゲームのサーバーサイドエンジニアJavaから別言語のエンジニアへ転身するなら何が良い?PHP、Ruby等のLLへの転身はかんたんnode.jsはしんどいC#はJavaとそっくりかつ先進的まとめ選択肢はこんなにある!Javaを使った主な求人は以下のようなものがあります。業務システムのサーバーサイドエンジニアWebサービスのサーバーサイドエンジニアAndroidアプリのクライアントエンジニアスマホアプリのサーバーサイドエンジニアスマホゲームのサーバーサイドエンジニアこの他にJavaから他の言語のエンジニアに転身する道もあります。これについては後述します。Javaを使った仕事から見ていきましょう。業務システムのサーバーサイドエンジニアいわゆるSIerのSE種です。システムを発注した顧客企業の要望を聞いてそれをシステムとして実装します。SQLフレームワークの技術スキルが必要です。技術スキルの他に、顧客の要望をヒアリングして仕様に落とし込むなどのコミュニケーション能力や分析能力も必要とされます。WebサービスのサーバーサイドエンジニアWebサービスのサーバーサイドというとPHPやRubyなどのLL言語で作られているイメージが強いですが、Javaで作られているWebサービスもたくさんあります。Javaは、PHPやRubyのようなLL言語に比べて、CPU処理の効率が良いので、大量アクセスをさばくWebサービスに向いています。PHPやRubyでも可能ですが、Javaの方がより効率的にマシンパワーを使うことができます。Time)コンパイラがうまく効く時にはC言語よりも高速に動作するケースもあるほどです。Vue.js等のフロントエンド開発のスキルがあると重宝されます。AndroidアプリのクライアントエンジニアAndroidアプリの開発言語はJavaです。同じJavaでもサーバーサイドとは全く違うスキル(AndroidのSDKやAPI、UIの知識)が要求されます。サーバーサイドに飽きた人はチャレンジしてみるといいと思います。スマホアプリのサーバーサイドエンジニアスマホアプリのサーバーサイド開発にJavaを採用している企業はたくさんあります。APIを開発できます。スマホゲームのサーバーサイドエンジニアスマホアプリと同様にゲームのサーバーサイドでもJavaを採用している企業はたくさんあります。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を実行するのはこんな感じですよね。users");//以下SQL実行結果を受け取った後の処理を書くexecuteQueryをメソッドを実行したらDBとのIOが発生してIOが終わったら結果が戻り値としてrsに入ると。このコードはマルチスレッドで並行で処理されるから同時アクセスをさばけますと。それに対してnode.jsは以下のようなイメージのコードになります。(Javaと対比させるために実際とは違うメソッド名などにしてあります。{//以下SQL実行結果を受け取った後の処理を書く});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エンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるのでいいと思います。私の先輩でフリーランスになった後、派遣社員になった人がいるんですが「自由かつ煩わしい手続きがなくて最高」って言ってました!パーソルテクノロジースタッフに登録するだけでかんたんに派遣社員になれます。転職や仕事術、勉強法等について質問や相談がありましたら、以下のメールフォームからぜひご連絡ください。経験者ならかんたんに解決できる相談って多いのでお気軽にどうぞ!こう書いてもなかなかメールくれる人って少ないのでホント気軽にメールしてくれると嬉しいです。(必須)相談内容たまに間違ったメールアドレスを入力されていて返信できない場合があります。一週間経っても返信がない場合、メールアドレスを確認の上、再度送信をお願いします。(26)プロフィールやまろうと申します。ITエンジニアを十数年やってます。スマホゲームと幅広い分野で仕事をしてきました。そこで培ったエンジニアの本質的な仕事力や転職ノウハウを書いています。プロフィール詳細やまろうのYoutubeチャンネルIT関連のことから人生哲学までざっくばらんに話してます。