Skip to content
Published on

技術面接準備プレイブック — コーディング・システム設計・行動面接まで

シェア
Authors

はじめに — 面接は実力とは別の技術だ

実力は素晴らしいのに面接に落ち続ける人がいて、実力は平凡なのに面接をうまく通過する人がいます。不公平に見えますが、ここには構造的な理由があります。面接は実力を測る不完全なプロキシであり、そのプロキシ自体が練習可能な技術 だからです。

この記事は 第1編で描いた職種別知識マップ を面接の場で証明する方法を扱います。面接の4つのタイプ — コーディング、システム設計、ドメイン深掘り、行動面接 — それぞれの評価シグナルと準備法、職種別の定番質問、そして8週間の逆算プランで構成しました。

面接官は何を見ているのか

準備法に入る前に、採点者のルーブリックを理解する必要があります。面接官が収集しているのは正解かどうかではなく シグナル(signal) です。

  • 問題解決のプロセス: 曖昧な問題をどう構造化するか。要件を確認する質問を投げるか。
  • コミュニケーション: 考えを声に出して話すか(think aloud)。詰まったとき沈黙するか、状態を共有するか。
  • トレードオフの感覚: 「この方法は速いがメモリを多く使います」のような文が出てくるか。
  • 協働可能性: ヒントをもらったとき防御的になるか、吸収するか。

この視点を一つ変えるだけで準備の方向が変わります。完璧な正解を暗記するのではなく、良いシグナルを一貫して発する習慣 を作ることが目標です。

コーディング面接 — 問題ではなくパターンを勉強せよ

コーディング面接準備の最もよくある間違いは、問題を数百問解くことです。問題は無限ですが パターンは有限 です。頻出パターンはおよそ15個以内です。

  • ツーポインタ / スライディングウィンドウ — 配列・文字列の区間問題
  • ハッシュマップ — 頻度、重複、two-sum系
  • BFS/DFS — グラフ・木の探索、島の数を数える系
  • 二分探索 — ソート済み空間の探索、「最大値の最小化」系
  • ヒープ — 上位K個、ストリーミング中央値
  • 動的計画法 — 部分問題の定義が核心(ナップサック、最長部分列)
  • スタック — 括弧の対応、単調スタック
  • バックトラッキング — 順列・組み合わせの生成

効率的な学習ループはこうです。①パターンを一つ選び、②そのパターンの代表問題を3〜5問解き、③解くたびに「この問題のどんな特徴がこのパターンを呼ぶのか」を言語化する。この言語化が面接の場で「連続区間の最適化問題なのでスライディングウィンドウが浮かびました」という強力なシグナルに変換されます。

練習で必ず守ること二つ。時間を計る(本番は20〜35分)、そして 声に出して説明しながら 解くこと。静かに解く能力と話しながら解く能力は別の筋肉です。計算量(時間・空間)はコードを書き終えた後ではなく、アプローチを説明する時点で先に言う習慣をつけましょう。

システム設計面接 — 5段階フレーム

「URL短縮サービスを設計してください」のような問題の前で凍りつく理由は、知識不足より 進行手順の不在 である場合が多い。次の5段階フレームが標準です。

  1. 要件の明確化(5分) — 機能要件(何をするか)と非機能要件(規模、遅延、可用性)を分けて質問します。「読み取りと書き込み、どちらが多いですか」はほぼ常に良い質問です。
  2. 概算(5分) — 日次ユーザー、QPS、ストレージ量を桁レベルで見積もります。正確な数字ではなく「この規模なら単一DBでは無理だ」という判断が目的です。
  3. APIとデータモデル(5分) — 核となるエンドポイント3〜4個とテーブル/キー構造をスケッチします。
  4. 上位設計(10〜15分) — クライアント → ロードバランサー → サービス → ストレージの全体像を描き、各矢印で何が起きるかを説明します。
  5. 深掘りとトレードオフ(10〜15分) — 面接官が突く地点(ボトルネック、障害、スケーリング)を深く掘ります。キャッシュ無効化、シャードキーの選択、一貫性レベルが定番テーマです。

ここで差がつくのは知識の羅列ではなく トレードオフの言語 です。「キャッシュを置けば読み取り遅延は減りますが、無効化の複雑さが生まれます。このサービスは読み取りが圧倒的なので、その価値があります」のように、選択ごとに代償を明示し要件で正当化する話法を練習しましょう。リトライと冪等性のような分散システムの定番テーマは、このブログの 決済の冪等性 が良い予習資料です。

職種別の定番質問

第1編の5職種 を基準に、ドメイン深掘り面接の定番質問を選びました。

AI/LLMエンジニア

  • RAGとファインチューニングはそれぞれいつ選ぶか?(知識更新頻度・コスト・データ量を基準に)
  • ハルシネーションを本番でどう減らすか?(根拠の強制、引用、評価セット)
  • LLM機能の品質をどう回帰テストするか?

プラットフォーム/DevOps/SRE

  • デプロイ直後にp99遅延が跳ねた。どう診断するか?(ロールバック判断 → メトリクス → トレースの思考順序)
  • PodがCrashLoopBackOffだ。最初の3コマンドは?(kubectl describelogs --previous、イベント確認)
  • SLOをどう決め、エラーバジェットが尽きたら何をするか?

セキュリティエンジニア

  • JWTをどこに保存するか、そしてなぜ?(localStorageとCookieの攻撃面の比較)
  • OAuth 2.0のauthorization codeフローになぜPKCEが必要か?
  • ログイン機能の脅威モデルを描いてみよ。(クレデンシャルスタッフィング、セッション固定、列挙攻撃)

データエンジニア

  • 大規模なジョインが遅い。攻める順序は?(実行計画 → パーティショニング/バケッティング → ブロードキャストジョインの判断)
  • 遅れて到着するイベントをストリーミング集計でどう扱うか?(ウォーターマーク、許容遅延)
  • 冪等なバックフィルをどう設計するか?

フロントエンド

  • ブラウザにURLを入力すると何が起きるか?(深さを調節できる万能質問)
  • LCPが悪いページをどう診断・改善するか?
  • Reactで不要な再レンダリングをどう見つけて減らすか?

各質問の答えを暗記するより、このサイトのツール — KubernetesプレイグラウンドSQLプレイグラウンド認証・セキュリティ実習室Linuxコマンドクイズ — で直接実験して「経験した話」にしておくほうがはるかに強力です。

行動面接 — STARとストーリーバンク

行動面接(behavioral interview)を即興で対応するのは、コーディング問題を初見で解くのと同じです。準備物は ストーリーバンク です。

STAR構造 — 状況(Situation)、課題(Task)、行動(Action)、結果(Result)で話を組みます。よくある失敗二つ:状況説明が半分を超えること(30秒で終えましょう)、そして行動の主語が「私たち」であること(面接官が知りたいのは あなた がしたことです)。

6つのストーリーを準備しましょう — ①難しい技術問題を解決した経験 ②同僚と意見が衝突した経験 ③失敗やミスをした経験 ④主体的に何かを改善した経験 ⑤締切圧力下での優先順位の決定 ⑥説得に失敗したが学んだ経験。各ストーリーに数字(遅延40%減、オンコールアラート週30件→5件)を付けると信頼度が跳ね上がります。

意見衝突のストーリーで面接官が見ているのは勝ち負けではなく 自我とアイデアを切り離す能力 です — このテーマは 議論は自我についてのものだ で深く扱いました。「私が正しく、最終的に押し通した」より「相手の制約を理解し、一緒に第三の案を見つけた」がシニアのシグナルです。

8週間の逆算プラン

面接日から逆算した標準プランです。週10時間を想定し、状況に合わせて伸縮してください。

  • 8〜7週間前: 志望職種の知識マップを点検し、穴の空いた基礎を補修。履歴書をSTARの素材が見えるように磨く。
  • 6〜5週間前: コーディングパターン集中期 — 1日1〜2問、パターン別に。システム設計フレームを3問でリハーサル。
  • 4〜3週間前: 職種深掘り質問 + ストーリーバンク作成。模擬面接を最低2回(同僚またはAI面接官 — 第3編 でプロンプトを紹介します)。
  • 2週間前: 弱点パターンだけ反復。志望企業の技術ブログ・アーキテクチャを勉強(逆質問の材料)。
  • 1週間前: 新しい問題は禁止、復習のみ。睡眠リズムを整える — 記憶力の秘密 で見たように、睡眠は固定化の時間です。
  • 面接当日: 朝に軽い問題1問でウォームアップ。各面接の最後の逆質問を2〜3個準備(「このチームのオンコールはどんな様子ですか」はどこでも通じます)。

落ちたとき

最後に最も重要な話。面接の不合格は実力の判定ではなく 一回の標本抽出 です。同じ実力でも、問題の運、面接官のスタイル、その日のコンディションで結果は揺れます。不合格の後にすることは三つだけ — 覚えている質問を直ちに記録し、詰まった地点をストーリーバンクとパターンリストに反映し、次の応募を続けること。自信はどこから来るのか で扱ったように、自信は試行の蓄積から生まれます。面接もまさにそれです。

参考資料