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

Lộ trình Software Engineering và Backend cho FE Engineer đã vững JS/TS, mục tiêu gần: chuyển full-stack trong công việc, mục tiêu dài: build & deploy một AI SaaS production-ready và chuẩn bị cho phỏng vấn Software Engineer. GĐ26–GĐ27 bổ sung nhánh Frontend Architecture và Browser Performance; GĐ28–GĐ33 là nhánh AWS Solutions Architect – Associate (SAA).

Cách dùng: mỗi file = 1 giai đoạn, đánh số 00 → 33 (định nghĩa → tại sao → cơ chế → ví dụ → pitfall). GĐ00–GĐ25 là lộ trình Backend → AI SaaS; GĐ26–GĐ27 là nhánh Frontend sau JS/TS, HTML/CSS và một UI framework. GĐ28–GĐ33 là nhánh SAA, bắt đầu sau GĐ16, không cần hoàn tất các nhánh khác.


Hai trang tra cứu#

TrangDùng khi
Index dự ánXem toàn cảnh 5 dự án, thứ tự phụ thuộc, tiến độ
Glossary EN ↔ VNTra thuật ngữ EN ↔ VN

Các giai đoạn (34 giai đoạn)#

Phần 0 — Software Engineering Foundation ⟨học xen kẽ với backend, không chờ học xong mới build⟩

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

Phần 2 — Nền tảng production ⟨GĐ12–14 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)

Phần 5 — Frontend Engineering (nhánh chuyên sâu, học độc lập)

Phần 6 — AWS Solutions Architect – Associate (nhánh chuyên sâu, sau GĐ16)


Bản đồ phụ thuộc#

textReady
GĐ00 (DSA) ───────────────┐                          ├─→ học xen kẽ suốt lộ trìnhGĐ01 (Systems) ───────────┘GĐ02 → GĐ03 → GĐ04 → GĐ05 → GĐ07 → GĐ09 → GĐ10 → GĐ15 → GĐ16 AWS → GĐ17 Cloudflare → GĐ18 K8s              │       │                              │                                │              ▼       ▼                              ▼                       ▼            GĐ06    GĐ08                         GĐ12–14                 GĐ19 Distributed              │                                                               │              ▼                                                               ▼            GĐ11                                                            GĐ20 Microservices                                                                              │                                                                              ▼                                                                          GĐ21 System Design                                                                              │                         GĐ12–14 ─→ GĐ22 LLM → GĐ23 RAG → GĐ24 Agents → GĐ25 Capstone

Đọc bản đồ:

  • Bắt đầu: học GĐ00 và GĐ01 theo nhịp 30–40% thời gian, đồng thời bắt đầu build ở GĐ02. Không cần hoàn thành hết DSA mới được học backend.
  • Đường xương sống: GĐ02 → GĐ03 → GĐ04 → GĐ05 → GĐ07 → GĐ09 → GĐ10 → GĐ15 → GĐ16 AWS → GĐ17 Cloudflare. K8s ở GĐ18 là nhánh tiếp theo để học orchestration.
  • GĐ06 (MongoDB) sau GĐ05, không trước — cần khái niệm quan hệ + transaction làm nền so sánh.
  • GĐ08 (Clean Architecture) sau GĐ07 — chỉ có ý nghĩa khi đã cảm thấy đau vì code rối.
  • GĐ11 (Search) sau GĐ10 — vì đồng bộ index dùng lại outbox + worker của GĐ10.
  • GĐ12/GĐ13/GĐ14 học song song được. Nếu chỉ chọn một: GĐ13 (testing) trước.
  • GĐ19–GĐ21 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: chỉ cần hệ thống DA3 làm đất thực hành, không cần GĐ22–GĐ25.
  • GĐ08 mục 3.1 (UnitOfWork + outbox) dùng outbox ở GĐ10 mục 3 và 4; đọc phần đó của GĐ10 trước nếu muốn làm trọn bài.
  • GĐ24 phần MCP qua HTTP cần xác thực ở GĐ07 và GĐ09; GĐ25 dùng lại shutdown (GĐ09 mục 18), outbox (GĐ10), test (GĐ13), xoá dữ liệu (GĐ14) và kiểm tải (GĐ21), nên học GĐ25 sau các giai đoạn đó.
  • GĐ22–GĐ24 có thể bắt đầu song song với GĐ12–GĐ14 nếu bạn nóng lòng chạm vào AI, nhưng không thay thế project full-stack nền tảng.

Nhánh frontend chuyên sâu có dependency riêng, không cần xong Backend/AI:

textReady
JavaScript/TypeScript + HTML/CSS + React/router căn bản                       └──→ GĐ26 Architecture & Design System                                   └──→ GĐ27 Performance & Browser Workers

Stack mục tiêu#

Node.js + Express/NestJS · PostgreSQL + Prisma + pgvector · MongoDB · Elasticsearch/Meilisearch · Redis + BullMQ · JWT/OAuth + Security · Docker + GitHub Actions · AWS EC2/S3/IAM/RDS/Lambda/CloudWatch/VPC · Cloudflare Workers/R2/D1/KV/Queues/Durable Objects · Kubernetes · Email · Vitest + Testcontainers + Pact + k6 · OpenTelemetry · OpenAI/Gemini + Prompt Engineering · Embeddings + Vector DB + RAG · AI Agents + Tool Calling + MCP · Frontend architecture + Design Systems + Micro Frontends/Module Federation + Core Web Vitals + Web/Service Workers.

Nhánh SAA: GĐ16 → GĐ28 → GĐ29 → GĐ30 → GĐ31 → GĐ32 → GĐ33. Đọc GĐ01/GĐ15 để củng cố network/deploy; tham khảo GĐ19/GĐ21 khi học resilience và trade-offs. GĐ32 dùng lại NAT/endpoint của GĐ29 và throttling của GĐ30; bảng phủ ở GĐ28 là đầu vào cho ngân hàng câu hỏi GĐ33. Không cần học hết Frontend/AI trước khi học SAA.

Ngoài phạm vi có chủ đích: Terraform/IaC chuyên sâu, service mesh, event sourcing, CRDT — lý do và thời điểm nên học. Nhánh SAA giới thiệu CloudFormation/IaC ở mức khái niệm và phục hồi, chưa có khóa triển khai IaC riêng.

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Đ06, GĐ08, GĐ18, GĐ20) 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 0 học xen kẽ ~3–4 tháng; Phần 1 ~4–5 tháng; Phần 2 ~2–3 tháng; Phần 3 ~1–1,5 tháng; Phần 4 ~2–3 tháng (~1–2h/ngày). Phần 5 phụ thuộc project và mức độ cần áp dụng Micro Frontend. Phần 6 có nhịp học gợi ý 10 tuần sau AWS căn bản; điều chỉnh theo nền tảng và thời gian lab, không bảo đảm thời điểm sẵn sàng thi.


Bảo trì tài liệu#

Quy ước bắt buộc: mỗi file lẻ mở đầu bằng đúng một dòng # <tiêu đề> rồi một dòng trống.