Python 100 Days: Khóa học lập trình Python miễn phí
Python - 100 Days from Novice to Master là chương trình học miễn phí do lập trình viên 骆昊 (Luo Hao) biên soạn, gồm 100 ngày học đánh số bằng tệp markdown, đi từ cài đặt Python đến cơ sở dữ liệu, Django, thu thập dữ liệu web, phân tích dữ liệu và học máy. Chọn nó nếu bạn đọc được tiếng Trung và muốn một lộ trình liền mạch thay vì gom nhặt tài liệu rời rạc; bỏ qua nếu cần tài liệu tiếng Anh, vì cả khóa học đều viết bằng tiếng Trung.
Chương trình học Python toàn diện trong 100 ngày
Python - 100 Days from Novice to Master là một chương trình học tự học gồm 100 bài học được đánh số theo ngày, nằm trong repo GitHub jackfrued/Python-100-Days. Những ngày đầu tập trung vào cú pháp Python cơ bản và cấu trúc dữ liệu, giai đoạn giữa đi qua cơ sở dữ liệu, Django và thu thập dữ liệu web, còn những ngày cuối bao gồm phân tích dữ liệu, học máy và kinh nghiệm làm việc nhóm trong dự án.
Các chủ đề được đề cập trong Python 100 Days
- ✓Ngày 1-20 dạy Python cơ bản: biến, toán tử, cấu trúc rẽ nhánh và vòng lặp, list, tuple, chuỗi, set, dictionary, hàm, module, và lập trình hướng đối tượng.
- ✓Ngày 21-30 áp dụng cú pháp đó vào xử lý tệp: đọc/ghi JSON, CSV, Excel, thao tác với tệp Word và PDF, gửi email và SMS, và dùng biểu thức chính quy (regex).
- ✓Ngày 31-35 là phần 'nội dung liên quan khác': ôn tập Python nâng cao, nhập môn front-end với HTML/CSS/JavaScript/Vue.js, và một chương về hệ điều hành Linux.
- ✓Ngày 36-45 dạy quản trị cơ sở dữ liệu với MySQL: DDL, DML, DQL, DCL trong SQL, view, hàm, thủ tục lưu trữ, đánh chỉ mục, kết nối Python với MySQL, và một phần thực hành Hive.
- ✓Ngày 46-60 đóng vai trò một hướng dẫn phát triển web bằng Python, xây một dự án Django hoàn chỉnh gồm model và ORM, session và cookie, middleware, front-end Vue.js gọi REST API qua DRF, cache với Redis, tác vụ nền với Celery, unit test, và triển khai bằng uWSGI/Nginx.
- ✓Ngày 61-65 dạy thu thập dữ liệu web: thư viện requests, phân tích HTML bằng regex/XPath/CSS selector, lập trình đồng thời, Selenium, và framework Scrapy.
- ✓Ngày 66-80 đóng vai trò một chương trình học phân tích dữ liệu Python: NumPy, pandas, và trực quan hóa dữ liệu với matplotlib, Seaborn, và Pyecharts.
- ✓Ngày 81-100 dạy các thuật toán học máy (kNN, cây quyết định, naive Bayes, hồi quy, K-means, các phương pháp ensemble như XGBoost và LightGBM, mạng nơ-ron, và nhập môn xử lý ngôn ngữ tự nhiên), rồi kết thúc bằng kinh nghiệm làm dự án nhóm, một chương câu hỏi phỏng vấn, và một ngày bổ sung về toán cho học máy và deep learning.
Khóa học Python này dành cho ai?
- •Người mới bắt đầu hoàn toàn: Ngày 1 dạy cài đặt Python, Ngày 2 hướng dẫn viết chương trình đầu tiên trước khi đi vào lý thuyết.
- •Người muốn có một lộ trình phát triển Python duy nhất thay vì gộp nhiều khóa học riêng lẻ cho cú pháp, cơ sở dữ liệu, framework web, và khoa học dữ liệu.
- •Người tìm một khóa học lập trình Python miễn phí đi liên tục: 100 ngày nối tiếp nhau thay vì một tập hợp tài liệu rời rạc không có điểm kết.
- •Người đang cân nhắc giữa các hướng đi nghề nghiệp Python, vì chính README chia rõ backend, DevOps, phân tích dữ liệu, khoa học dữ liệu, thu thập dữ liệu web, và kiểm thử tự động thành các hướng riêng.
- •Người tự học chuẩn bị phỏng vấn, nhờ có hẳn một chương câu hỏi phỏng vấn nằm trong phần Ngày 91-100.
Ưu điểm của tài nguyên học Python này
- ✓Miễn phí và phạm vi rộng: một repo duy nhất sắp xếp cú pháp cho người mới, cơ sở dữ liệu, một dự án Django hoàn chỉnh, thu thập dữ liệu web, phân tích dữ liệu và học máy, thay vì năm khóa học tách rời.
- ✓Bài học đi kèm code cụ thể: riêng Ngày 7 đã có năm bài tập, gồm tìm số nguyên tố dưới 100, sinh dãy Fibonacci, và trò chơi xúc xắc CRAPS.
- ✓Có hẳn một dự án thực tế, không chỉ đoạn code rời rạc: Ngày 46-60 xây một ứng dụng Django xuyên suốt từ cache, tác vụ bất đồng bộ, test, đến triển khai, còn Ngày 91-100 bổ sung kinh nghiệm làm việc nhóm như vai trò trong Scrum và quy trình Git.
- ✓185.169 star và 55.698 fork (theo GitHub) cho thấy một lượng lớn lập trình viên đã dùng hoặc tham khảo repo này.
- ✓Có thêm kênh ngoài repo: các chuyên mục Zhihu và loạt video trên Bilibili của tác giả, theo README, bổ trợ cho phần bài học viết.
Những điều cần cân nhắc cho người học
- △README và gần như toàn bộ tệp bài học được viết bằng tiếng Trung; không có bản tiếng Anh cho nội dung từng ngày.
- △GitHub không liệt kê giấy phép (license) nào cho repo này. Điều đó khiến không rõ bạn được phép làm gì với nội dung ngoài việc đọc nó.
- △Cách đánh số ngày không hoàn toàn nhất quán: phần lớn dùng kiểu 'DayNN', nhưng Ngày 91-99 lại chuyển sang kiểu tiêu đề '第N天' (ngày thứ N) trong README.
- △Một số công cụ được nhắc tới, như PowerDesigner để vẽ mô hình cơ sở dữ liệu hay JIRA để quản lý issue, là sản phẩm thương mại, dù nội dung chương trình học vẫn miễn phí.
- △Nội dung tăng tốc khá nhanh ở giai đoạn cuối: riêng Ngày 81-90 đã đi qua kNN, cây quyết định, naive Bayes, hồi quy, K-means, và các phương pháp ensemble, nhịp độ dốc hơn nhiều so với 20 ngày đầu.
Câu hỏi thường gặp
Python - 100 Days from Novice to Master bắt đầu từ số 0: Ngày 1 dạy cài đặt môi trường Python, Ngày 2 hướng dẫn viết chương trình 'Hello World' đầu tiên trước khi vào lý thuyết, nên chương trình được thiết kế cho người chưa có kinh nghiệm lập trình.
Python - 100 Days from Novice to Master bao trùm cú pháp Python cơ bản, xử lý tệp, MySQL và SQL, một dự án web Django hoàn chỉnh, thu thập dữ liệu web bằng Selenium và Scrapy, phân tích dữ liệu với NumPy và pandas, cùng các thuật toán học máy, trải dài qua 100 ngày.
Chương trình học được trình bày dưới dạng các tệp bài học markdown đánh số, nằm trong repo GitHub jackfrued/Python-100-Days, gom theo từng khoảng ngày như Day01-20 và Day66-80, kèm một số nội dung video được đăng lại trên Bilibili theo README.
Không có tài liệu nào nêu rõ yêu cầu đầu vào chính thức, nhưng cấu trúc chương trình tự trả lời điều đó: khóa học mở đầu bằng cài đặt Python và viết chương trình đầu tiên, nên không giả định bạn đã có kinh nghiệm Python trước đó.
Nội dung bài học trong repo GitHub jackfrued/Python-100-Days là miễn phí để đọc. README có nhắc tới một nhóm trao đổi trả phí riêng cho ai muốn học theo dạng điểm danh hoặc tư vấn trực tiếp với tác giả.
Chương trình học được viết bằng tiếng Trung. Có vài đoạn tiếng Anh xen kẽ, như lời khuyên 'hãy biến tiếng Anh thành ngôn ngữ làm việc của bạn,' nhưng bản thân các bài học theo ngày không được dịch.
Lựa chọn thay thế
Ai nên thử — và ai nên bỏ qua
Hãy thử Python - 100 Days from Novice to Master nếu bạn đọc được tiếng Trung và muốn một lộ trình duy nhất, miễn phí, đi từ Python cơ bản qua Django, thu thập dữ liệu web, phân tích dữ liệu và học máy, đặc biệt nếu bạn đang cân nhắc hướng đi nghề nghiệp Python nào (backend, DevOps, phân tích dữ liệu, khoa học dữ liệu, kiểm thử), vì chính README đã chia rõ các hướng đó. Bỏ qua nếu bạn cần bài học bằng tiếng Anh hoặc một khóa học có bài tập được chấm điểm và phản hồi từ giảng viên: đây là danh sách tệp markdown để tự đọc, không phải một lớp học tương tác.
Python-100-Days có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về Python-100-Days.
