コンテンツへ移動
cookie

生徒向けガイド · 大学在学中の最終学年の前年の秋から冬

ソフトウェアエンジニアリングのインターン面接

ソフトウェアエンジニアリングのインターン面接では、オンラインのコーディング評価のあと、ライブコーディング面接が1回または2回行われるのが一般的です。各面接では1問または2問の問題と追加質問が出され、これまでの経験についても質問されます。面接官は、問題の理解、動く解決策にたどり着くまでの過程、時間計算量と空間計算量の説明、テストの仕方を見ています。また、ヒントを出すことも想定されています。

選考の段階

大手企業の多くは、まず自宅で受ける時間制限付きのオンラインコーディングテストを実施します。たとえばAmazonによると、インターンのオンライン評価には約90分かかり、コーディング、技術的な問題解決、Leadership Principlesが評価されます。コーディング部分は約70分です。その後、エンジニアが見守り、質問をしながら問題を解くビデオ面接が行われます。

2022年に最終更新されたMetaのインターン面接ガイドでは、電話での一次面接と、その後の追加面接という2段階が説明されています。どちらも同じことが期待され、各面接の約30 to 35分は1問または2問のコーディングに使われます。Googleによると、候補者はコーディング課題に取り組むよう求められることがあります。全候補者は明確な評価基準に沿って評価され、ひっかけ問題はありません。詳細は変わるため、面接に招待されたら企業の公式ページを確認してください。

面接官が採点するポイント

主に見られるのは、答えにたどり着くまでの過程です。Googleによると、面接官は答えと同じくらい思考過程を見ており、追加質問もします。Metaのガイドでは、解法のbig-O計算量を説明すること、疑問点を確認する質問をすることが求められています。また、アイデアだけを示すより、最適ではなくても動くコードを書くほうがよいとしています。行き詰まったら、まず力ずくの解法から始めて改善すること、面接官のヒントは悪いことではないとも説明しています。

実際には、次の5つが大切です。問題を理解する(言い換えて確認し、端のケースや入力サイズについて質問する)、正しい解法を見つける、時間計算量と空間計算量を説明する、できれば改善する、例と端のケースを手作業でたどってテストすることです。すべての段階でコミュニケーションが重要です。面接官が採点できるのは、あなたが話したことだけだからです。

解答例:two sum

数値のリストと目標値が与えられたら、合計が目標値になる2つの数値の位置を返します。まず質問しましょう。答えは複数ありえますか?同じ数値を2回使えますか?リストはソート済みですか?長さはどのくらいですか?次に、力ずくの方法を声に出して説明します。すべての組み合わせを確認する方法です。正しい答えは出せますが、n個のリストではnの2乗に比例する時間がかかります。

次に改善します。リストを順に見て、確認した数値とその位置をハッシュマップに保存します。新しい数値を確認するたびに、目標値からその数値を引いた値がすでにマップにあるか調べます。これで、nに比例する時間で1回の走査で組を見つけられますが、追加メモリもnに比例して必要です。最後に、小さな例、答えがないリスト、同じ数値が繰り返されるリストで声に出してテストします。リストがすでにソートされていた場合にどう変えるかも説明します(両端から2つのポインターを進め、追加メモリは使いません)。

知っておきたいトピックと使う言語

インターンの面接問題の多くは、データ構造とアルゴリズムの入門コースで学ぶ内容を使います。配列と文字列、ハッシュマップと集合、スタックとキュー、連結リスト、幅優先探索と深さ優先探索を使う木とグラフ、ソートと二分探索、再帰、基本的な動的計画法などです。各操作にかかる時間と空間のコストを知っていることは、データ構造を知っていることと同じくらい大切です。

いちばんよく知っている言語を使いましょう。Metaのインターンガイドでは、最も慣れている言語を使うよう勧めています。Amazonも、評価で使う予定の言語を復習し、練習するよう勧めています。Pythonは短く書けるためよく使われますが、言語の選択よりも流暢に使えることが大切です。

考えを声に出して伝えることと、面接でのAI

「まだよくわかりません」と思っているときも、考えていることを声に出しましょう。黙っていると、面接官は採点する材料も助ける方法もありません。ヒントをもらったら受け入れ、それによって解法がどう変わるかを説明しましょう。一人で練習すると不自然に感じます。そのため、友だちと練習したり、問題を解きながら話す自分の声を録音したりすると、とても役立ちます。

AIに関する企業のルールは異なるため、面接当日までに確認しましょう。Googleによると、面接中にAIツールを使うことは認められていません。一方、Metaによると、現在、多くの面接では面接環境にAIアシスタントが組み込まれており、候補者はそれを使うことが期待されています。使用が認められていない場面で使うのは不正です。面接の一部として使う場面では、AIの出力をどう確認し、修正するかも評価対象です。

行動に関する質問

技術面接では、これまでの経験についても質問されることがよくあります。誇りに思うプロジェクト、苦労したバグ、チームメイトと意見が合わなかったときのことなどです。Amazonでは、Leadership Principlesに沿って候補者を評価します。その最初にあるのがCustomer Obsessionです。リーダーは顧客を起点に考え、そこから逆算するという考え方です。内容を確認し、主な原則それぞれについて話せる例を用意しましょう。

アカウントがあれば、cookieの面接対策で、指定した仕事についてAI面接官との模擬面接ができます。1問ずつ質問し、実際の面接官のように回答を掘り下げ、最後に各回答のレポートを作成します。クレジットを使い、先に見積もりを表示します。

確認先

にこれらの情報と照合しました。ルールは毎年変わるため、ここにある内容と異なる場合は、上記のページを確認してください。

よくある質問

オンライン評価とは何ですか?

自宅で受ける時間制限付きのコーディングテストです。多くの企業がライブ面接の前に実施します。Amazonによると、インターンの評価には約90分かかり、その大半はコーディングです。

コーディング面接では、どの言語を使えばよいですか?

いちばんよく知っている言語です。Metaは最も慣れている言語を勧め、Amazonは使う予定の言語で練習するよう勧めています。どの言語かよりも、流暢に使えることが大切です。

インターンのコーディング問題はどのくらい難しいですか?

通常は、大学1年次のデータ構造とアルゴリズムの内容が中心です。配列、ハッシュマップ、木、グラフ、ソート、再帰などが出題され、解法の改善や拡張を求める追加質問もあります。

コーディング面接で行き詰まったらどうすればよいですか?

どこで行き詰まっているかを伝え、まず力ずくの解法を試してから改善し、もらったヒントは活用しましょう。Metaのガイドによると、面接官のヒントは悪いことではありません。

コーディング面接でAIを使えますか?

企業によります。Googleによると、面接中にAIツールを使うことは認められていません。Metaによると、多くの面接にAIアシスタントが組み込まれており、候補者はそれを使うことが期待されています。