Lập Trình Cơ Bản — Từ Zero đến Thi Đấu
Dành cho: Người chưa biết gì về lập trình, học sinh cấp 2–3
Mục tiêu: Nắm vững Python & C++ để thi đấu competitive programming
Bạn sẽ học được gì?
Bộ bài học này được thiết kế để đưa bạn từ con số 0 đến mức có thể thi đấu lập trình một cách tự tin. Không lý thuyết suông, không "dâu ria" — chỉ những gì cần thiết để giải bài.
Lộ trình: Python cơ bản → Cấu trúc dữ liệu Python → Thư viện thi đấu → Chuyển sang C++
Chương 1: Python cho Thi Đấu (20 bài)
Phù hợp cho: Người chưa biết gì về lập trình
Sau khi học xong: Viết được code Python, giải bài thi đấu cơ bản
Phần A — Cơ bản (8 bài)
| # |
Bài học |
Mô tả |
Độ khó |
| P01 |
Cài đặt & Hello World |
Cài Python, IDE, chương trình đầu tiên |
⭐ |
| P02 |
Biến & Kiểu dữ liệu |
int, float, str, bool, chuyển đổi kiểu |
⭐ |
| P03 |
Nhập/Xuất dữ liệu |
input(), print(), f-string, sep, end |
⭐ |
| P04 |
Toán tử & Biểu thức |
Số học, so sánh, logic, bitwise |
⭐ |
| P05 |
Câu lệnh điều kiện |
if/elif/else, ternary |
⭐ |
| P06 |
Vòng lặp — Cơ bản |
for, while, range(), break, continue |
⭐⭐ |
| P07 |
Vòng lặp — Nâng cao |
enumerate, zip, list comprehension |
⭐⭐ |
| P08 |
String (Xâu ký tự) |
Xâu ký tự, các phương thức |
⭐⭐ |
Phần B — Cấu trúc dữ liệu (5 bài)
| # |
Bài học |
Mô tả |
Độ khó |
| P09 |
List & Array 1D |
Mảng, thao tác, slicing, sort |
⭐⭐ |
| P10 |
Array 2D & Matrix |
Ma trận, duyệt, xoay, transpose |
⭐⭐ |
| P11 |
Dict & Set |
Dictionary, Set, defaultdict, Counter |
⭐⭐ |
| P12 |
Tuple |
Tuple, namedtuple |
⭐ |
| P13 |
Hàm (Function) |
Function, lambda, map, filter |
⭐⭐ |
Phần C — Thư viện thi đấu (5 bài)
| # |
Bài học |
Mô tả |
Độ khó |
| P14 |
collections |
deque, Counter, defaultdict |
⭐⭐⭐ |
| P15 |
heapq |
Hàng đợi ưu tiên, Top-K |
⭐⭐⭐ |
| P16 |
itertools |
permutations, combinations |
⭐⭐⭐ |
| P17 |
bisect |
Tìm kiếm nhị phân |
⭐⭐⭐ |
| P18 |
math & Built-in |
gcd, lcm, factorial, các hàm built-in |
⭐⭐ |
Phần D — Tổng hợp (2 bài)
Chương 2: C++ cho Thi Đấu (21 bài)
Phù hợp cho: Người đã vững Python
Sau khi học xong: Viết được code C++, sử dụng STL, thi đấu hiệu quả
Tổng quan: 21 bài học C++
Phần A — Cơ bản (5 bài)
Phần B — Kỹ thuật (3 bài)
Phần C — STL Cơ bản (3 bài)
Phần D — STL Nâng cao (4 bài)
Phần E — Tổng hợp & Nâng cao (5 bài)
Phần F — Tham chiếu nhanh (1 bài)
| # |
Bài học |
Mô tả |
Độ khó |
| C21 |
Tham chiếu nhanh |
memset, memcpy, scanf/printf, auto, freopen, bitset |
⭐⭐⭐ |
Lộ trình học đề xuất
Tuần 1–3: Python cơ bản
Tuần 4–6: Cấu trúc dữ liệu Python
Tuần 7–9: Thư viện thi đấu Python
Tuần 10: Tổng hợp & Luyện tập
Tuần 11–15: Chuyển sang C++
Tuần 16–18: C++ nâng cao
Bài tập luyện tập
Sau khi học xong mỗi bài, hãy luyện tập:
- CSES Problem Set — Bộ bài tập cơ bản, phù hợp cho người mới
- VNOJ — OJ Việt Nam, nhiều bài thi HSG, VOI
- Codeforces — Contest online, phân loại theo độ khó
- AtCoder — Contest chất lượng cao
Bài viết liên quan