記事の内容
はい、他人と差をつける質問はあります。それは、自分の経験と決定にそった質問です。面接官からの質問は、候補者から誘導することもできるので、自分の良さを引き出す質問をしてもらいましょう。
この記事では、誘導方法、質問、回答例の全てを説明したいと思います。
質問を誘導する方法
面接官から、自分がしてもらいたい質問をされることは、実はそんなに難しいことではありません。
職務経歴書で、アピールポイントとして書くだけです。
それを見れば、面接官は、「この人はここを頑張ってきたんだな」ということを理解してくれます。
例えば、職務経歴書に以下のように書いてみましょう。
アピールポイントをわかりやすく書こう!
- ベトナムへのオフショア開発に尽力しました。
- スケーラビリティを意識した速いSQLを書きました。
- ユーザー数を増やすために、アプリ開発を手掛けました。
- 社内のエンジニア教育に尽力しました。
- プログラミング言語とフレームワークの選定をしました。
- Herokuを選んで使うことにしました。
- RDBではなく、あえてNoSQLを使うようにしました。
そうすると、面接官はそれらについての詳細を質問してくれます。
では、実際の回答例を見ていきましょう。
回答例は、あくまでも参考程度に捉えてください。
他人と差をつける質問と回答例
ベトナムへのオフショア開発に尽力しました
面接官は、おそらく、このように質問してきます。
「どうして、オフショア開発を選択して、ベトナムを選んだんですか?」
NG回答
上司が決めたからです。
好感度アップの回答
- 常に新規の案件がきている状況で、社内のリソースが足りていませんでした。
- 日本ではエンジニアの採用が難しかった。
- 暇になったら、エンジニアを解雇したかった。
- コストカットしたかった。
- 世界展開に向けて、日本以外の拠点を作りたかった。
- ベトナム人は日本語を話せる人が多く、親日国だから。
スケーラビリティを意識して速いSQLを書きました
面接官は、おそらく、このように質問してきます。
「具体的には、どういったSQLですか?」
NG回答
社内の規約や、フレームワークに沿ってSQLを書きました。
好感度アップの回答
- JOINをしないSQLです。
それによって、サーバー台数を増やせば、高負荷に対応できるようにしました。
ただし、RDBとしての使い方からは外れていました。(笑) - Indexを貼りました。
- slow logをみて、1秒以内に返ってこないSQLを書かないようにしました。
- あえて、非正規化をしないテーブル設計にしました。
ユーザー数を増やすために、アプリ開発を手掛けました。
面接官は、おそらく、このように質問してきます。
「Webのモバイルでは駄目でしたか?」
「アプリを開発して、ユーザー数は増えましたか?」
NG回答
アプリを開発したかったんです。
ユーザー数は見ていないのでわかりません。
好感度アップの回答
- ライバル会社がすでにアプリを提供していたので、そこに負けないためにもアプリ開発を急ぎました。
- Push通知やホームボタンなど、アプリならではの実装をしたかった。
- Webでは提供できないリッチなUIを提供したかった。
- アプリを導入してから、ユーザー数は1.5倍になりました。
特にiOSからの流入が多かったです。
社内のエンジニア教育に尽力しました
面接官は、おそらく、このように質問してきます。
「具体的には、どのような教育をしましたか?」
NG回答
社内での研修をしました。
好感度アップの回答
- 入社時に社内での研修用のドキュメントを作成しました。
- 社内ハッカソンを定期的にやるようにしました。
これによって、普段のチームの枠を越えて、みんなが仲良くなりました。 - ハンズオン形式で、仮想化を使ったサーバー構築の勉強会をしました。
これによって、サーバーをさわれるエンジニアが増加しました。 - ソースコードレビューをしました。
- lintを導入して、エンジニアのソースコードを統一するようにしました。
プログラミング言語とフレームワークの選定をしました
面接官は、おそらく、このように質問してきます。
「具体的には、どういった理由で何の言語を選びましたか?」
NG回答1
Golangを選びました。
流行りだったので。
好感度アップの回答
- APIのレスポンスにスピードが求められました。
- 社内に、Golangを得意なエンジニアがいました。
- 勉強をする必要はあるものの、学習コストが低いように見えました。
- Golangにした結果、既存のサーバー台数に比べて、2分の1に減らせました。
NG回答2
PHPを選びました。
簡単だったので。
好感度アップの回答
- レスポンスに、そこまでのスピードが求められるアプリではありませんでした。
- 社内に、PHPを使えるエンジニアが多くいました。
- PHPを扱えるエンジニアは多くいるので、採用しやすいと考えました。
- PHPは可読性が高く、多くのエンジニアに扱いやすいと思いました。
- Laravelは非常に可読性が高く、使いやすいフレームワークです。
Herokuを選んで使うことにしました
面接官は、おそらく、このように質問してきます。
「どうして、AWSではなくHerokuを選んだのですか?」
NG回答
簡単そうだったので。
好感度アップの回答
- AWSは便利ですが複雑です。
残念ながら、それを扱えるエンジニアが社内にいませんでした。 - Herokuであれば、サーバーのメンテナンスをする必要がなくなる。
- 料金的にもHerokuの方が安そうでした。
- サーバーの構成がHerokuだとシンプルでした。
- ユーザー数が多くなったら、エンジニアの教育も含めてAWSへの移行を考えるかもしれません。
RDBではなく、あえてNoSQLを使うようにしました
面接官は、おそらく、このように質問してきます。
「どうして、NoSQLを選んだのですか?」
NG回答
NoSQLが流行りだし、速いと聞いたから。
好感度アップの回答
- トランザクションを扱う必要のないデータしかありませんでした。
- スケーラビリティを優先させたかった。
- 非正規化をして、高速なレスポンスを期待したから。
- 失っても大きな問題にはならないデータを扱っており、RDBである必要もなかった。
まとめ
上記の回答例はあくまでも例なので、そのまま使う必要はありません。
ただ、回答をするさいの参考にはなるはずです。
よい回答にはポイントがあるので、最後にそれを説明します。
ここがポイント
- その選択をした背景には何があったのか?
- その選択をした理由は何か?
- 他の選択と比べて、どういったメリットやデメリットがあったのか?
- その選択をした結果、どうなったのか?
全てを応える必要はありませんが、これらを説明できるようにしておくと、他の候補者と差別化ができます。
常日頃から、何かの岐路に立たされた場合には、これらを考えるクセをつけておきましょう。
どういった理由で、どういった意思決定をしてきたのかというのは重要なポイントになります。
でも、もしかすると、あなたには、まだ決定権がないかもしれません。
そんな時は、上司に、「他の〇〇では駄目だったんですか?」と聞いてみて下さい。
そして、上司から教えてもらった理由を必ず覚えておきましょう。
話は少し変わりますが、AirbnbがなぜReact Nativeを捨てたのかも、事実だけではなく、理由も合わせて理解しておくといいかもしれません。
それについては、「開発言語やフレームワークの選び方」で書きました。
「なぜ?」と「結果はどうなったか?」に常に思いを巡らしておくことが、よいエンジニアになることに繋がります。
最後になりますが、「いくら面接を受けても落ちてばかりだし、会社は私を落とした理由を教えてくれない」と思っている人もいるかもしれません。
そういった人は、転職エージェントを使いましょう。
転職エージェントを使えば、エージェントの人が、あなたの代わりに「落ちた理由」を面接した会社に聞いてくれます。
その理由を知ることで、必ず次の面接に繋がるはずです^^
私のオススメエージェントはdodaです。
女性が多いせいか、非常に面倒見がよい会社でした。
Good luck with your engineer life!