はじめに: エントリーの背景と全体構成
新田(@maximum_80)です。
僕たちは、2018年3月からオンラインプログラミング学習試験プラットフォームtrackを展開しています。
おかげさまで、現在国内で150社を超える企業様に導入をしていただいており、年間で30万人近くの方々にご利用いただいています。
これだけ規模も増えてきたということは、エンジニアとして就活している方々においては、プログラミング選考の際にもしかすると一度はお目にかかったことのある方も増えてきたのではないかと思います。
今回はエンジニアを志している皆さん向けに、この2年間の事業の推進で見えてきた日本国内におけるオンライン技術選考(Online Coding Challenge)の傾向や対策について書いてみようと思います。
- はじめに: エントリーの背景と全体構成
- オンライン技術選考(Online Coding Interview)が国内でも増加している理由
- どのようなスキルをみられることが多いか(世界と日本の違い)
- まとめ
エントリーの構成
毎度エントリーが長くなってしまう傾向にあるので、今回のエントリも以下のように、いくつかのエントリーに分割してお話ししていきたいと思います。
- 傾向編
- オンライン技術選考の増加の背景、なぜ技術力がみられる傾向にあるのか
- オンライン技術選考ではどのような技術力をみられるのか
問題内容編
- 具体的にどのような問題が出題される傾向にあるのか
- それぞれの問題ではどのような観点で評価がされるのか
対策編
- オススメの書籍やオンライン教材の紹介
エンジニアを志す方々の学習の目標設定の参考にして欲しい
当たり前ではあるのですが、我々は企業様向けに支援をしている立場であるので、 問題内容をリークしたりすることや、皆さんにチートして欲しいわけではありません。
ただ、高校や大学の入試がある様にエンジニアを目指すのであれば、今後必ずどこかで技術試験を受けることになると思っています。
技術試験の対策をすることが本筋ではないのですが、「企業で求められる技術やその対策」を知ることによって、エンジニアを志している方々にとって、 エンジニアとしてプロフェッショナルになるためには、何を学べば良いのかの参考にして欲しい と思い、今回のエントリーを書くことにしました。
オンライン技術選考(Online Coding Interview)が国内でも増加している理由
海外のIT企業では技術面接なしの採用はありえない
元々日本では馴染みの薄かった技術面接ですが、GoogleやFacebookをはじめとした特にシリコンバレーを中心とする海外のIT企業では、「Coding Interview」という名目で技術選考が設けられており、ソフトウェアエンジニアであればコーディング面接なしで採用が進むことはほとんどありません。
コーディング面接は当たり前のように行われており、どんなにすごい経験やキャリアを持っていたとしても、その企業で採用されることはまずないと言われるほど、コーディング面接は重要視されていました。
有名な書籍としては、Googleでエンジニアとして働いており、採用のプロセスにも関わってきた方によって執筆されたベストセラー本
www.crackingthecodinginterview.com
という本があります。海外のコーディングインタビューの内容や対策がまとまっており、 シリコンバレーのエンジニアとして就職活動会をする上では、必読書レベルのものにもなっています。
日本語にも翻訳されていますので、もし興味がある方はどうぞ。*1
また、このような書籍から発展して現在では、企業で実施されているOnline Coding Interviewの過去問や対策問題が掲載されているサービス
があったり、Youtubeでコーディング選考の解説動画がたくさんあがっていたりします。
これらを見ると、いかに海外の採用プロセスでコーディング選考が重んじられているかがわかりますね。
このような海外でのエンジニア採用プロセスの潮流を受け、先駆的な日本企業でも10年ほど前からコーディング選考が実施される様になり、問題テキストが配布されてメールで提出する形式の選考を設ける企業や、面接の際にホワイトボードを用いて擬似的にどのようなコードを書くかを説明する選考が用いられるようになっていきました。*2
新卒一括採用という日本固有の独自文化への対応が必要(HR Techの潮流)
このようなコーディング選考が日本でも少しずつ浸透してきたのですが、ここで課題になってきたのが日本における「新卒一括採用」という独自文化です。
中途採用や海外で実施されている通念採用とは異なり、毎年3月の就活解禁を皮切りに、一定期間に大量のエントリー者の選考を捌かなければなりません。
そこで通常のコーディング選考を実施しようとすると、
- エンジニア側に多大な工数が発生してしまう
- 評価が俗人的になってしまい、企業として体系化が難しい
など、沢山の課題に直面しました。 これはせっかく技術を見極めようと思っても、企業にとっても求職者にとってもデメリットが多くなってしまいます、 そこで選考をより効率的に、デジタルの力を用いて解決しようとして生まれたのが、オンライン技術選考です。
オンラインでコーディング試験を出題管理できるシステムを導入することにより、 試験の結果やスキルを一定のスコアで可視化して標準化することで、より効率的で体系化した採用フローの設計ができるようになりました。
どのようなスキルをみられることが多いか(世界と日本の違い)
それでは、実際にオンライン技術選考を導入している企業では、どの様なスキルを見極めるケースが多いのでしょうか。
海外ではガッツリ数学とアルゴリズム能力をみられる(データサイエンスもトレンド)
前述で紹介した海外の事例や書籍を見れば一目瞭然ではあるのですが、 海外の技術選考ではガッツリ数学とアルゴリズムの能力を見極める課題が採択されています。
数理的な思考やアルゴリズムの実装力というのは、ソフトウェアエンジニアにとっての基礎体力、筋肉量のようなものですから、ポテンシャルを見極めるという観点で多くの企業が導入をしています。
また最近ではデータサイエンスの注目が集まっていることから、Kaglleのようなデータサイエンスコンペティションで出題される様なデータサイエンスの問題を出題する企業も増えてきています。
日本では基礎的な技術総合力を測るケースが多い
一方で、日本の会社でもアルゴリズム能力を見極めるケースもあるものの、 僕の所感ではそういった企業の選考はまだマイノリティで、多くの企業では
- 体系的なIT知識(Webにおける知識やセキュリティ等)
- 基礎的なプログラミング実装力(構造化プログラミング能力)
- Web実装力
- フロントエンド技術(HTML,CSS,JavaScript)
- バックエンド技術(サーバサイドスクリプト言語,SQL)
を組み合わせた問題を出題する傾向が非常に強いです。
要因としては、新卒採用と中途採用という採用の枠組みが明確に分かれている中で、
新卒採用においては、文系未経験のエンジニア採用も広く実施している企業が多いため
というのが考えられます。即戦力採用よりも、人材育成に注力し
エンジニア不足が深刻な中で、未経験でも採用をして入社をしてから育てる
という人事設計をされている企業が多いことが、このような問題出題傾向にあるのではないかと思っています。 実際に研修のお手伝いをさせていただくケースも多いのですが、研修に注力する多くの企業は、上記のような基礎力を研修でもみっちり学ばせるような形式をとることが多いのではないかと思います。
通年採用や即戦力採用を実施する国内企業は海外と同様の基準のケースも
上記の様な傾向にありながらも、一部の企業様においては、海外の採用プロセスと同様
新卒だろうが中途だろうが通年で即戦力を採用する
という企業のケースもあります。 このような採用スタンスの企業においては、入社後に手取り足取り基礎的な研修をするのではなく、即戦力として採用してすぐに実践現場に配属する様な人事設計をしています。
即戦力採用になるので、新卒でも給料が高い傾向にあるのもこのケースの特徴です。
我々のお客様だと、LINEさんやYahooさんは代表的なケースとしてあげられます。
アルゴリズムに自信のある方や、即戦力として採用されることを希望する方は挑戦してみるといいかもしれません。
また、ユニークで面白いと感じるのは、例えばLINEさんでは 「即戦力を求めてるけど、学生時代に何回でも挑戦してもいいからね」 という採用スタンスをとっていることです。
あくまで学生時代に基礎力を固めて欲しいけど、採用する側としては成長を加味して何度でも挑戦してください、というスタンスを取ることでエンジニアを志望する皆さんに常にチャンスが与えられている、という点でとても理にかなったこれからの時代に求められる採用プロセスなのではないかな、と感じています。
まとめ
オンライン技術選考の背景やどのようなスキルを見極めているのかについてご紹介させていただきました。
- 日本でもオンライン技術選考は主流になりつつある
- 一方で、問題の出題傾向は海外とは異なる
ということがおわかりいただけたのではないかと思います。
次回のエントリーでは、このような採用プロセスを導入している企業は具体的にどの様な技術力を求めているのか、どのような問題を出題しているのか、という踏み込んだお話をさせていただければと思います。