学習ロードマップ
段は「何を先に知っている必要があるか」だけで決まっています。難易度順ではありません。 読了にした記事は緑になり、前提が揃っていない記事は点線で表示されます。 飛ばして読んでも構いませんが、点線の記事は途中で前提知識を補いながら読むことになります。
1
第 1 段
前提なしで読める。ここから始める
— / 12ネットワーク / Web基礎
DNS — 名前からIPアドレスにたどり着くまで
ネットワーク / Web基礎
TCP/IP — データが相手に届くまでの4層
ブラウザ応用
レンダリングパイプライン — どのCSSが重いかは工程で決まる
ブラウザ応用
イベントループ — 1本のスレッドで待たずに捌く
ブラウザ基礎
同一オリジンポリシー — ブラウザが最初から持っている壁
データ / DB 設計基礎
正規化 — 同じ事実を2か所に書かない
データ / DB 設計発展
トランザクションと分離レベル — 同時に動く処理が互いをどこまで見てよいか
設計 / アーキテクチャ基礎
凝集度と結合度 — 変更したとき何ファイル触るか
運用 / 開発プロセス応用
CI/CD — 壊れていることに、人間より先に気づく
運用 / 開発プロセス応用
コンテナ — 「手元では動く」を構造的に潰す
運用 / 開発プロセス応用
ログと監視 — 誰より先に、壊れていることに気づく
運用 / 開発プロセス応用
テスト戦略 — どこに何枚の網を張るか
2
第 2 段
第1段のどれかを読んでいれば入れる
— / 12ネットワーク / Web応用
HTTP/1.1 → 2 → 3 — 何が遅くて、何を直したのか
ネットワーク / Web応用
TLS — 盗聴・改ざん・なりすましを同時に防ぐ
ブラウザ応用
Core Web Vitals — 数字を上げるのではなく、何が遅いかを特定する
認証 / セキュリティ基礎
Cookie とセッション — 状態を持たない HTTP に記憶を持たせる
データ / DB 設計応用
インデックス — 読む行を減らすための索引
データ / DB 設計応用
マイグレーション — 流した瞬間に、書き込みが全部待つ
データ / DB 設計応用
コネクションプール — 増やしたら、もっと詰まった
設計 / アーキテクチャ応用
SOLID — 5つの原則が守ろうとしている1つのこと
設計 / アーキテクチャ応用
レイヤードアーキテクチャ — 依存の向きを一方向に揃える
設計 / アーキテクチャ応用
トレードオフの決め方 — 正解を探すのをやめて、払うものを選ぶ
運用 / 開発プロセス応用
インシデント対応 — 直すのが先か、分かるのが先か
運用 / 開発プロセス応用
秘密情報の扱い — 消したコミットの中に、鍵はまだ残っている
3
第 3 段
土台が要る。ここから実務の判断に効いてくる
— / 22ネットワーク / Web応用
CDN — 利用者の近くに置いて、オリジンを守る
ネットワーク / Web応用
キャッシュ戦略 — いつ捨てるかを設計する
ネットワーク / Web応用
メールが届かない — 「送れた」と「届いた」は別の話
ブラウザ応用
CORS — 壁に穴を開けるのは「読まれる側」
ブラウザ応用
ブラウザのストレージ — 読めるか、と、送られるかは別の話
ブラウザ応用
アクセシビリティ — div にクリックを付けた日から、誰かが使えなくなる
認証 / セキュリティ応用
JWT — 取り消せない代わりに、問い合わせが要らない
認証 / セキュリティ応用
XSS・CSRF・SQLi — データとコードの境界が壊れる
認証 / セキュリティ応用
認可 — ログインしている人が、そのデータを触ってよいとは限らない
認証 / セキュリティ応用
パスワードの保存 — 漏れたあとに、何日持ちこたえられるか
認証 / セキュリティ応用
依存パッケージ — 自分が書いていないコードが、本番で動く
データ / DB 設計応用
N+1 問題 — 1回で済むはずの問い合わせが100回になる
データ / DB 設計発展
実行計画 — DB が何をしようとしているかを読む
データ / DB 設計応用
RDB と NoSQL — 問い合わせの形を、いつ決めるか
データ / DB 設計応用
論理削除と物理削除 — 「消した」を、すべてのクエリが覚えていられるか
設計 / アーキテクチャ発展
ドメインモデリング — 業務の言葉をコードの形にする
設計 / アーキテクチャ応用
I/O と並行処理 — 待っている間に、何をするか
API 設計応用
リソース設計 — 一度公開したら変えられない契約
運用 / 開発プロセス応用
フィーチャーフラグ — 消し忘れたスイッチが、本番を壊す
運用 / 開発プロセス応用
バックアップと復旧 — 取れていることと、戻せることは別
運用 / 開発プロセス応用
設定の管理 — 環境ごとに違う値を、どこに置くか
運用 / 開発プロセス発展
SLO とエラーバジェット — どこまで壊れてよいかを、先に数字で決める
4
第 4 段
積み上げた上で初めて腑に落ちる層
— / 16ブラウザ応用
Service Worker — 直したのに、利用者の画面だけ古い
ブラウザ応用
画像と動画の配信 — 軽くしたはずの画像が、ページを遅くしている
ブラウザ発展
描画をどこでするか — HTML を作る時と場所を、データごとに選ぶ
認証 / セキュリティ発展
OAuth 2.0 と OIDC — 「代理で使わせる」と「誰かを証明する」は別物
認証 / セキュリティ応用
監査ログ — 「誰がやったか」を、あとから言えるか
認証 / セキュリティ応用
セキュリティヘッダ — 最後の1枚を、ブラウザに張らせる
認証 / セキュリティ応用
プロンプトインジェクション — 読ませた文章が、命令に変わる
データ / DB 設計応用
ID の設計 — 連番を外に出した日から、数えられてしまう
データ / DB 設計応用
全文検索 — LIKE '%...%' が効かなくなる日
設計 / アーキテクチャ応用
時刻とタイムゾーン — 保存した「0時」は、どこの0時か
設計 / アーキテクチャ応用
文字コードと正規化 — 同じに見える文字が、一致しない
設計 / アーキテクチャ応用
状態をどこに置くか — URL に無いものは、共有できない
API 設計応用
冪等性 — 同じリクエストが2回届く前提で設計する
API 設計応用
エラー設計 — 呼び出し側が正しく振る舞える情報を返す
API 設計発展
REST と GraphQL — 何を楽にして、何を難しくするか
API 設計応用
ページネーション — 数えて飛ばすか、続きから取るか
5
第 5 段
さらに前提を重ねた層
— / 7ブラウザ発展
再描画はなぜ起きるか — 1 文字打つたびに、表ぜんぶが描き直されていた
ブラウザ発展
データをどこで取るか — 取得が一列に並ぶと、画面は足し算で遅くなる
認証 / セキュリティ発展
AI エージェントの権限 — 道具を持たせた瞬間に、認可の問題になる
認証 / セキュリティ応用
AI に送ったデータの行方 — 預け先より、手元のログのほうが長く残る
API 設計応用
リトライとタイムアウト — 助けるつもりの再試行が、障害を大きくする
API 設計応用
API のバージョニング — 変えられないものを、どう変えるか
運用 / 開発プロセス応用
バッチと定期ジョブ — 途中で落ちたとき、もう一度流して大丈夫か
6
第 6 段
さらに前提を重ねた層
— / 47
第 7 段
さらに前提を重ねた層
— / 38
第 8 段
さらに前提を重ねた層
— / 2