Skip to content

HARRY-2 — Backend Mastery Learning Sprint (Frontend → Fullstack → AI SaaS)

Backend Mastery Learning Sprint (Frontend → Fullstack → AI SaaS)

Lộ trình học Backend cho FE Engineer đã vững JS/TS, mục tiêu cuối: build & deploy một AI SaaS production-ready — và đủ nền để qua vòng phỏng vấn backend mid/senior.

Cách dùng: mỗi file = 1 giai đoạn, đánh số 00 → 22 theo đúng thứ tự học (định nghĩa → tại sao → cơ chế → code ngắn → pitfall). Học tuần tự; các nhánh học song song được ghi rõ ở bản đồ phụ thuộc bên dưới.


Ba trang điều hướng

TrangDùng khi
PROJECTS.mdXem toàn cảnh 5 dự án, thứ tự phụ thuộc, tiến độ
CHECKLIST.mdTự chấm kiến thức toàn lộ trình trên một trang
GLOSSARY.mdTra thuật ngữ EN ↔ VN

Các giai đoạn (22 file)

Phần 0 — Ngày 0

Phần 1 — Backend nền tảng

Phần 2 — Nền tảng production ⟨GĐ11–13 học song song được⟩

Phần 3 — Tư duy hệ thống ⟨sản phẩm thật + phỏng vấn senior⟩

Phần 4 — AI Engineering (cho AI SaaS)


Bản đồ phụ thuộc

GĐ1 ─→ GĐ2 ─→ GĐ3 ─→ GĐ4 ─→ GĐ6 ─→ GĐ8 ─→ GĐ9 ─→ GĐ14
        │              │       │                      │
        │              ▼       ▼                      │
        │            GĐ5     GĐ7                      │
        │         (NoSQL) (Clean Arch)                │
        │              │                              │
        │              ▼                              │
        │           GĐ10 (Search)                     │
        │                                             │
        │      ┌──────────────────────────────────────┤
        │      ▼                                      ▼
        │  GĐ11, GĐ12, GĐ13            GĐ15 ─→ GĐ16 ─→ GĐ17 ─→ GĐ18
        │  (song song được)                                     │
        │      │                                                │
        │      └────────→ GĐ19 ─→ GĐ20 ─→ GĐ21 ─→ GĐ22 ◄────────┘
        │                                          (Capstone)

Đọc bản đồ:

  • Đường xương sống bắt buộc: GĐ1 → 2 → 3 → 4 → 6 → 8 → 9 → 14. Không nhảy cóc.
  • GĐ5 (MongoDB) sau GĐ4, không trước — cần khái niệm quan hệ + transaction làm nền so sánh.
  • GĐ7 (Clean Architecture) sau GĐ6 — chỉ có ý nghĩa khi đã cảm thấy đau vì code rối.
  • GĐ10 (Search) sau GĐ9 — vì đồng bộ index dùng lại outbox + worker của GĐ9.
  • GĐ11/12/13 học song song được. Nếu chỉ chọn một: GĐ12 (testing) trước.
  • GĐ15–18 là khối "tư duy hệ thống". Cần cho phỏng vấn senior; với sản phẩm thật, đọc sau khi có hệ thống để mổ xẻ. Nếu đang chuẩn bị phỏng vấn, đọc sớm cũng được — khối này độc lập tương đối.
  • GĐ19–21 có thể bắt đầu song song với GĐ11–13 nếu bạn nóng lòng chạm vào AI.

Stack mục tiêu

Node.js + Express/NestJS · PostgreSQL + Prisma + pgvector · MongoDB · Elasticsearch/Meilisearch · Redis + BullMQ · JWT/OAuth + Security · Docker + GitHub Actions + Kubernetes · S3/R2 + Email · Vitest/Jest + Testcontainers + k6 · OpenTelemetry · OpenAI/Gemini + Prompt Engineering · Embeddings + Vector DB + RAG · AI Agents + Tool Calling + MCP.

Ngoài phạm vi có chủ đích: Terraform/IaC, service mesh, event sourcing, CRDT — lý do và thời điểm nên học.

Nguyên tắc

  1. Mỗi khái niệm gắn 1 đoạn code chạy được — không đọc chay.
  2. Build > tutorial: các dự án nối tiếp, nâng cấp cùng 1 codebase → capstone AI SaaS.
  3. Đọc log & stack trace kỹ — backend không có DevTools.
  4. Tận dụng lợi thế FE: hiểu API dưới góc client → thiết kế API tốt hơn.
  5. Chứng minh, đừng tin. Mỗi khẳng định về hệ thống của bạn phải có một test, một số đo, hoặc một lần diễn tập đứng sau.
  6. Biết vì sao KHÔNG dùng cũng quan trọng như biết dùng. Nhiều giai đoạn (GĐ5, 7, 15, 17) kết thúc bằng lý do để không áp dụng — đó là phần đáng giá nhất khi phỏng vấn.

Ước lượng: Phần 1 ~4–5 tháng, Phần 2 ~1,5–2 tháng, Phần 3 ~1–1,5 tháng, Phần 4 ~2–3 tháng (~1–2h/ngày).


Bảo trì tài liệu

backend-mastery-guide-full.mdbản export gộp của toàn bộ file trên — không sửa trực tiếp. Sau khi sửa bất kỳ file lẻ nào, chạy:

bash
./build-full.sh            # ghi lại bản gộp
./build-full.sh --check    # kiểm tra bản gộp còn khớp không (dùng cho CI)

Quy ước bắt buộc: mỗi file lẻ mở đầu bằng đúng một dòng > **HARRY-N** — <tiêu đề>, dòng trống, rồi # <tiêu đề> giống hệt. Script sẽ báo lỗi nếu thiếu.

Học bằng cách build. Chứng minh, đừng tin.