コーディングスキルの評価は、現在、技術的な採用プロセスの不可欠な部分になっています。コーディングできない候補者から得られる履歴書の量は圧倒的です。履歴書はパフォーマンスの悪い予測因子であり、ほとんどの場合、Githubアクティビティは開発者のスキルの良い尺度でもありません。

Adafaceでは、対象分野の専門家が、お客様の役割と要件を注意深く理解することにより、コーディングテストを設計します。私たちは彼らと一緒に、彼らのプロセスを分解して、誤検知と誤検知を減らすための仕事の要件に沿ったコーディングテストを設定しました。

コーディングテストを設定する方法は?

コーディングテストを設定する際に留意すべき2つの重要な部分があります。

  • 職務要件に沿った質問
  • 候補者を威嚇しないフォームファクタ

質問

今日のコーディングテストの最大の問題は、テストが役割に必要なものと常に一致しているとは限らないことです。 Android開発者は、必ずしも二分木を反転する方法を知っている必要はありません。または多分彼らはそうします。ただし、重要なのは、その役割のコーディングテストでそれを使用している場合は、それについて非常に慎重に検討する必要があるということです。

コーディングテストで何をすべきかを考える1つの方法は次のとおりです。

解けなかったり、完全に間違えたりしても、その人を雇うかもしれないという質問は、コーディングテストなどのスクリーニング段階では無意味です。

コーディングテストの考え方は、明らかにその役割に適していない候補者を排除することです。それを行うための最も有用な方法は、2つのコード化可能でなければならない質問を使用することであり、一方は他方よりも簡単であり、それを部分的に解決する候補者に疑いの利益を与えることであることがわかりました。これにより、基本的にコーディングできない候補者(かなり多くの候補者)が排除され、残りを面接の最終ラウンドに持ち込むことができます。

ここで、これらのコーディング可能でなければならない質問がどうあるべきかを決定するために、最初に答える必要があるものは次のとおりです。

  1. その役割で成功するには、アルゴリズムのスキルが必要ですか?別の言い方をすれば、役割はAPIごとの応答時間の短縮に焦点を合わせていますか?より高速な実行のためにデータを合理化しますか?ページの読み込みを高速化するためのフロントエンドのコンポーネント化を改善しますか?これに対する答えが絶対に「はい」の場合、-どのレベルのアルゴリズムスキルが必要ですか?基本的な最適化スキルで十分ですか、それともニッチなデータ構造/アルゴリズムの専門知識が必要ですか?
  2. 彼らは特定のプログラミング言語の経験を持っている必要がありますか、それとも誰かが仕事でそれを賢く拾うことができますか?
  3. 彼らは速く出荷する必要がありますか、それとももっと細心の注意を払う必要がありますか?

これらの質問に対するあなたの回答は、コーディングテストにどの質問を入れるか、そして直接面接に何を入れるかを決定します。いくつかの質問の例(およびそれらの質問がコーディングテストで意味をなすシナリオ)を次に示します。

配列内の任意の1つの極小値を検索します

  • 候補者が基本的なデータ構造/基本的な最適化を処理し、複数のエッジケースをカバーするコードを記述できるかどうかを確認します。
  • 仕事上の仕事を反映している:False
  • 用途:新卒者の役割

与えられた制約に基づいて一連のzipcodeを検証または無効化するためのデバッグコード

  • 候補者が他の誰かによって書かれたコードを理解し、複数のループ/関数を操作できるかどうかを確認します。
  • 仕事上の仕事を反映します:True
  • 用途:既存のコードベースでの作業が必要なソフトウェアエンジニアリングの役割(1〜3年の経験を持つ候補者向け)

一連のログを解析し、メトリックを抽出します

  • 候補者がデータ形式を理解し、ログを解析し、指標を計算できるかどうかを確認します
  • 仕事上の仕事を反映します:True
  • 用途:データ分析/バックエンドの役割

並べ替えられたリストのマージ

  • 候補者が基本的なデータ構造を効果的に使用できるかどうかを確認し、時間計算量の最適化について考えます。
  • 仕事上の仕事を反映している:False
  • 用途:1〜3年の経験者候補者のためのAPIまたはデータベースレベルでの時間計算量の最適化に焦点を当てたソフトウェアエンジニアリングの役割

スペースに制約のあるデータストリームの上位K候補

  • 候補者が優先度付きキューなどのわずかに高度なデータ構造を効果的に使用し、制約を処理できるかどうかを確認します。
  • 仕事上の仕事を反映します:True
  • 用途:システム設計に関連する役割で1〜3年の経験を持つバックエンドエンジニア

配達員が顧客に到達するための最短経路を見つける

  • 候補者がツリー/グラフなどの高度なデータ構造を効果的に使用し、高度なアルゴリズムを使用できるかどうかを確認します。
  • 仕事上の仕事を反映します:True
  • 用途:アルゴリズム設計の役割(Uberなどの企業)

PS:上記のセクションは、正確な質問そのものではなく、あなたが尋ねるべき質問の種類を示すことを目的としています。それらのいくつかはあまりにも人気があり、コーディングテストにかけるのは良い考えではありません。

フォームファクタ

質問をまとめたら、もう1つ覚えておくべきことはフォームファクターです。効果的なコーディングテストのために考慮する必要がある重要な事項は次のとおりです。

  1. エンジニアが公平なショットを与えるのに十分でありながら、可能な限り少ない時間を投資していることを確認するためのより短い評価(45〜60分)。
  2. プログラマーは質問を理解するのではなく、時間をかけて解決する必要があるため、読みやすい質問です。
  3. きめ細かいスコアリング(バイナリスコアリングとは対照的)。 Adafaceでは、各質問のヒントを使用してこれを実装しています🤓。
  4. 解析された入力を使用してボイラープレートコードを操作します。これは、私たち全員がここで立ち往生するのに多くの時間を費やしてきたためです。
Adafaceを使用したサンプルコーディングテスト

Adafaceでは、役割の期待に合わせたカスタムコーディングテストを設定しました。私たちのボットであるAdaは、役割/会社についての質問に答え、各技術的な質問をインタラクティブに案内し、会話の最後に採用マネージャーが確認できるスコアカードを作成します。詳細については、お問い合わせください。