本文へ移動

ホーム / Web / 第6部 面接の実践

第6部 面接の実践・第17章

面接の全体像と答え方

★★☆ 重要5トピック・面接 3問

Web エンジニアの面接は「知っているか」より「理由を説明して判断できるか」を見ます。選考の流れと、どの質問にも使える答え方の型を先に押さえ、設計面接・経験面接の準備につなげます。

領域主な問われ方準備の優先度
Web の基礎URL を入力してから表示まで、キャッシュ・Cookie・CORS高
セキュリティXSS・CSRF・SQL インジェクション・IDOR の対策高
DBインデックス・N+1・トランザクションとロック高
フロントエンドReact の再描画・描画方式・Core Web Vitals中〜高(フロント寄りなら高)
API・認証REST の設計・冪等性・セッションと JWT・OAuth中〜高
システム設計「○○を設計して」+規模の見積もり中(大手・外資は高)
経験・行動作ったもの・難しかったこと・チームでの動き必出・最優先
ひとことで

技術の基礎・設計・経験・カルチャーフィットを、段階ごとに見られる。

Web エンジニアの選考は、会社によって違いますが、だいたい次のような段階です。

段階内容見られていること
書類・カジュアル面談職務経歴書・GitHub・ポートフォリオ。会社の説明経験の範囲、使った技術、伝える力
コーディングオンラインの問題、持ち帰りの課題、画面を共有してのライブコーディング動くものを作れるか、読みやすさ、テスト、考え方を話しながら進められるか
技術面接HTTP・DB・セキュリティなどの基礎、過去のプロジェクトの深掘り仕組みを理解しているか、判断の理由を話せるか
システム設計「○○のようなサービスを設計して」要件の整理、トレードオフ、規模の見積もり
行動面接・カルチャーチームでの経験、失敗、意見の対立協力の仕方、学び方、価値観が合うか
最終面接役員・マネージャーやりたいこと、長く活躍できるか

面接ではこう答える

Web エンジニアの選考は、書類やカジュアル面談、コーディング、技術面接、システム設計、行動面接、最終面接の段階で進むことが多いです。コーディングでは動くものを読みやすく作れるか、技術面接では仕組みと判断の理由、システム設計では要件の整理とトレードオフ、行動面接では協力の仕方と学び方が見られます。会社によって段階は違うので、事前に確かめて準備の配分を決めます。

4段で答えると、短くても深さが伝わる結論ひとことで仕組みなぜそうなるか注意点落とし穴・トレードオフ実体験自分がどう使ったか
技術質問への答え方の型

技術の質問には、まず結論をひとことで答え、次に仕組み、注意点、最後に自分の経験を添えます。最初の2段で 30秒、全体で1分ほどが目安です。面接官は続きを聞きたければ深掘りしてくれます。

段例:「N+1 問題とは?」
結論一覧の各行について関連データを1件ずつ取りに行き、SQL が 1+N 回になる問題です
仕組みORM が関連を自動で読み込むので、ループの中で気づかずに発行されます
注意点preload・JOIN でまとめますが、1対多の JOIN は行が増えるので IN でまとめるほうが軽いこともあります
実体験例えば、一覧 API で SQL が 200 回出ていたのを APM で見つけ、preload で 2 回にして応答を 1 秒から 150ms にしました

知らないことを聞かれたら、知ったかぶりをせず「使ったことはありませんが、○○と同じ仕組みなら△△だと考えます」と、知っていることから推測を述べます。推測だと明示すれば、考える力の評価になります。

SRE の「技術質問への答え方の基本形」

評価軸高評価の振る舞い低評価の振る舞い
基礎の理解仕組みを自分の言葉で説明できる(なぜ速い・なぜ危ない)用語の定義を暗記で答えるだけ
判断の理由「A を選ぶと B を失う」を説明し、状況で選び分ける「ベストプラクティスなので」で終わる
ユーザーと事業速さ・使いやすさ・売上への影響で優先順位を付ける技術的に面白いかだけで話す
品質への意識テスト・エラー処理・監視・リリースの安全性まで話す「動いたら終わり」
協働デザイナー・PM・App・SRE とどう決めたかを話せる「仕様が悪かった」と他人のせいにする
当事者意識自分が何を判断し、何をしたかが具体的「チームで」ばかりで自分の役割が見えない
学び方新しい技術を「何を解決するか」で理解し、試して確かめる流行りの名前を並べるだけ

ジュニアは基礎と学び方、ミドル以上は判断の理由と品質、シニアは設計と協働・影響の広さに重みが移ります。

準備期間やること
1週間しかない経験エピソードを3つ STAR で整理(最優先)。URL を入力してから表示まで、XSS・CSRF・SQL インジェクション、インデックスと N+1、セッションと JWT
2〜3週間上記+HTTP キャッシュ・CORS、トランザクションとロック、REST の設計と冪等性、React の再描画と描画方式、Core Web Vitals
1か月以上上記+システム設計のお題を3つ通しで練習、キュー・キャッシュの設計、リリースとロールバック、応募先の技術ブログと構成の読み込み

各章の「面接ではこう聞かれる」を声に出して答え、1分に収まるかを測ると効果的です。答えられなかった問いは、章の用語解説(面接ではこう答える)に戻ります。

  • 数より質。1〜3個を、README で「何を解決するか・使った技術・工夫と判断・動かし方」が分かるようにする。
  • 公開 URL があると見てもらいやすい。スクリーンショットや短い動画も効果がある。
  • テスト・CI・型・エラー処理があると、実務を意識していることが伝わる。
  • チュートリアルをなぞっただけのものより、自分の困りごとから作ったものや、実際に人に使われたものが話しやすい。
  • 業務のコードは見せられないことが多いので、職務経歴書に「課題・自分の役割・やったこと・数字の結果」を書く。
README に書くこと例
何を解決するか「家計簿を3タップで付けたい」
使った技術と理由Next.js(SSR が要る画面がある)、PostgreSQL
工夫と判断一覧はカーソル方式のページングにした理由
動かし方・公開 URLpnpm dev・デモの URL・スクリーンショット

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • Web エンジニアの選考の段階と、それぞれで見られていることを知る
  • 技術質問は 結論 → 仕組み → 注意点 → 実体験 の4段で答える
  • 準備期間が短いほど、経験エピソードと基礎(HTTP・DB・セキュリティ)を優先する

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1最近作った機能で、技術的に一番難しかったことは?

模範回答

例えば次のように話します。EC サイトで、セール開始の瞬間に注文が集中して在庫がマイナスになり、DB の負荷も上がる問題を担当しました。原因は、在庫を SELECT して確認してから UPDATE していたことによる競合と、同じ行へのロック待ちでした。

選択肢は、SELECT FOR UPDATE の悲観ロック、条件付き UPDATE、Redis で先に在庫を減らす方法の3つでした。悲観ロックではロック待ちが残るので、まず条件付き UPDATE で在庫がマイナスにならないことを保証し、そのうえで人気商品だけ Redis で先に数を減らして、DB に届く注文を在庫の数に絞りました。注文の二重送信は冪等キーで防ぎました。結果、次のセールではマイナス在庫が 0 件になり、DB の CPU のピークも下がりました。Redis と DB の数がずれたときの補正の仕組みが必要になった点は、次に生かす学びになりました。

深掘りされたら

  • 他の選択肢を選ばなかった理由は?
  • もう一度やるなら何を変えますか?

見られているポイント課題・選択肢・判断・結果を具体的に

Q2知らない技術の質問をされたら、どう答えますか?

模範回答

知らないことは正直に「使ったことはありません」と言い、そのうえで知っている近いことから考えを話します。例えば「gRPC は使ったことがありませんが、REST と比べると型の定義が先にあって、バイナリで送るので速いと理解しています。社内のサービス間の通信なら向いていそうです」のように答えます。

面接で見られているのは、全部を知っているかより、分からないことにどう向き合い、どう考えるかです。知ったかぶりをすると深掘りで崩れるので、知らないことは知らないと言い、調べるならどこから調べるかまで話せると印象がよいです。

深掘りされたら

  • 最近学んだ技術は何ですか?

見られているポイント正直さと、知っていることからの推論

Q3自己紹介と、これまでの Web エンジニアとしての経験を2〜3分で教えてください。

模範回答

今の会社とチーム、担当している範囲(例えば EC サイトのバックエンドと管理画面のフロント)を一言で伝えます。次に代表的な成果を2つ、数字つきで挙げます。例えば「一覧 API の N+1 を直して応答を 1 秒から 150ms に」「決済に冪等キーを入れて二重決済の問い合わせをなくした」のようにです。

最後に「次は○○のような規模や課題に挑戦したい」と、応募先の事業や技術につなげて締めます。話を広げてほしい所を自分で示しておくと、深掘りの質問がそこに来やすくなります。

深掘りされたら

  • その中で一番難しかった判断は何ですか?
  • チームの中でのあなたの役割は?

見られているポイント時間内に要点をまとめる力と、話を広げてほしい部分を自分で示せるか