🗺️ 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:

  1. 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.
  2. 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.
  3. 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ổiThời lượngNộ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útLà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ần15 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ầnModuleNội dung chínhSản phẩm cuối tuần
100 - 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ịchGhi chú tóm tắt bằng lời của mình
201 - Cài đặt môi trườngCài Python 3.14, VS Code, chạy được python --versionẢnh chụp màn hình terminal chạy được Python
302 - Chương trình đầu tiên và cú pháp nền tảngprint(), comment, thụt lề, chạy file .pyFile hello.py chạy được
403 - Biến và kiểu dữ liệu (phần 1)Biến, int, float, str, boolChương trình tính diện tích hình chữ nhật
503 - 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
604 - Toán tử và biểu thứcToán tử số học, so sánh, logic, độ ưu tiênMáy tính bỏ túi 4 phép tính
705 - Chuỗi ký tự (String) (phần 1)Tạo chuỗi, index, slicing, f-stringChương trình định dạng số tiền
805 - Chuỗi ký tự (String) (phần 2) + Ôn tậpCác method chuỗi, escape characterBà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ầnModuleNội dung chínhSản phẩm cuối tuần
906 - Cấu trúc rẽ nhánh (if-elif-else)if, elif, else, điều kiện lồng nhauChương trình xếp loại học lực
1007 - Vòng lặp (for-while) (phần 1)for, range()In bảng cửu chương
1107 - Vòng lặp (for-while) (phần 2)while, break, continue, vòng lặp lồng nhauTrò chơi đoán số
1208 - List và Tuple (phần 1)Tạo list, truy cập, thêm/xóa/sửaQuản lý danh sách công việc
1308 - List và Tuple (phần 2)sort, slice, list comprehension, tupleChương trình thống kê điểm số
1409 - Dict và Set (phần 1)Dictionary: khóa-giá trị, duyệt dictTừ điển Anh-Việt mini
1509 - Dict và Set (phần 2) + Ôn tậpSet, phép toán tập hợpBà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ầnModuleNội dung chínhSản phẩm cuối tuần
1610 - Hàm (Function) (phần 1)def, tham số, returnTách chương trình cũ thành các hàm
1710 - Hàm (Function) (phần 2)Tham số mặc định, *args, **kwargs, scopeThư viện hàm tiện ích cá nhân
1811 - Xử lý lỗi (Exception)try/except/finally, raiseChương trình nhập liệu không bao giờ crash
1912 - Module, Package và Thư viện chuẩnimport, math, datetime, os, jsonChia code thành nhiều file
2013 - Làm việc với File (phần 1)Đọc/ghi file text, withĐọc và phân tích file log
2113 - Làm việc với File (phần 2) + Ôn tậpCSV, JSON, encoding UTF-8Bà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ầnModuleNội dung chínhSản phẩm cuối tuần
2214 - Lập trình hướng đối tượng (OOP) (phần 1)Class, object, __init__, thuộc tínhClass TaiKhoan mô phỏng tài khoản kế toán
2314 - 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ừ
2415 - Môi trường ảo và pipvenv, pip install, requirements.txtDự án có môi trường ảo riêng
2516 - Python kết nối Databasesqlite3, DB-API 2.0, giới thiệu pyodbc/psycopgScript truy vấn database đơn giản
2617 - Dự án tổng kếtTổ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ướngNội dungPhù hợp nếu
Xử lý dữ liệupandas, openpyxl, numpyMuốn tự động hóa báo cáo Excel/kế toán
Tích hợp hệ thốngrequests, REST API, SQLAlchemyMuốn viết tool nối ERP với hệ thống khác
Chất lượng codepytest, type hints, ruff, GitMuốn viết phần mềm nghiêm túc, làm việc nhóm
WebFastAPI hoặc DjangoMuố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 pandas vì 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 đó.


6. Liên kết