🗺️ Lộ trình tổng quan — 26 tuần
← Quay lại Bắt đầu
1. Nguyên tắc thiết kế lộ trình
Lộ trình này được xây dựng dựa trên 3 ràng buộc của bạn:
- Chưa biết lập trình → phải giải thích từ khái niệm gốc, không giả định kiến thức nền.
- Dưới 5 giờ/tuần → mỗi tuần chỉ nạp 1 lượng kiến thức nhỏ, có thời gian thẩm thấu.
- Mục tiêu nền tảng, không vội ứng dụng → đi chậm phần cơ bản, đào sâu “tại sao” chứ không chỉ “làm thế nào”.
Vì sao 26 tuần chứ không phải "học Python trong 30 ngày"?
Các khóa “30 ngày” giả định bạn học 4-6 giờ/ngày. Với 5 giờ/tuần, 30 ngày của họ tương đương ~24 tuần của bạn. Con số 26 tuần là thực tế, không phải bi quan.
2. Phân bổ thời gian mỗi tuần
Đề xuất chia 5 giờ cuối tuần thành 3 buổi:
| Buổi | Thời lượng | Nội dung |
|---|---|---|
| Buổi 1 (Thứ 7 sáng) | 90 phút | Đọc lý thuyết module + gõ lại toàn bộ ví dụ |
| Buổi 2 (Thứ 7 chiều/tối) | 90 phút | Làm bài tập thực hành |
| Buổi 3 (Chủ nhật) | 60 phút | Ôn lại buổi trước + viết ghi chú tổng kết bằng lời của mình |
| Xen kẽ trong tuần | 15 phút x 3 ngày | Đọc lại ghi chú cũ (chống quên) |
Quy tắc 20 phút
Nếu một tuần nào đó quá bận, vẫn phải mở máy 20 phút. Duy trì thói quen quan trọng hơn số giờ. Mất nhịp 2 tuần liên tiếp là dấu hiệu sắp bỏ cuộc.
3. Bảng lộ trình chi tiết
🟢 GIAI ĐOẠN 1 — Làm quen (Tuần 1–8, ~35 giờ)
Mục tiêu giai đoạn: Hiểu lập trình là gì, cài được môi trường, viết được chương trình đơn giản có biến và phép tính.
| Tuần | Module | Nội dung chính | Sản phẩm cuối tuần |
|---|---|---|---|
| 1 | 00 - Lập trình là gì | Khái niệm chương trình, ngôn ngữ lập trình, thông dịch vs biên dịch | Ghi chú tóm tắt bằng lời của mình |
| 2 | 01 - Cài đặt môi trường | Cài Python 3.14, VS Code, chạy được python --version | Ảnh chụp màn hình terminal chạy được Python |
| 3 | 02 - Chương trình đầu tiên và cú pháp nền tảng | print(), comment, thụt lề, chạy file .py | File hello.py chạy được |
| 4 | 03 - Biến và kiểu dữ liệu (phần 1) | Biến, int, float, str, bool | Chương trình tính diện tích hình chữ nhật |
| 5 | 03 - Biến và kiểu dữ liệu (phần 2) | None, ép kiểu, type(), input() | Chương trình hỏi tên và tuổi người dùng |
| 6 | 04 - Toán tử và biểu thức | Toán tử số học, so sánh, logic, độ ưu tiên | Máy tính bỏ túi 4 phép tính |
| 7 | 05 - Chuỗi ký tự (String) (phần 1) | Tạo chuỗi, index, slicing, f-string | Chương trình định dạng số tiền |
| 8 | 05 - Chuỗi ký tự (String) (phần 2) + Ôn tập | Các method chuỗi, escape character | Bài kiểm tra tự chấm giai đoạn 1 |
🟡 GIAI ĐOẠN 2 — Điều khiển luồng & Cấu trúc dữ liệu (Tuần 9–15, ~32 giờ)
Mục tiêu giai đoạn: Viết được chương trình biết “ra quyết định” và xử lý được tập hợp nhiều dữ liệu.
| Tuần | Module | Nội dung chính | Sản phẩm cuối tuần |
|---|---|---|---|
| 9 | 06 - Cấu trúc rẽ nhánh (if-elif-else) | if, elif, else, điều kiện lồng nhau | Chương trình xếp loại học lực |
| 10 | 07 - Vòng lặp (for-while) (phần 1) | for, range() | In bảng cửu chương |
| 11 | 07 - Vòng lặp (for-while) (phần 2) | while, break, continue, vòng lặp lồng nhau | Trò chơi đoán số |
| 12 | 08 - List và Tuple (phần 1) | Tạo list, truy cập, thêm/xóa/sửa | Quản lý danh sách công việc |
| 13 | 08 - List và Tuple (phần 2) | sort, slice, list comprehension, tuple | Chương trình thống kê điểm số |
| 14 | 09 - Dict và Set (phần 1) | Dictionary: khóa-giá trị, duyệt dict | Từ điển Anh-Việt mini |
| 15 | 09 - Dict và Set (phần 2) + Ôn tập | Set, phép toán tập hợp | Bài kiểm tra tự chấm giai đoạn 2 |
🟠 GIAI ĐOẠN 3 — Viết code có tổ chức (Tuần 16–21, ~28 giờ)
Mục tiêu giai đoạn: Chuyển từ “viết được code chạy” sang “viết code sạch, tái sử dụng được, không sập khi gặp lỗi”.
| Tuần | Module | Nội dung chính | Sản phẩm cuối tuần |
|---|---|---|---|
| 16 | 10 - Hàm (Function) (phần 1) | def, tham số, return | Tách chương trình cũ thành các hàm |
| 17 | 10 - Hàm (Function) (phần 2) | Tham số mặc định, *args, **kwargs, scope | Thư viện hàm tiện ích cá nhân |
| 18 | 11 - Xử lý lỗi (Exception) | try/except/finally, raise | Chương trình nhập liệu không bao giờ crash |
| 19 | 12 - Module, Package và Thư viện chuẩn | import, math, datetime, os, json | Chia code thành nhiều file |
| 20 | 13 - Làm việc với File (phần 1) | Đọc/ghi file text, with | Đọc và phân tích file log |
| 21 | 13 - Làm việc với File (phần 2) + Ôn tập | CSV, JSON, encoding UTF-8 | Bài kiểm tra tự chấm giai đoạn 3 |
🔵 GIAI ĐOẠN 4 — Hoàn thiện nền tảng (Tuần 22–26, ~22 giờ)
Mục tiêu giai đoạn: Hiểu OOP và biết cách Python nối với thế giới bên ngoài (thư viện, database).
| Tuần | Module | Nội dung chính | Sản phẩm cuối tuần |
|---|---|---|---|
| 22 | 14 - Lập trình hướng đối tượng (OOP) (phần 1) | Class, object, __init__, thuộc tính | Class TaiKhoan mô phỏng tài khoản kế toán |
| 23 | 14 - Lập trình hướng đối tượng (OOP) (phần 2) | Method, kế thừa, __str__ | Hệ thống class quản lý chứng từ |
| 24 | 15 - Môi trường ảo và pip | venv, pip install, requirements.txt | Dự án có môi trường ảo riêng |
| 25 | 16 - Python kết nối Database | sqlite3, DB-API 2.0, giới thiệu pyodbc/psycopg | Script truy vấn database đơn giản |
| 26 | 17 - Dự án tổng kết | Tổng hợp toàn bộ kiến thức | Ứng dụng quản lý sổ thu chi |
4. Sơ đồ phụ thuộc kiến thức
Sơ đồ dưới đây cho biết module nào bắt buộc phải học trước module nào. Obsidian sẽ tự render nếu bạn bật plugin Mermaid (mặc định đã bật).
graph TD M00[M00 Lập trình là gì] --> M01[M01 Cài môi trường] M01 --> M02[M02 Cú pháp nền tảng] M02 --> M03[M03 Biến và Kiểu dữ liệu] M03 --> M04[M04 Toán tử] M03 --> M05[M05 Chuỗi] M04 --> M06[M06 Rẽ nhánh] M06 --> M07[M07 Vòng lặp] M07 --> M08[M08 List Tuple] M08 --> M09[M09 Dict Set] M09 --> M10[M10 Hàm] M10 --> M11[M11 Xử lý lỗi] M10 --> M12[M12 Module Package] M11 --> M13[M13 File] M12 --> M13 M13 --> M14[M14 OOP] M12 --> M15[M15 venv và pip] M15 --> M16[M16 Database] M14 --> M17[M17 Dự án tổng kết] M16 --> M17
5. Sau 26 tuần thì học gì tiếp?
Khi hoàn thành lộ trình này, bạn đã có nền tảng lập trình vững. Các hướng đi tiếp theo (chọn 1, không làm cùng lúc):
| Hướng | Nội dung | Phù hợp nếu |
|---|---|---|
| Xử lý dữ liệu | pandas, openpyxl, numpy | Muốn tự động hóa báo cáo Excel/kế toán |
| Tích hợp hệ thống | requests, REST API, SQLAlchemy | Muốn viết tool nối ERP với hệ thống khác |
| Chất lượng code | pytest, type hints, ruff, Git | Muốn viết phần mềm nghiêm túc, làm việc nhóm |
| Web | FastAPI hoặc Django | Muốn làm ứng dụng web |
Đừng nhảy cóc
Rất nhiều người học Python nhảy thẳng vào
pandasvì thấy nó “hữu ích ngay”. Kết quả: copy code trên mạng mà không hiểu, gặp lỗi là bế tắc. Bạn đã chọn học nền tảng bài bản — hãy giữ nguyên lựa chọn đó.