Facebook、Apple、Amazon、Netflix、Googleの頭文字を組み合わせた造語である FAANG、まぁ、要は米ビッグテックのことだが、なんで彼らが採用者の面接で LeetCode に載ってるようなプログラミング問題を使ったコーディング面接をするのかについての文章である。
そうしたコーディング面接には批判の声もあるが、この文章も「現実の仕事には使えるわけでもない LeetCode の問題に頼るのか?」というそうした批判を踏まえた上で、ビッグテックにおけるソフトウェア開発エンジニア(Software Development Engineer、SDE)に何が求められているのかという観点からこの問題を考えている。
FAANG の SDE に必要とされるスキルは何か? まず、求められる技術スキルは以下になる。
そりゃそうだよね。そして、求められるソフトスキルは以下になる。
- 効果的なコミュニケーション
- コラボレーション
- 適応性
- 細部への配慮
ビッグテックが人を募集するとなると大変な数の履歴書が届くことになる。その面接者をスクリーニングするために、一時間以内にその人の日々のスキルを測る必要があるわけだ。面接者に以下を促す問題を出すことになる。
- 効果的にコミュニケーションを行う
- 批判的に考える:問題解決能力や細部への配慮を評価
- 技術的知識を明示する:適切なデータ構造とアルゴリズムを選択できるか
- 柔軟性:適応性とシステム設計スキルを評価
- 解決策を示す:日々やっているコーディングの知識を見せてもらい、プログラミングスキルを評価
LeetCode が面接者の SDE スキルをアピールできるコラボレーションと有意義な問題解決を面接で示すのに良い、という結論でいいのかな?
でも、この文章の最後で、SDE の面接の形式は、AI の進歩にともない変わる可能性が高く、AIコーディングアシスタントが実用的になれば、プログラミングスキルの評価が面接の中心ではなくなるかもしれないという予測が書かれている。ふーむ。

