技術面談は、一問一答では落ちない。
深掘りで崩れる。
用語には答えられる。詰まるのはその先です。 面談は、こちらの答えを受けて一段ずつ降りてきます。
- 一手目
この画面、表示が遅いと言われました。どうしますか。
よく見られる画面なので、キャッシュを入れます。
- 二手目
では、そのキャッシュはいつ捨てますか。
データを更新したときに消します。
- 三手目
更新する経路が増えて、ひとつで消し忘れました。それに誰が気づきますか。
落ちるのはここ…………
登録不要・無料。全 173 問、うち三手目が 13 本。 回答はサーバーに送りません。
この案件に入る前に、何を聞かれるか
用語単位ではなく、実務のひとまとまりで20問。 前提となる用語に自信が無ければ、基礎編から降りてください。
Laravel 基礎編(20問・追撃なし)
Laravel を「使ったことはある」状態から、面談で前提として問われる用語と仕組みを埋めるための20問。 全問4択。追撃はありません。5分で一周できます。
- 「N+1 問題」とは、何が起きている状態のことですか。
- 前問の N+1 を解消する Eloquent の書き方はどれですか。
- Eloquent とは何ですか。
Laravel 実戦編(既存システムへの参画)
既存の Laravel アプリに途中から入る想定の技術面談。 「使ったことがある」で止まっている人が、2手目・3手目で何を聞かれるかを体験する。
- 一覧ページの表示が重いと報告されました。Eloquent を使っています。最初に何をしますか。
- Web アプリの新規案件で Laravel を選ぶ判断として、最も本質的な理由はどれですか。
- 本番環境でマイグレーションを実行するとき、開発環境と違う点として正しいのはどれですか。
Next.js 基礎編(20問・追撃なし)
Next.js を「使ったことはある」状態から、面談で前提として問われる用語と仕組みを埋めるための20問。 App Router が対象です。全問4択、追撃はありません。5分で一周できます。
- App Router と Pages Router は、どこで見分けますか。
- App Router で、layout と page は既定でどちら側のコンポーネントですか。
- ファイルの先頭に書く 'use client' は、何を宣言していますか。
Next.js 実戦編(App Router)
既存の Next.js プロジェクトに参画した想定で、20問に答えます。 選んだ内容で追撃が最大3手来ます。App Router・Server Components・キャッシュなど、 「動くものは作れるが説明できない」ところを狙って掘ります。
- 参画したプロジェクトで、ほぼ全部のファイルの先頭に 'use client' が付いていました。どう判断しますか。
- 'use client' のコンポーネント本体に window を直接書いても、サーバーでは実行されないので安全ですか。
- 一覧データの取得はどこに書きますか。
| シナリオ | 問 | 二手目 | 三手目 | 総ノード |
|---|---|---|---|---|
| Laravel 基礎編(20問・追撃なし) | 20 | — | — | 20 |
| Laravel 実戦編(既存システムへの参画) | 20 | 40 | 7 | 67 |
| Next.js 基礎編(20問・追撃なし) | 20 | — | — | 20 |
| Next.js 実戦編(App Router) | 20 | 40 | 6 | 66 |
| 合計 | 80 | 80 | 13 | 173 |
三手目とは、こういう問いです
説明より現物の方が早いので、収録しているものを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問です。
- 質問が一問出る
- 四つの選択肢から選ぶ。どれも一見それらしく見えます
- 判定と「面談だとこう突かれる」が出て、模範解答が開く
- 選んだ内容で、追撃が最大三手来る
- 危うい答えを選んだ問いが穴リストに残る
- 日を空けて穴だけ再挑戦し、答えられたら消える
- 模範解答は公式ドキュメント照合済み
- 全 173 ノードを公式ドキュメントと突き合わせています。記述が無いものは フレームワークのソースまで確認し、裏が取れないものは載せていません。 誤りが見つかった箇所は、その誤解自体を教材に転用しています。
- 三手目に厚みを置いている
- 追撃の到達点である三手目が 13 本あります。他所に書かれていない 踏み込んだ内容なので、ここがこのサイトの本体です。
- AI を使っていない
- 判定も追撃も、あらかじめ書かれたデータをたどっているだけです。 回答は外部に送っていないので、何回やっても無料です。
- 四択の限界は隠さない
- 四択が鍛えるのは見分ける力で、ゼロから組み立てる力ではありません。 全問正解しても口から出るとは限らないので、 模範解答を読んだあと自分の言葉で言い直すのが一番効きます。