Skip to content

Stage 0 — Foundation

Triết lý cốt lõi: Không timeline cứng, không đếm ngày. Chỉ có thứ tự moduleExit Criteria.
Tuân theo dependency: bạn không thể hiểu sâu React Fiber nếu chưa hiểu Browser Rendering Pipeline; không thể tối ưu Network nếu chưa hiểu HTTP/2 và TLS.
Quy tắc duy nhất: không sang module sau khi chưa đạt Exit Criteria module trước.

Phase: UNLEARN (50:50 | 70:30 | 80:20)
Teaching Model: 70% Teaching / 30% Questioning
Deliverable: Bộ 5 bản vẽ (Event Loop, Rendering Pipeline, Prototype Chain, HTTP Request Lifecycle, Debug Flowchart) + 1 demo app chứng minh hiểu biết về closure, this, và memory leak + 1 Decision Record mẫu.

Mục tiêu

Hiểu "máy tính chạy code như thế nào""trình duyệt render trang như thế nào" trước khi chạm vào framework.

  • Unlearn → Rebuild: Tháo gỡ nhận thức sai về JS, Browser, Network. Xây lại từ spec/engine.
  • Staff Lens: Mỗi module kết thúc bằng "Nếu bạn là Staff review code này..."
  • Decision Record: Mỗi nhóm module lớn có DR mẫu để tập quen với việc "decide trước khi code".

Tại sao Stage 0 tồn tại

  • Bối cảnh thực tế: 80% bug "kỳ lạ" ở production đều xuất phát từ hiểu sai cơ chế JS engine, event loop, hoặc rendering pipeline.
  • Hậu quả nếu bỏ qua: Bạn sẽ học React theo kiểu "copy-paste magic", không bao giờ debug được hydration mismatch, memory leak, hoặc INP cao.
  • Output của Stage 0: Khả năng giải thích bằng giấy bút (không code) cách 1 dòng JS biến thành pixel trên màn hình.

Danh sách module

Tư duy & Phương pháp

ModuleNội dungMức độStatus
0.0.1 First Principles ThinkingDạy cách hỏi "tại sao" trước khi học syntax. Socratic method cơ bản.Foundation

JS Engine & Runtime

ModuleNội dungMức độStatus
0.1.1 V8 Engine & Memory BasicsIgnition → Sparkplug → Maglev → TurboFan, Hidden Classes, Inline Cache, Generational GCFoundation
0.1.2 Event Loop FundamentalsCall Stack, Microtask, Macrotask, Render PipelineFoundation
0.1.3 Scheduler & Browser Task SchedulingrAF, rIC, scheduler.postTask(), React SchedulerApplication
0.1.4 Execution ContextHoisting, Scope Chain, TDZFoundation
0.1.5 ClosureClosure, Lexical Environment, Memory LeakFoundation
0.1.6 this Binding4 quy tắc this, Arrow Function, Explicit/Implicit BindingFoundation
0.1.7 Prototype Chain, Proxy & ReflectPrototype Chain, Object Creation, Proxy, ReflectFoundation

Browser Rendering & CSS

ModuleNội dungMức độStatus
0.2.1 Critical Rendering PathDOM → CSSOM → Render Tree → Layout → Paint → CompositeFoundation
0.2.2 CSS Rendering Deep DiveStacking Context, Containing Block, BFC, GPU Layer, will-changeApplication

Browser APIs & Storage

ModuleNội dungMức độStatus
0.3.1 Browser Storage & PersistencelocalStorage, IndexedDB, Cookie, Quota, EvictionFoundation
0.3.2 Browser APIs — Observers & WorkersIntersectionObserver, ResizeObserver, Web Workers, Service WorkerApplication
0.3.3 Web Components & Shadow DOMCustom Elements, Shadow DOM, Slot, ::part(), ElementInternalsApplication

TypeScript

ModuleNội dungMức độStatus
0.5.1 TypeScript Generics & Advanced TypesGenerics, Mapped Types, Conditional Types, inferFoundation
0.5.2 TypeScript Utility Types & ZodPaths<T>, PickByValueType, unknown vs any, Zod runtime validationApplication

Network & HTTP

ModuleNội dungMức độStatus
0.6.1 HTTP Protocol EvolutionHTTP/1.1, HTTP/2, HTTP/3, TLS HandshakeFoundation
0.6.2 Caching & Resource HintsCache-Control, ETag, preload/prefetch, BrotliApplication
0.6.3 Network Security & InfrastructureDNS, CDN, CORS, HSTSApplication
0.6.4 API Design & Backend ContractREST maturity, Cursor pagination, Idempotency key, Rate LimitApplication

Debugging & Engineering

ModuleNội dungMức độStatus
0.7.1 Debugging Methodology FundamentalsRIMHVRP framework, git bisect, DevTools root causeFoundation
0.7.2 Advanced Debugging & Postmortem3-snapshot memory leak, LoAF API, Postmortem formatMastery
0.8.1 Cost Engineering for FrontendTính $/user, bundle size = infrastructure cost, CDN cost, compute costFoundation
0.8.2 Technical Writing: RFC, ADR, RunbookStaff viết trước khi code. RFC, ADR, Runbook formatFoundation

Stage 0 Staff Checkpoint

Tự đánh giá trước khi sang Stage 1. Nếu trả lờ "Không" ở bất kỳ câu nào, quay lại module tương ứng.

#Câu hỏiModule
1Tôi có vẽ được Event Loop đầy đủ trên giấy trong < 5 phút không? (đúng spec, không chỉ "vòng lặp")0.1.2
2Tôi có vẽ được Browser Rendering Pipeline từ HTML đến Pixel không? (bao gồm cả Composite layer)0.2.1
3Tôi có giải thích được V8 hidden class và inline caching không? (không dùng analogy sai)0.1.1
4Tôi có biết khi nào dùng rAF vs rIC vs postTask không? (không chỉ "dùng để animation")0.1.3
5Tôi có xử lý được storage quota và QuotaExceededError không?0.3.1
6Tôi có viết được custom element với Shadow DOM không? (hiểu encapsulation thực sự)0.3.3
7Tôi có debug được bug production trong 30 phút không cần Google không? (dùng RIMHVRP)0.7.1
8Tôi có thiết kế được API với cursor pagination không? (hiểu tại sao cursor > offset)0.6.4
9Tôi có giải thích được Stacking Context và Containing Block không? (không chỉ "z-index")0.2.2
10Tôi có viết được DeepPartial<T>PickByValueType<T, V> không? (hiểu type system, không copy-paste)0.5.1
11Tôi có dùng Zod validate runtime và infer type không?0.5.2
12Tôi có giải thích được HTTP/2 vs HTTP/3 không? (trade-off, không chỉ "HTTP/3 nhanh hơn")0.6.1
13Tôi có viết được postmortem đúng format không? (không blame, có metric)0.7.2
14Tôi có tính cost impact của 1 quyết định kỹ thuật không? (bundle size → $)0.8.1
15Tôi có viết 1 RFC 1 trang cho 1 feature đơn giản không?0.8.2

Nguyên tắc vàng

  • Nếu không vẽ được Event Loop và Rendering Pipeline trên giấy, chưa sang Stage 1.
  • Mỗi checkbox trong checklist là một kiến thức bạn PHẢI giải thích được cho người khác. Nếu không giải thích được, chưa hiểu sâu — quay lại học.