Google や メルカリなどのビックテックで採用されている面接方式がライブコーディングです。オフィスに訪問して試験を実施する際はホワイトボードにコードを書きながら面接官と会話して課題を解く形式をイメージしやすいと思います。Google が公式に出しているこちらの動画がライブコーディングの原型です。
今はリモートワークも進んでいるため、オフィスに訪問する代わりにオンラインでテストを実施する企業も増えてきました。ビデオ通話しながらコーディングやシステムデザインを行う形式です。
事前にこの分野に関して問題を出すので学んできてほしい、と言った案内が来ることもしばしばです。候補者は長くて1ヶ月くらいの猶予が与えられて、選考に望みます。
ライブコーディングのメリット
課題に対して面接官と会話をしながら問題の前提条件や本質を理解することが可能なため、コードや設計のアウトプットを無くしてでも、その候補者の考え方を理解することが可能です。また、面接官とのコミュニケーションを通じて課題の特定方法、技術レベル、解決までの進め方など実際に仕事をすると見えてくるような点がこの形式だとよくわかります。
また、面接と同時にスキルを測ることができるため、事前課題形式と比べると、候補者が割く時間が短いため、選考プロセスが短くなる場合があります。
ライブコーディングのデメリットこの形式は面接官の技量によって候補者を正しく評価できるかが大きく変わってきます。メルカリではライブコーディングを行うために面接官の教育を行なっているほどには面接官に求められるスキルが高いことがわかるでしょう。また、面接官の技量を超える候補者がいた場合、その候補者の言っていることが正しく理解できず、評価も正しく行えません。
一方で、過程を正しく評価できているかはログとして残しづらいため、かなり属人的になってしまうのもデメリットとして挙げられます。
ハイヤールーではライブコーディングもログを残して評価することが可能ですhttps://www.youtube.com/watch?v=Lt5VnhX4RyE
評価の仕方
ここで評価の方法を「アルゴリズム形式」と「システムデザイン形式」に分けて評価方法をふかぼってみましょう。事前課題形式にも通ずる点があります。
アルゴリズム形式の場合
以下のような質問を試験中に出すことが可能です。
-
ハッシュマップを使わず実装するにはどうするか
-
計算量をどう小さくしていけるか
このような質問を通じて、候補者が実装方法に様々な手段があることを認識・理解しているか見ることができます。
システムデザイン形式の場合
設計の課題はアルゴリズム形式よりも幅広い質問をすることができます。
例えば、以下のような質問を試験中に出すことが可能です。
-
ユーザーが1万人から100万人に増えた場合、障害を起こさない設計はどう可能か
-
日本以外のユーザーが増えた場合にどのような設計が良いか
このように可用性・スケーラビリティに関して様々な視点で話を膨らませることができます。
また、システム設計は前提条件によって変わるため、様々な設計の引き出しやトレードオフを考慮して設計できるかを中心に見ることが可能です。
HireRoo でのライブコーディングに関しては以下をご確認ください。