支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


注目の高まるプログラミング言語「Scala」

Scalaは、オブジェクト指向・関数型プログラミングの双方を扱えるハイブリッド型として2003年頃リリースされた比較的新しいプログラミング言語です。発祥元となるアメリカを中心に、Scalaの活用は近年大きな盛り上がりを見せており、日本でもScala人材の求人情報を目にする機会が増えてきました。Twitter、Linkedin、ChatWorkなどが採用しているということもあり、Scalaは今エンジニアからもっとも注目を集めるプログラミング言語だといえるでしょう。

それでは大手SNSが採用しているとはいえ、なぜこれほどまでにScalaが注目されているのでしょうか?Scalaエンジニアの求人市場とは?未経験者でもチャレンジできる?プログラミング言語としての特徴やメリット、未経験からScalaエンジニアを目指す方法まで、意外と知られていないScalaの情報を紹介していきます。

Scalaの特徴

オブジェクト指向・関数型のハイブリッドプログラミング言語であるScalaは、当然のことながらclassベースのオブジェクト指向汎用プログラミング言語、Javaとの相性がいいのが特徴です。ScalaからJavaの関数を呼び出す、あるいはその逆JavaのclassをScalaに継承する、あるいはその逆などが可能ですが、これはScalaがJVM(Java Virtual Machine)で動作するからです。

JVMで動作するということは、Javaを象徴するともいえるクラスライブラリを自在に利用できることを意味します。さらにJVMが動作可能なら、macOS・Windows・LinuxなどOS・プラットフォームに依存しないマルチデバイス環境を構築できることも意味します。また、変数・引数・返り値などの「型」を予め定義する「静的型付き言語」であるのもScalaの特徴です。

Scalaを活用するメリット

それでは、JVMで動作する、静的型付き言語であるという特徴を持つScalaを活用することによってどのようなメリットが得られるのでしょうか?

開発を効率化できる

Scalaには、Play2に代表される機能性に優れたフレームワークが複数存在しており、柔軟かつ簡単な実装で開発を効率化できるメリットがあります。たとえば、Twitterが開発しTwitterServerの実装でも使われたWebフレームワーク「Finatra」や、RubyのSinatraフレームワークにインスピレーションされたといわれる「Scalatra」などがあり、いずれも気軽に使えて軽量なのがポイントです。

もちろん、20年以上も業務システムの現場で活用されてきた資産ともいえるJavaクラスライブラリを活用できるのもScalaのアドバンテージです。ライブラリを活用できれば実装の手間も省けるため、フレームワークの活用とあわせより効率的な開発環境を実現できます。

安定性を高められる

予め定義された型以外のデータを変数で使えない、静的型付き言語であるScalaを活用すれば、ムダな値を入れたりムダな容量をとられてしまうということがなくなります。つまり、Scalaで実装すれば「コードをムダなく短く書ける」「動作が軽快になる」メリットがあり、結果的にエラーの発生を未然に防ぎ「システムの安定性を高められる」のです。iOSのネイティブアプリが静的型付き言語で開発されるのは、限られたリソースをムダなく使って軽快に動作させるためであり、Scalaにも共通したアドバンテージがあるといえるでしょう。

Scalaはどんな開発に活用される?

それでは、Scalaならではの特徴・メリットはどのような開発の現場で活かされているのでしょうか?Twitterに代表される大規模なSNSネットワーク構築を中心にScalaの活用が広がっているほか、金融機関のシステム・ネットワーク、ビッグデータやAIを活用した分析など、複雑なシステムを軽快に安定動作させたいシステム開発でScalaが活用されるようになっています。

高度な機能・セキュリティが求められるWeb・ECサイト構築、Webアプリケーション・サービスはもとより、複雑化・高度化が進むモバイル・ソーシャルゲームでもScalaを活用するケースが増えています。また、PHP・Rubyなどで構築された既存システム・サービスなどの安定性を高める目的で、Scalaを実装するといったケースも多く見られるのが近年の傾向です。

どちらかというと、アジャイル開発の手法に向いている傾向のあるScalaは開発のシステム・種類を問わず、少人数のチームがオフィスに常勤して作業するケースが多いのも特徴です。フリーランスエンジニアの場合も常勤が基本であり、在宅勤務というケースは多くありません。

Scalaエンジニアの求人状況

Scalaがどのような開発に活用されているのかを踏まえたうえで転職サイトの求人状況を見てみると、興味深いことに気が付きます。サーバサイドエンジニアのScala求人は多く、大手SNSサービスなどで採用されているにもかかわらず、大規模なScalaプロジェクトの求人情報はあまりないのです。

Scalaエンジニアの求人は多くない?

Java関連の求人数と比較しても、Scala関連は1/10程度であり求人数が圧倒的に少ないのもわかります。開発に携わる大手企業であれば、どこであってもScalaを扱う部署があるといわれるほど注目されているにもかかわらず、なぜ求人数が少ないのでしょうか?

ひとつにはScalaエンジニアの数が圧倒的に少ないこと、次に徐々に増えはじめているもののまだまだ日本でのScalaプロジェクトが多くないこと、最後にScalaエンジニアの転職が少ないことが挙げられます。つまり、数少ない優秀なScala人材は主要な企業が既に押さえており、高待遇で貴重な人材を流出させないため転職が少ないという図式が成り立ちます。Scalaプロジェクトの増加が見込める今後は状況が変化するかもしれませんが、売り手市場にも関わらず求人が少ないのは、Scalaを取り巻く特殊な事情があるといえます。

高収入が狙えるScalaエンジニア

一方、実務経験とスキルを持つScalaエンジニアは、転職を有利に進められる状況であり高収入を得られやすい立場にもあるといえるでしょう。実際、平均年収が10万ドルを超えるといわれるアメリカにはおよばないにしても、日本でもScalaエンジニアの平均年収は600万円を超えるといわれており、プログラマーのなかでもトップクラスの収入が期待できます。

Scala未経験のエンジニア・プログラマーであっても求人のチャンスはあります。現時点ではScala人材は慢性的な人手不足の状態であり、将来的なことを見越して採用企業がScala人材を社内育成する傾向にあるからです。未経験求人はほとんど公開されていないものの、探し方・アピールの仕方を工夫すればチャンスは訪れるでしょう。

未経験者のScala習得は難しい?

高収入が狙えるScalaエンジニアですが、未経験者が簡単にスキルを習得できるものなのでしょうか?Scalaは非常に大きなメリットのあるプログラミング言語ですが、それはオブジェクト指向・関数型のハイブリッドという側面を持っているからであり、自在に操るためにはどちらの言語も理解していなければなりません。

つまり、まったくの未経験者がScalaスキルを習得するにはオブジェクト指向・関数型両方を理解するための長い学習時間が必要です。もちろん、未経験者だからといってスキルを習得できないわけではありません。しかし、参考書をはじめとした関連書籍は多くなくScalaコースを設定するスクールも少ないため、簡単に学べる環境が整っていないのも事実です。

未経験からScalaエンジニアになるには

それでは、未経験からScalaエンジニアを目指すにはどうしたらよいでしょうか?どのプログラミング言語であったとしても、中途採用を検討する企業であれば即戦力人材を欲しがるのが一般的です。新卒採用で育成するという企業もありますが、Scalaに限ってはまったくの未経験者を採用するというケースはほぼないようです。とはいえ、数少ないScala人材を獲得したいと考える企業は少なくありません。ある一定の条件を満たしていれば、未経験でもへチャレンジできるでしょう。

Scala未経験求人をクリアする条件

まずはScala未経験のエンジニア・プログラマーの場合ですが、なんらかの言語での開発経験を持つこと、Scalaへの学習意欲があることという2つをクリアできれば、採用の可能性が大きく高まります。その中でも特にJava、あるいはRubyを使った開発経験があればプラス要素であり、Scala案件に少しでも携わっていれば大きく前進できます。しかし、求人への応募時にScalaをまったく学んでいないのでは意欲を疑われてしまいます。オンラインスクール受講などの学習実績を示せるようにしておくべきです。

多くの言語を含むプログラミング未経験者がScalaエンジニアを目指すのは、そう簡単ではありません。Scala人材を社内育成する企業が多いとはいえ、ゼロから育成するのでは教育コストが高くなってしまうからです。スクールなどでしっかりとスキルを身につけ、アピールできるポートフォリオを用意するなどそれなりの努力が必要でしょう。Scalaの開発環境を構築するのは難しくはないため、とにかく手を動かしてみるのが重要です。

未経験者がScala求人を探すには

未経験のエンジニアでもチャレンジしやすい売り手市場ではあるものの、Scalaの公開求人案件はそれほど多くないのも事実です。ではScala求人情報はどのように探せばいいのでしょうか?

転職・求人エージェントを使う

転職・求人エージェントに登録してじっくり待つというのが、もっとも一般的な方法だといえるでしょう。ただし、転職・求人エージェントであってもScala求人が多くないのは転職サイトなどと同じであり、複数のエージェントへ登録して様子を見るのがおススメです。フリーランスエンジニア向けのエージェントもあるため、雇用形態にこだわりがないなら選択肢も広がります。Scalaの求人状況を考えれば、友人・知人に相談するリファラル採用、SNSの活用なども有効かもしれません。

カンファレンス・イベントに参加する

日本国内でも「ScalaMatsuri」「Scala関西Summit」といったカンファレンス・イベントが定期的に開催されており、Scalaに関連する企業やスポンサー企業のエンジニアが一同に会する機会があります。COVID-19の影響で2020年の開催は流動的ですが、これらのイベントを有効活用するのもひとつの方法です。気が長い話になってしまうかもしれませんが、その間にScalaの学習を進めておくのにも役立つでしょう。

まとめ

流行り廃りのあるプログラミング言語の常で、Scalaの将来性を不安視する声があるのも事実です。しかし、Scalaが移り変わるシステムのトレンドに対応できる柔軟性を持ち合わせたJavaの後継としての期待を持たれているのも事実なのです。幅広いプロジェクトに関われる可能性があり、高収入も期待できるScalaは未経験のエンジニアにとっても、チャレンジのしがいがあるプログラミング言語なのです。