Batch機能紹介(候補者向け)

こんにちは!株式会社ハイヤールー代表葛岡(@kkosukeee)です。

※2021/05/27更新: こちらの機能はリニュアルされました! 以下の記事から流れを確認できますのでそちらをご参照ください!

blog.hireroo.io

前回の記事ではSpot選考の候補者側の説明を行いました。本記事ではBatch選考候補者側のおおまかな流れと使い方を紹介したいと思います。

Batch選考実施前に一読いただき、本記事を通しスムーズなCX(Candidate Experience)を実現できると幸いです。

Batch選考とは?

アルゴリズムや技術特化型の問題をオフラインで解くコーディング試験です。提供されるオンラインIDEで提出された問題を時間内に解く形式になっており、忙しい状況下でも自分のペースでコーディング試験を進められます。

別記事の事例として紹介されているメルカリのコーディング試験に近く、日本のテック企業の採用プロセスとして多く取り込まれている形式となっています。

大まかな流れとしてはSpot選考と変わらず、面接官の変わらず方から共有された選考を承諾する。コーディング試験(オフライン)の実施。コードの提出の3ステップです。各ステップの詳細については、以下で詳しく紹介します。

f:id:KKosukeee:20210323211157p:plain
図1 Batch選考一連の流れ

続いて実際の画面とともに機能の説明を行います。

機能紹介

1. 選考の承諾

まず、面接官から共有されたリンクを踏むことにより選考への承諾が可能です。

サインイン実施前の場合はサインイン画面にリダイレクトされるため、まずはGithubでのサインインを行います。サインイン後に再度選考招待画面にリダイレクトされるので、リダイレクト先から承諾することが可能です。

f:id:KKosukeee:20210323211311p:plain
図2 選考承諾画面

承諾した選考の一覧はスケジュール画面から確認が可能です。(承諾後一覧に表示されていない場合はリフレッシュを行って下さい)

2. コーディング試験の実施

Batch選考はオフラインで実施のため実施期限が予め設定されています。承諾した選考の一覧はスケジュール画面から確認でき、実施期限までに一覧から選考をクリックすることでコーディング試験を実施することができます。

f:id:KKosukeee:20210323211357p:plain
図3 選考スケジュール画面

提供されるオンラインIDEを使用しアルゴリズム、または技術特化の問題を解きます。アルゴリズム形式の問題は複数出題されることがありますが、技術特化型の問題に関しては原則一問のみとなっています。

続いて問題種別のインターフェイスの説明を行います。

i. アルゴリズム形式

基礎的なコンピューターサイエンスの知識を必要とするアルゴリズムの問題が複数出題され、オフラインでコーディング試験を実施します。

期限内に可能な限り問題を解き、期限内であれば何度でもセッションをぬけることが可能です。(コードの途中結果は保存されていませんが、現在保存機能を開発中です)

オンラインIDEから言語の選択、問題の選択、コンパイル・実行、提出が可能となっています。問題文をしっかり読み、回答となるコードを書きテストを行った上「提出して次に進む」ボタンから提出が可能です。

f:id:KKosukeee:20210323211508g:plain
図4 コード実行と提出

問題は一問ずつ提出する必要があり、一度提出したコードは再提出できないため事前にしっかりテストを行って下さい。全ての問題を解き終えるか制限時間じ達した場合には右上のボタンからセッションを抜けることが可能です。

f:id:KKosukeee:20210323211612g:plain
図5 セッション終了

入力記入例

問題文の説明をしっかり読み正しい形で入力してください。例えば第一引数に string、第二引数に int 型を持つ問題の場合、以下のように入力します。

"ここにstringが入ります", 100

現在対応しているデータ型は以下です。正しく入力ができていない場合 InputInvalidError が返り値として処理されます。問題の引数のデータ型を確認し、以下の対応表を参考にし引数を入力してください。

備考
string "hello world" シングルクォートでなくダブルクォート
int 12345 特になし
float 1.2345 特になし
bool true trueもしくはfalse
array [1, 2, 3] 複数要素の場合はカンマ区切り
map {"key": "value"} 複数要素の場合はカンマ区切り
linked list [1, 2, 3] 1->2->3
binary tree [1, 2, 3] nodeが存在しない場合はnull

アルゴリズム形式のBatch選考は以上です。続いて技術特化形式の説明を行います。

ii. 技術特化形式

アルゴリズム形式の問題と異なり、技術特化型の問題(指定されたフレームワークを使ったサーバーの実装など)を解きます。

用意された環境がすでにインストールされたオンラインIDEが提供されるため準備は不要です。オンラインIDEの画面は以下のようになっており、はじめに「インスタンスを起動する」ボタンを押しインスタンスを起動します。

f:id:KKosukeee:20210323212027g:plain
図6 サーバー起動

初回のインスタンス起動には少々時間(約2~3分)がかかります。起動を終えるとオンラインIDEとTerminalが繋がります。必要なファイルの作成は真ん中上部のファイルアイコンをクリックするとフォーカスされている階層にファイルが作成されます。

ファイルの削除は作成ボタンの横のゴミ箱アイコンをクリックすることで消すことができます。削除対象のファイルはフォーカスが当てられているファイルとなるのでご注意下さい。

f:id:KKosukeee:20210323212214g:plain
図7 ファイル追加・削除

サーバーの起動や必要なパッケージのインストールには画面下のターミナルを使用します。Ubuntu環境がインストールされているため、 apt get コマンドなどが実行できます。

ターミナルは複数開くことが可能です。片方でサーバーを起動し、別のターミナルで curllocalhost に対して投げることができます。

f:id:KKosukeee:20210323212343g:plain
図8 コマンドライン

問題の説明文をしっかり読み、必須事項を満たした後、「課題を提出」ボタンから提出が可能です。一度提出したコードは再提出できないため、しっかりテストをした上提出して下さい。

技術特化型のBatch選考は以上です。

Tips

問題は提出後、面接官によって評価されます。わかりやすいコードや設計などを意識して進めることによって、評価がしやすいコードとなり好印象に繋がります。

アルゴリズム形式の問題では関数をわけたりロジックに適切なコメントを書くことによりオフラインでの評価がよりスムーズになります。せっかく実装したアルゴリズムが理解不能のため評価ができないと行ったケースを防ぐためにも伝わりやすいコードを書きましょう。

技術特化型の問題では README.md をプロジェクトのルート階層に置くことによって面接官がスムーズに実行・評価ができます。また単体テストなどソフトウェア開発のお作法がしっかりしているとより良い印象を与えるためテストの実行方法なども書いておくと好評価に繋がります。

まとめ

いかがでしたか?Batch選考のUIは非常にシンプルかつ機能性が高いものとなっており、環境の用意などが不要です。使い方に困ったり事前に確認したい場合は、スケジュール画面右下の「i」ボタンから気軽に弊社サポートSlackにご参加下さい。(フィードバック等いただけると幸いです!)

ここまで読んできただきありがとうございました。更にCX(Candidate Experience)を改善するために新機能の開発や既存機能の改善を行っていますので、今後も更なるアップデートを乞うご期待ください!