コーディング試験「Codility」とは何か?
スマートニュースが明かす運用の裏側

コーディング試験Codility運用の実態と実績

"GO GLOBAL" meetup #1
に開催

2018年11月26日、スマートニュース株式会社にて「"GO GLOBAL" meetup#1」が開催されました。海外の活動や海外のエンジニア文化に関心のあるエンジニアが集い交流を行うことを目的とした本コミュニティ。世界各国で活躍する現役エンジニアたちが、海外におけるリアルな経験や文化を語ります。第1回目となる今回は、コーディング面接やオンラインテストについて、日本で実際に運用を開始している企業や、海外でコーディング面接を受けたことのあるエンジニアが、そのノウハウや実体験を明かします。プレゼンテーション「コーディング試験Codility運用の実態と実績」に登壇したのは、@k0000i氏。企業としてコーディング試験を実施する同氏が、運用してみてわかったことについて解説します。講演資料はこちら

コーディング試験Codility運用の実態と実績

@k0000i氏:ご紹介ありがとうございます。Onishiでございます。どうぞよろしくお願いします。

さっそく『コーディング試験Codility運用の実態と実績』というテーマで進めさせていただきます。

まず「コーディング試験とはどのようなものか」というところです。

簡単に言いますと、スポーツでいえば基礎体力にあたるものかなと思っていて。コーディング試験につきましては、コンピュータサイエンスをどれくらいわかっているという理解度を測るものというところで定義して我々は運用を進めております。

Codilityについてなんですけど、実際にどういう企業で導入されているかと言いますとamazon社、Intel社、EA社などいわゆるグローバル企業で使われているものでございます。

もう1つ特徴を挙げるとするならば、多数の言語で受験可能なものとなっております。なのでC#とかPHPとか、だいたいの言語で受験が可能でございます。

ちなみにもちろんVisual Basicで回答することも可能です。余談でありますが弊社で調べたところVisual Basicで回答した人は1人もいなかったので、もし目立ちたい方がいらっしゃいましたらぜひVisual Basicといったもので受験していただきたいなと軽くジャブを入れておきます。

試験の流れ

実際にどういうフローで候補者は試験を受けるのかと言いますと、まずスマートニュースに行き、WorkableというATSを通してアプライします。そして、HRのほうでドキュメントをチェックして、コーディングテストに進んでくださいというアナウンスが来ます。

実際にこのようなメールが飛んできます。

黒塗りしていますが、そこをポチっと押していただくとCodilityの導入ページに行きます。

実際のページなんですけれども、こんなページに飛びます。

スマートニュースでは「2時間で2問の設問を解いてください」という内容で進めてもらっています。問題としては「時間計算量と空間計算量を満たすプログラムを書いてください」と書いております。

下へスクロールしていくと、こんなページがありましてつらつらと説明文が書いております。

FAQにもありますし、よく候補者の方から質問を受けるんですけれども、IDEは使ってかまいません。

けっこうそこらへんを誤認されている方がいらっしゃるんですけど、使ってもらってもまったく問題ございません。1番下にありますようにいろんな言語で使っていただけます。もちろんVisual Basicも可能です。

(会場笑)

ややウケですね。ありがとうございます。

次にいくとスクロールがあって、あとは個人情報に同意してチェックすれば受験というふうに進みます。いくつかTipsがありまして、スコアを上げるポイントとしては、デモテスト練習問題がCodilityのページ内にありますのでぜひ受験していただいて。どういうフローで受験を進めていけばいいのかとか、どんな文章内容になっているのかというところが事前に確認できるようになっていますので。

そのあたりを見ていただくとだいぶスコアアップにつながってくると思います。なのでデモテストや練習問題を受けてもらったほうがいいでしょう。

レポートの運用方法

続きまして、じゃあ実際に受けた後についてです。こちら側にレポートが届くんですね。

どういうレポートが来てどんな運用方法になっているかと言いますと、基本的にスコアについてはこちらにあるように正確性のスコアとパフォーマンススコアの合計の平均がスコアになっていて、そこを判断します。

それぞれの定義といたしましては、正確性については実際の業務でも問題ないか。バグを起こさないか。ちゃんとコードが書けているかというところのスコアであって。パフォーマンスについては、例えば大きなデータ量ですね。膨大なデータに対しても対応できる能力があるのかというところを判断しています。

このあたりのスコアについて重視するポイントは企業によって異なってきます。というところでスマートニュースについてなんですけれども、基本的にスコアが返ってくるし判断はするんだけれども。

社長も社内のページで「コードテストだけでは実力を測ることは不可能だ」と述べています。

ですので、それを通じてなるべく良いところを拾おうとしていますし、能力については基本的には面接で直接確認するという内容で採用フローは進めております。

この評価、レポート運用方法についてなんですけれども。最近バズった例を共有したいなと思っていて。最近バズったと言っても2018年の1月2月の話なんですけれども。

たぶんこの中にもこのニュースをご存じの方がいらっしゃるんじゃないかなと思いますが。Homebrewの作者がGoogleの選考に参加したところ、Techインタビューのところでバイナリツリーを反転することができないという理由だけで落ちたということがけっこうバズっていて。

要は、GoogleはこういうポイントをクリアしないとTechのインタビューで落ちてしまうというところがあるんですけれども。

改めて弊社としては基本的に良いところをなるべく見ようと考えておりますので、実際にエンジニアがどういう考えを持ってコーディングに取り組んでいるのか。そのコーディングスタイルというというところを判断していますし、時間の使い方も見ています。

実際のレポート画面

時間の使い方を見ている、スタイルを見ているって何ですかっていうところなんですけれども。実際に画面を見ながら、どういうふうにHRが見ているのかというところをお見せしたいなと思います。

この画面はパブリックにCodilityでシェアされているものです。これが実際のレポートになるんですけれども。例えば、この方は86パーセントというスコアになっていて、これはそれぞれの問題で100、100、58で258割る3でこのスコアが出ています。それぞれの問題につきまして4分、15分、9分というような時間使いをしています。

スタイルのところについてなんですけれども、Codilityがすごく便利なのは、ここをポチっと押していただくとこんなかたちでどういうふうにコードが書かれているのかというのが動画でわかります。

こういうところもチェックできますし、設問ごとにどれが正しくて、どれが合っているのかというところもそれぞれ判断することができます。こういったところも見ながら我々は選考につなげています。活かしていますという話でございます。

結果をどのように活かしているか?

その結果どういうふうに活かしているのかです。改めて強調しておきたいのが、基本的にコードテストのスコアだけで実力を測るのは不可能だというふうに考えていて、なるべく面接で判断しようという考えのもと採用を進めております。

プロセスにつきましてはコードテストの結果と事前にいただきますレジュメを書類選考として判断して、その結果ハイアリングマネージャーと人事が検討した結果面接に進めるという方向で進めております。

スコアについてなんですけれども、基本的には機密情報として扱っているので関連部署でしか見れないようにしています。

これはスマートニュースの実績なんですけれども、4年以上の運用実績がありまして、平均スコアは相当低いです。なので難しそうだと思っても心配しないでください。

さっきから言っているように完璧なスコアは求めていませんし、スタイルであるとか考え方というところも含めて判断しているのでぜひチャレンジしてほしいなというふうに思っています。

実際にデータを集計してみたんですけれども、16.7パーセントなので6人に1人以上は0点になっております。詳細なデータも見ていったんですけれども、だいたい5分から10分以内でほとんどの人が離脱するというような結果が出ているので(笑)。

先ほど言ったようなデモテストであるとか練習問題をもうちょっと見て受験してくれるとこのへんのパーセンテージが下がってくるのかなと。ちなみに満点は3パーセント以下でしたというところでございます。

チートも可能?

余談なんですけれどもチートの話をさせてください。

Codilityはそのような可能性があると受験直後ですね、提出直後にメールでSimilarity Checkというメールが飛んできます。

過去にけっこうおもしろいチートの方もいらっしゃって。例えばなんですけど、途中までC++で書いてました。それを一旦消してPHPで送り直しましたと(笑)。

完全にチートなんですけど。こういった内容であってもSimilarity Checkで「過去にこういうコード内容で提出した人いますよ」というような案内が来るので、それもこちらに飛んできますと。

基本的に怪しいと思ったら面接でホワイトボードコーディングとか使って確認するようにしてるんですけど。逆に怪しいと思わなくても面接の中でコードの意味は聞くのでその点はご安心いただけたらなと思っております。

以上、ご静聴ありがとうございました。

(会場拍手)

Occurred on , Published at

"GO GLOBAL" meetup

海外での活動や海外のエンジニア文化に興味のあるエンジニアが集まり、知見の共有や交流を目的としたエンジニアコミュニティ。海外でのリアルな経験を共有し、日本のテック業界の世界進出を後押しする存在になることを目標に活動を行っている。

スピーカーをフォロー

関連タグ

人気ログ

人気スピーカー

人気コミュニティ

ピックアップ

編集部のオススメ

ログミーTechをフォローして最新情報をチェックしよう!

人気ログ

人気スピーカー

人気コミュニティ

ピックアップ

編集部のオススメ

そのイベント、ログしないなんて
もったいない!
苦労して企画や集客したイベント「その場限り」になっていませんか?