learning.
learning4 min read

learning · giáo trình tự học cho lập trình viên

Bộ giáo án tự học viết theo một template cố định — mỗi bài có mục tiêu, cây file, walkthrough, pitfalls, bài tập và đáp án. Dành cho người tự học có kỷ luật, muốn ra được sản phẩm thật.

learning · giáo trình tự học cho lập trình viên

Tự học có kỷ luật — nhịp của riêng bạn, vẫn ra sản phẩm

Mình nhớ lần đầu tự học một framework lạ, không có ai ngồi cạnh để hỏi. Mình mở mười cái tab, đọc ba quyển sách song song, làm theo hai khóa YouTube — và sau hai tuần, mình vẫn không build nổi một thứ chạy được. Vấn đề không phải là thiếu tài liệu. Vấn đề là mình thiếu một bản đồ — thứ gì cần đọc trước, thứ gì để sau, và làm sao biết mình đã hiểu thật sự. Thư viện giáo án này chính là cái bản đồ đó — phiên bản mà mình ước mình có hồi đó.

Bạn đang đọc trang đầu của một thư viện giáo án tự học. Mọi series ở đây được viết theo một template cố định — bạn biết trước mỗi bài sẽ có gì, phải làm gì, và làm sao biết mình đã làm đúng.

Vì sao học ở đây

Bạn đã bao giờ đóng một khóa học giữa chừng chỉ vì không biết mình đang ở đâu trong lộ trình chưa? Phần này nói về ba thứ mà thư viện này cố tình thiết kế để bạn không bỏ giữa chừng lần nữa.

  • Nhịp của riêng bạn. Không lớp học, không kỳ thi đè, không phải đuổi kịp ai. Bạn dừng lại bao lâu cũng được, miễn là cuối series có sản phẩm chạy được trên máy mình.
  • Tự chấm điểm bản thân. Mỗi bài kèm phần "How to verify" — cách bạn tự kiểm tra kết quả mà không cần ai duyệt hộ.
  • Đi từ thực tế, không lý thuyết suông. Nghe có vẻ sáo rỗng, nhưng ý mình rất cụ thể: mỗi series gắn với một dự án có thật — build game Sudoku bằng C++ + ImGui, viết engine pixel art bằng LÖVE, deploy hệ thống FastAPI lên VPS… Bạn học bằng cách làm, rồi mới đọc lại để hiểu vì sao nó chạy.

Học như thế nào

Tuần trước một người bạn nhắn mình: "tao đọc xong bài 3 rồi mà sao chạy không ra giống mày?" — hóa ra bạn ấy đã bỏ qua bước setup ở bài 1 vì "thấy quen rồi". Năm bước dưới đây là để bạn không phải gửi tin nhắn đó cho ai.

  1. Đọc preface của series trước — biết series này dạy gì, đối tượng là ai, và sản phẩm cuối cùng trông thế nào.
  2. Setup môi trường theo đúng phần "File tree" của bài 1 — đừng skip, vì các bài sau giả định bạn có đúng cấu trúc đó. Mình đã từng skip và phải quay lại sửa ở bài 4 — mất nguyên một buổi tối.
  3. Đọc từng bài theo thứ tự — mỗi bài có 10 mục cố định:
    • Mục tiêu — bài này phải làm được gì
    • File tree — sau bài này repo trông thế nào
    • Nội dung cần học — kiến thức tóm tắt
    • Cách làm — hướng dẫn step-by-step
    • Key learning — bài học chốt lại
    • How to verify — tự kiểm tra
    • Pitfalls — sai lầm thường gặp
    • Tự học — đọc thêm
    • Bài tập — mở rộng
    • Đáp án — gợi ý sau khi bạn tự thử
  4. Làm bài tập trước khi mở Đáp án. Nghe đơn giản, nhưng đây là chỗ nhiều người trượt nhất. Nếu bí, đọc Pitfalls trước — thường câu trả lời đã nằm đâu đó trong danh sách sai lầm thường gặp.
  5. Verify trước khi sang bài tiếp theo. Nếu test không pass, đừng đi tiếp. Mình biết cảm giác muốn lướt nhanh để thấy mình "tiến bộ" — nhưng tin mình đi, một lỗ hổng ở bài 2 sẽ thành cơn ác mộng ở bài 7.

Mục tiêu của bạn sau khi xong một series

Một series xong không có nghĩa là bạn đã đọc hết mọi bài — nó có nghĩa là ba thứ rất cụ thể dưới đây đang nằm trên ổ cứng của bạn, sẵn sàng để bạn show cho người khác.

  • Một repo Git có thể clone về và chạy ngay — không phải fork rồi sửa hai ngày mới khởi động được.
  • Một sản phẩm cuối — game, app, hay pipeline — đủ thật để bạn show cho bạn bè, chứ không phải một sandbox toy.
  • Tự tin sửa, mở rộng, debug thứ vừa build. Đến mức nào? Đến mức khi một dependency update và mọi thứ vỡ, bạn biết bắt đầu đọc log từ đâu — không phải dán toàn bộ stack trace vào ChatGPT rồi cầu nguyện.

Series đang được biên soạn

Series đầu tiên đang được chuẩn bị từ một dự án thật — sẽ ra mắt trong những ngày tới. Khi có series mới, bạn sẽ thấy chúng được liệt kê ở trang chính.

Trong thời gian chờ, bạn có thể chuyển ngôn ngữ:

  • English
  • [中文 — coming soon]
  • [한국어 — coming soon]

Series

1 series