エンジニア採用面接の難しさ

Isoparametric
6 min readOct 16, 2017

エンジニアを採用していく中で「採用面接」は非常に難しい問題と言える。
経験上、今までかなり多くの面接をこなしてきたが、未だに「完璧な面接」というものにはほど遠い。
60分といった短い時間でお互いを知るには時間が足りない。
また面接は「お見合い」であり、極々短い時間の間にお互いに「相手と結婚するか」を決めなければならない。
失敗するとお互い不幸なことになることが解っているのにもかかわらず。
……とはいえ、数百回と繰り返してきた面接の中で見えたこともあり、それを書いていくようにする。
主にゲーム関連のエンジニアを対象にしてきたケースが多いが、領域としては、クライアント、サーバ、インフラと一通りの人を見ている。

担当したプロダクトに使われている技術をどれくらい理解しているかを尋ねる

面接の質問において「職務経歴書」に記載されている技術の周辺をどれくらい理解しているかを問う。

例えばJavaプログラマ。
もちろんJavaプログラマの職務経歴書には様々なプロダクトの名前、StrutsやSpring、S2、Swing、Servlet、MyBatisなどなどが様々なワード並んでいるのだが、思った以上に自分が使っていた技術に精通していない人が多い。
また、DojaのようなクライアントJavaをやっていてもGCの挙動についてもあやふやなままJavaを使っているケースがよく見られる。

一例としてJVMに関する仕事をしている相手などには「ガベージコレクションに回収されるオブジェクトはどんなオブジェクトか?」と問うようにしている。
すると多くの場合は「使われていないオブジェクト」となるが、では「使われていないの定義は何か?」と訊くことにしている。

オブジェクトの状態が頭の中に入っていない人は、オブジェクトが解放されて良い状態なのか、そうではないのか理解できていない事が多い。
使ったオブジェクトはJVMが良い感じで何とかしてくれているのだと考えているとすると厳しい。
相手によってはヒープとスタックすら理解していないこともある。

経験で重要視するべきなのは「知っていること」「使ったことがある」ではなく「理解しているか」である。
「Javaを使ったことがある」は誰にでも主張できる。
しかし、「JVMを理解している」はなかなか言えないことだ。
自分の使ってきた技術をきちんと理解してきたエンジニアは、新しい技術に対しても同様の姿勢で挑むだろうと考えられる。
職務経歴上では経験が2年、3年、時には5年となっている技術でさえ、本質的に理解できていないことはよくあるのだから。

--

--