Stage 0: JavaScript Language Foundation
1. Tổng quan Stage (Stage Overview)
Mục tiêu
Stage 0 xây lại nền tảng JavaScript từ đầu cho một Junior đã có kinh nghiệm thực tế nhưng còn thiếu mental model.
Không nhằm biến người học thành người "biết syntax".
Mục tiêu là:
Đọc JavaScript → hiểu value → hiểu data → hiểu function → viết code đúng → giải thích được behavior cơ bản.
Stage này là prerequisite trực tiếp cho:
text
Stage 1 — Execution Model
Stage 2 — Object Model
Stage 3 — Async
Stage 6 — TypeScript
Stage 8 — React2. Phạm vi Kiến thức & Mô-đun (Scope & Modules)
Stage 0 gồm 7 Modules / 27 Lessons, chia thành 5 năng lực:
text
VALUE
↓
TYPE
↓
CONTROL FLOW
↓
FUNCTION
↓
DATA & ERRORKhông đi sâu vào:
- Execution Context
- Closure
- Prototype
this- Promise
- Event Loop
- Browser APIs
- V8 internals
Các phần đó thuộc Stage sau để tránh trộn dependency.
3. Dự án Thực hành (Stage Project)
Sau khi hoàn thành 7 modules, không học thêm kiến thức mới.
Xây:
4. Tiêu chí Hoàn thành & Đầu ra (Exit & Prerequisites)
- Điều kiện tiên quyết (Prerequisites): Không có (Chỉ cần có 6 tháng kinh nghiệm viết JS cơ bản)
- Cấp bậc đầu ra (Exit Level):
Strong Junior Foundation
Tiêu chí kiểm thử năng lực thực tế:
Chỉ pass Stage 0 khi đạt tất cả nhóm sau.
Language
- [ ] Giải thích được JavaScript, ECMAScript, Engine và Runtime khác nhau thế nào.
- [ ] Phân biệt value, variable, binding, assignment và mutation.
- [ ] Phân biệt Primitive và Object.
- [ ] Giải thích được
==,===,Object.is. - [ ] Giải thích được truthy/falsy và coercion.
Control Flow
- [ ] Viết control flow không cần tutorial.
- [ ] Sử dụng guard clause và early return hợp lý.
- [ ] Phân biệt
for...invàfor...of.
Functions
- [ ] Viết được function declaration, expression và arrow function.
- [ ] Giải thích function là value.
- [ ] Sử dụng callback và higher-order function.
- [ ] Tách được function lớn thành các function có trách nhiệm rõ ràng.
Data
- [ ] Thành thạo các thao tác Array phổ biến.
- [ ] Dùng
map/filter/reduceđúng bản chất. - [ ] Chuyển đổi Object ↔ Array.
- [ ] Giải thích shallow copy.
- [ ] Không nhầm mutation với reassignment.
Errors
- [ ] Xử lý input không hợp lệ.
- [ ] Sử dụng
throw/try/catchđúng mục đích. - [ ] Có thể đọc stack trace cơ bản.
Integration
- [ ] Hoàn thành CLI Data Processor.
- [ ] Không copy solution.
- [ ] Có test/manual verification cho edge cases.
- [ ] Có thể giải thích toàn bộ architecture của project.