IT-Q

技術面談は、一問一答では落ちない。
深掘りで崩れる。

用語には答えられる。詰まるのはその先です。 面談は、こちらの答えを受けて一段ずつ降りてきます。

  1. 一手目

    この画面、表示が遅いと言われました。どうしますか。

    よく見られる画面なので、キャッシュを入れます。

  2. 二手目

    では、そのキャッシュはいつ捨てますか。

    データを更新したときに消します。

  3. 三手目

    更新する経路が増えて、ひとつで消し忘れました。それに誰が気づきますか。

    …………

    落ちるのはここ
シナリオを選ぶ

登録不要・無料。全 173 問、うち三手目が 13 本。 回答はサーバーに送りません。

この案件に入る前に、何を聞かれるか

用語単位ではなく、実務のひとまとまりで20問。 前提となる用語に自信が無ければ、基礎編から降りてください。

Laravel 基礎編(20問・追撃なし)

Laravel を「使ったことはある」状態から、面談で前提として問われる用語と仕組みを埋めるための20問。 全問4択。追撃はありません。5分で一周できます。

  • 「N+1 問題」とは、何が起きている状態のことですか。
  • 前問の N+1 を解消する Eloquent の書き方はどれですか。
  • Eloquent とは何ですか。
追撃なし・約5分20 問20 ノードはじめる

Laravel 実戦編(既存システムへの参画)

既存の Laravel アプリに途中から入る想定の技術面談。 「使ったことがある」で止まっている人が、2手目・3手目で何を聞かれるかを体験する。

  • 一覧ページの表示が重いと報告されました。Eloquent を使っています。最初に何をしますか。
  • Web アプリの新規案件で Laravel を選ぶ判断として、最も本質的な理由はどれですか。
  • 本番環境でマイグレーションを実行するとき、開発環境と違う点として正しいのはどれですか。
三手まで掘る20 問67 ノードはじめる

Next.js 基礎編(20問・追撃なし)

Next.js を「使ったことはある」状態から、面談で前提として問われる用語と仕組みを埋めるための20問。 App Router が対象です。全問4択、追撃はありません。5分で一周できます。

  • App Router と Pages Router は、どこで見分けますか。
  • App Router で、layout と page は既定でどちら側のコンポーネントですか。
  • ファイルの先頭に書く 'use client' は、何を宣言していますか。
追撃なし・約5分20 問20 ノードはじめる

Next.js 実戦編(App Router)

既存の Next.js プロジェクトに参画した想定で、20問に答えます。 選んだ内容で追撃が最大3手来ます。App Router・Server Components・キャッシュなど、 「動くものは作れるが説明できない」ところを狙って掘ります。

  • 参画したプロジェクトで、ほぼ全部のファイルの先頭に 'use client' が付いていました。どう判断しますか。
  • 'use client' のコンポーネント本体に window を直接書いても、サーバーでは実行されないので安全ですか。
  • 一覧データの取得はどこに書きますか。
三手まで掘る20 問66 ノードはじめる
収録内容の内訳
シナリオ問二手目三手目総ノード
Laravel 基礎編(20問・追撃なし)20——20
Laravel 実戦編(既存システムへの参画)2040767
Next.js 基礎編(20問・追撃なし)20——20
Next.js 実戦編(App Router)2040666
合計808013173

三手目とは、こういう問いです

説明より現物の方が早いので、収録しているものを1本そのまま出します。 ここが他所に書かれていない部分で、このサイトの本体です。

三手目

with() を入れたら今度はメモリ使用量が増えて、別のところで落ちました。なぜですか。どうしますか。

Eager Loading は関連レコードを一度に全件メモリへ載せます。クエリ本数は減りますが、1件あたりのメモリは増えるので、件数が多いと逆に苦しくなります。対処は3つ。(1) with('items:id,order_id,name') のように必要な列だけ取る、(2) chunk() や lazy() で分割して処理する、(3) そもそも一覧に全件必要か見直す。N+1 の解決とメモリはトレードオフなので、どちらが効くかは件数次第です。

模範解答はこの先も続きます。全文を読む出典: Laravel 実戦編(既存システムへの参画) / 模範解答は公式ドキュメントと照合済み

正解を当てさせる問題ではない

選択肢は「正解1つ+明らかな誤り3つ」にしていません。全部それらしくしてあります。 見ているのは正誤ではなく、どう間違えたか。それによって次に来る質問が変わります。

一覧ページの表示が重い。最初に何をしますか。

  • ア発行されているクエリの本数を計測する深掘りへ
  • イとりあえず with() を付けて事前ロードする理解を確認
  • ウインデックスを貼ってみる順番を指摘
  • エキャッシュを入れて速く見せる打ち切り
イとウは「間違い」ではありません。順番が違うだけです。だから同じ「不正解」にはせず、行き先を変えています。 返ってくるのは点数ではなく、何が分かっていないかです。

読むのではなく、答える

1問あたり数十秒。1シナリオは20問です。

  1. 質問が一問出る
  2. 四つの選択肢から選ぶ。どれも一見それらしく見えます
  3. 判定と「面談だとこう突かれる」が出て、模範解答が開く
  4. 選んだ内容で、追撃が最大三手来る
  5. 危うい答えを選んだ問いが穴リストに残る
  6. 日を空けて穴だけ再挑戦し、答えられたら消える
模範解答は公式ドキュメント照合済み
全 173 ノードを公式ドキュメントと突き合わせています。記述が無いものは フレームワークのソースまで確認し、裏が取れないものは載せていません。 誤りが見つかった箇所は、その誤解自体を教材に転用しています。
三手目に厚みを置いている
追撃の到達点である三手目が 13 本あります。他所に書かれていない 踏み込んだ内容なので、ここがこのサイトの本体です。
AI を使っていない
判定も追撃も、あらかじめ書かれたデータをたどっているだけです。 回答は外部に送っていないので、何回やっても無料です。
四択の限界は隠さない
四択が鍛えるのは見分ける力で、ゼロから組み立てる力ではありません。 全問正解しても口から出るとは限らないので、 模範解答を読んだあと自分の言葉で言い直すのが一番効きます。

二手目まで答えられる人は多い。落ちるのは三手目です。

面談の当日に初めて詰まるより、いま詰まっておく方が安く済みます。