見出し画像

現役面接官が考える。技術面接を突破するための5つのヒント。

 学生時代また転職の時も就職活動で技術面接を受ける側だった私は、日系メーカーの技術部門で技術者に加えてマネジメントも経験させてもらって、技術の面接官も担当させていただくようになりました。これまでにたくさんの方と面接させていただきましたし、今の時期もまさに面接の時期です。いろんな方とお話ができて刺激になることがあるのですが、中には面接で実力を説明できずに採用に至らなかったケースもあります。そこで私が考える、技術面接で採用したいと思えるやり取りのポイントについてご紹介します。実際に面接を受ける方に参考になる情報を提供します。是非最後までお読みください!。

■是非採用したいと思える人 との面接はどんな感じなのか。
 ここでは学生と技術面接官2名との場を想定して、どんな感じなのかまずは見ていきましょう。技術面接では、パワーポイントや配布資料を使う場合がありますが、ここでは、会話だけでやりとりする場面を想定しています。


面接官 田中さん:
こんにちは、本日は弊社の面接にご参加くださいましてありがとうございます。(面接官の自己紹介や少しアイスブレークの会話が入りますが省略)
それでは、清水さんの自己紹介と経歴を少し教えてください。

学生 清水さん:
はい。現在コンピュータサイエンスを専攻しています。大学在学中に、ソフトウェア開発と人工知能に関連するいくつかの研究プロジェクトと長期インターンシップに参加する機会を得ました。今日は技術面接ということで、研究を中心にご説明できればと思いますが、ご興味があればインターンシップの経験についてもお伝えできると思います。
(今日の意気込みを少し表現して)と思いますので、どうぞよろしくお願いします。

面接官 田中さん:
こちらこそよろしくお願いします。それでは大学時代に取り組んだ研究プロジェクトについて、詳しく紹介いただいていいですか?

学生 清水さん:
はい。私が特に注力した研究のひとつとして、eコマースサイトのためのレコメンドシステムに関する研究になります。私のチームは、人気のあるいくつかのEコマースサイトからデータを集め、それを分析して、お客様の行動パターンを分析しました。そして、機械学習アルゴリズムを用いて、お客様の行動履歴から商品を推薦するアルゴリズムの提案と、実際にシステムを構築するところまで進めております。

面接官 麻生さん:
それは面白いですね。このレコメンドシステムがどのように機能するのか、例を挙げて教えてください。

学生 清水さん:
はい。例えば、ある洋服のECサイトで、お客様が何点か購入されたとします。そのデータとお客様の属性情報や他社のサイトでの購買行動や決済情報をもとに、商品をレコメンドします。レコメンドにあたっては、価格や在庫状況、お客様の評価なども考慮し、お客様にフィットするものの候補を出します。顧客の趣向をクラスタリングするのに○○手法を用いております。候補から絞り込むにあたっては、ECサイト側の販売方針や制約を盛り込むために○○最適化を用いています。

面接官 麻生さん:
なるほど、とてもやりごたえがありそうですね。研究で直面した最大の問題は何でしたか?

学生 清水さん:
そうですね。高質で多様なデータセットを収集することです。ある特定の商品に偏ることなく、さまざまな購買行動を反映したデータセットにすることが重要でした。研究の新規性にもつながるところですが、業種をまたいだデータを集めるところも苦労しました。もうひとつの課題は、機械学習のアルゴリズムを微調整して、パフォーマンスを高めることが難しかったです。いくつかのアルゴリズムを試し、最良の結果を得るためにさまざまなパラメーターを実験する必要がありました。

面接官 田中さん:
それは大変な作業だったようですね。このレコメンドシステムの良い悪いはどのように評価されたのでしょうか?

学生 清水さん:
システムが生成したレコメンデーションと、お客様が実際に購入した商品を比較することで、レコメンドエンジンのパフォーマンスを評価しました。評価指標としては、○○や○○を用いています。
また一方で、販売数や売上といったECサイト側の経営指標の変化も確認しています。○○テストを通じてレコメンドの精度を検証して、UIの工夫もしましたが最終的にはお客様が購入された商品をうまく推薦することができました。また、お客様からも、「適切なレコメンドであった」という評価をいただいています。

面接官 麻生さん:
いい取り組みをされましたね。それでは、インターンシップの経験と、それがソフトウェア開発のキャリアにどのように役立ったかについて、少しお聞かせください。

学生 清水さん:
はい。○○の企業でインターンシップを行い、eコマースサイトの開発と保守に携わりました。Python、JavaScript、Reactなど、複数のプログラミング言語や技術を実際に体験することができました。また、アジャイル開発の方法論や、大規模なプロジェクトで開発者チームと協力する方法について実際に経験出来ました。このことで私はソフトウェア開発の実務的な基礎を身につけられて、実際に課題に取り組む準備ができたと思います。

面接官 麻生さん:
その活動の中で、難しい課題を解決しなければならなかったことはありますか?

学生 清水さん:
そうですね・・・。Webアプリケーションのパフォーマンスを最適化しなければならなかったことを覚えています。最終的にキャッシュと並列処理の技術を使い、Webページのロード時間を半減することができました。

面接官 麻生さん:
それはすごいですね。それはどのような考えで課題にアプローチしましたか?

学生 清水さん:
はい。私はまずアプリケーションの現在のアーキテクチャを分析し、ボトルネックを特定することから始めました。いろいろ試してログを見ていくうちに、あるデータが頻繁に使われていることがわかりましたので、○○の処理を並列化することと、キャッシュを使用することが最良のアプローチであると判断しました。実装して徹底的にテストしたところ、狙った結果が得られました。

面接官 田中さん:
なるほど、即戦力クラスの実力ですね。別の質問をしたいのですが、複雑なプロジェクトでチームワークが必要だったときの例はなにかありますか?

学生 清水さん:
はい、レコメンドエンジンの研究は4名で行ったのですが、研究の締め切りが迫ってはいたのですが、まだ検証が済んでいない機能がいくつかありました。 私は研究の残りの作業を整理してチームで相談して分担を決めるなどリードして、モデルの検証を担当しました。他のチームメンバーはデータセットの作成や検証やチューニングを担当しました。毎朝とお昼に軽く打ち合わせを行って、お互い遅れているところとか、困っているところをカバーしながら進めることでなんとか間に合いました。
 特に私の担当をこなすには、新しいフレームワークを習得する必要があって、自分でもWeb上のドキュメントを読み込んで覚えていったのですが、応用的な部分については、この打ち合わせを通じてチームのメンバーにだいぶ助けてもらいました。

面接官 田中さん:
なるほど、チームで問題解決に取り組んだお話が聞けて、一緒に働くイメージもつきますし、頼もしく感じました。お話をありがとうございます。清水さんの研究やインターンシップ経験について、ここまで説明くださいましてどうもありがとうございました。
 そろそろ終わりのお時間になってきたのですが、清水さんから何か質問はありますか?

学生 清水さん:
それでは、貴社の○○について質問していいでしょうか?(質問の背景を軽く説明し質問する)
質問に答えていただいてありがとうございました。
また今日は、私の研究や経験をしっかりお伝え出来まして、今回の機会をいただき感謝しています。

面接官 田中さん:
こちらこそありがとうございます。
それではこれで今日はおしまいにしましょう。ありがとうございました。


・・・といった感じになります。現実には、個別の質問ややり取りでは、もう少し深堀りされたものになりますし、返答に詰まったり考えるためには沈黙も生まれます。また、実際にどう行動したのか裏どりされるような質問もあります。
 現実の面接はこの例のようにスムーズなやりとりでなくても、きちんとあなたの実力が内容が伝わることが大事です。あくまで全体の流れとして、上記のようなやりとりができれば満足なものとして受け取ってもらえばいいかなと思います。

 この全体の流れを支えるためのポイントとして、以下5つがあると考えています。上記のやり取りにも盛り込んでいますが参考にしてください。

■専門性を磨く
 技術面接では、あなたの技術的な知識やスキルを確認されます。そのため、これらのスキルを向上させるために時間をしっかり使いましょう。IT系はその機会がたくさんあって有利です。オンラインクラスを受講したり、ハッカソンに参加したりできます。IT系でなくても技術者なら参加するとよいです。いまや、デジタル技術を使いこなすことはどんな分野の技術者にとっても必要なことです。また、学校の難易度の高い授業のTAとして参加したり、学校の研究プロジェクトに参加することもよいと思います。
 知識の高さだけでなく、その技術的な知識を使って実社会の問題を解決できることを示すことが重要です。問題にどのように取り組み、問題を解決するためにそのような判断をしたのかを説明しましょう。そうすることで、あなたがその分野をよく理解し、課題に対処できることを示すことができます。

■自分の経験をアピールする
 技術面接では、インターンシップや研究プロジェクトなど、これまでの仕事経験について聞かれることがあります。自分の責任と達成したことについて話せるようにしておきましょう。自分の技術的なスキルを使ってどのように問題を解決したか、他の人とどのように協力したかをアピールしましょう。

■自分の問題に取り組むときの考え方やアプローチについて話せるように整理をしておく
 技術面接では、技術的な問題を解決したり、仮説に対する解決策を質問されたりすることがあります。自分の思考プロセスと、なぜそのような決定をしたのか、考えたのかを言語化して説明できるようにしておきましょう。事実から洞察を得られること、また創造的に考えられること、その分野の基本原理を理解していることを示しましょう。

■受け答えの練習
 仕事は誰かとやるものですので、コミュニケーション能力は重要です。面接では、複雑な技術・アイデアでもわかりやすく説明する力を示しましょう。友人や家族に自分の研究テーマについて話したり、プレゼンテーションをしたり、研究室やゼミで技術的な議論に参加したりして、練習しておきましょう。面接練習とかしこまったパターンだけでなく、雑談のように話せるようになっておくと相手に会わせてトーンを変えれるようになって、余裕が生まれます。

■自分の限界に正直になる
 なんでもできる人はいません。技術面接では、専門的な分野について、自分がまだ理解していない事や改善すべきことを、正直に話すことが大切です。このことで、あなたが自分の実力を自覚し、その分野で学び続け、成長する意欲があることを示せます。自分の目標と、それに到達するための計画について話せるようにしておくとよいと思います。

 ここまで記載したように、技術面接に挑むに当たっては特別な努力が必要です。専門性の向上、経験のアピール、自分の考えを話す準備、質疑練習、そして自分の実力を正しく把握して正直に話すこと、これらにフォーカスすることで、面接が成功する可能性を高めることができます。

それでは、皆様の幸運を祈ります。

※本記事が良さそうであれば、他のバージョンのトーク例も書いてみようかなと思います。閲覧数やスキの数で反応を確認しますので、良かったらスキを押してください。


この記事が気に入ったらサポートをしてみませんか?