フューチャー技術ブログ

コード選考の問題選定を現場社員がやるわけ

はじめに

SAIG(Strategic AI Group)の塚本です。AIと言えば Deep Learning 等の機械学習分野が中心ですが、それらが適さないと判断された問題全般(数理最適や複雑なデータ処理)を担当しています。

また、競技プログラムを中心とした全社的な活動に関わっており、フューチャーが2018年より実施している、新卒採用のコード選考についてご紹介します。

コード選考をはじめた経緯

全社員がプログラミングスキルを求められるフューチャーにとって、採用時におけるその能力の定量評価は長年の課題であり、昨今の採用サービスの充実を機に取り組みをはじめました。

より詳細な経緯は下記記事をご参照ください。

高いプログラミングスキルを持つ人材を引きつける「コード選考」 全社員がプログラミングを熟知したテクノロジー企業の採用フローを公開!

サービスを活用することが決まったものの、採用フローの意図に沿ったデザインを行う必要があり、採用チームのメンバーだけでは対応が難しい部分がありました。そこで、社内の部活動として競技プログラミング部を立ち上げ・運営していた私に相談が来ました。

コード選考の位置付けとデザイン

まず、フューチャー社員の多くはITコンサルタントという1職種に属しており、期待される役割はこれまでの実績や本人希望に応じて流動的に定められます。コード選考でも、プログラミングに特化した人材のみを選出するのではなく、ITコンサルタントとして基礎的なプログラミングの素養を持っているか確認することを目的としました。
一方、高いプログラミングスキルを有した人材を評価すべく、スキルに応じて点数の差が開くよう問題選択を行うことも求められます。さらに、合格者が次の選考に進む際や内定承諾時の判断基準として、各選考内容はシビアに見られます。

これらの観点から、コード選考に求められる要素を下記のように定めました。

  • 基礎的なプログラミングの素養を有しているか確認すること0
  • プログラミングスキルの高さに応じて点数差が生まれること 1
  • 特定の知識やテクニックが不要なこと
  • 問題文の理解が容易なこと
  • 解法を考えるのが楽しいこと

これらを加味し、以下のようなコード選考の実現を目指します。
「プログラミング言語に依らず解け、段階的に難易度が上がるパズルチックな問題を複数 2出題する。」

問題選定

活用したサービスでは、予め用意された数百問の問題から自由に組み合わせて試験を作ることができます。
各問題には、難易度や所要時間の目安が併記されているのですが、あまり納得のできない値であったり、当社の狙いにそぐわない問題も多く見受けられました。そこで、目指すコード選考の実現のため、全ての問題を現場社員で見直すことにしました。

  1. スクリーニングとして、私が全問題文を確認、候補として20問以内に絞り込みます。
  2. 競技プログラミング部のメンバーを中心に、協力してくれる社員に問題候補を共有します。
  3. 実際に問題を解いてもらって、難易度の目安や感想をフィードバックしてもらいます。
  4. 難易度が綺麗な階段状になるよう組み合わせを考え、出題する問題を選定します。

問題選定の実施にあたり、解く問題にノルマや担当等を定めず、部活動の延長として興味の向くままに取り組んでもらえることを大事にしています。解き終わった問題に対し担当したメンバー間で議論が盛り上がることも多く、一種のお祭りのようになっているかも知れません。

結果の活用

コード選考の結果の活用方法については、特に面接など、他の選考フローと絡めて試行錯誤を行っています。年々変化するため確定的なことは言い難いのですが、自社の狙いに沿った観点で定量化されていることにより、形骸化せず、選考基準として活用できることにメリットを感じています。

効果

コード選考は当初想定を超える成果に繋がっています。

まず、コード選考を実施することにより、ITコンサルティング業界を就活候補としていない学生からも応募が来るようになりました。また、面接官の評価以外に、客観的な数値基準が加わったことにより、柔軟な選考が可能になりました。そして、面接時のネタや内定承諾時の理由として、コード選考内容に対する好印象を上げる応募者が少なくない人数生まれました。

上記の結果、新卒採用者の内、すでにコード選考経由の人数は十分な割合を占めるようになりました。

おわりに

フューチャーのコード選考の取り組みについてご紹介しました。
IT人材の枯渇が叫ばれる中、各社プログラミングスキルを測る施策を検討・採用する企業も多いと思います。コード選考といっても、企業毎に求める狙いや評価基準は様々であり、それに合わせて必要な選考をどう実現すればよいのか、本取り組みが何かの参考になれば幸いです。

(個人的には、コード選考を通じて多くのアルゴリズマーに入社頂いたので、より良い問題を揃えるため、そろそろ社内での自作を実現したいと考えています。)


  1. 0.AtCoder緑コーダーの方の多くが通過するレベルを想定しました。
  2. 1.AtCoder黄コーダーの方であれば満点が取れるレベルを想定しました。
  3. 2.所要時間の兼ね合いから5問程度を目安にしています。