Skip to content

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)

# Bài học Mô tả Độ khó
P19 Kỹ thuật thi đấu Python Template, pattern, trick ⭐⭐⭐
P20 Bài tập tổng hợp Luyện tập tất cả kiến thức ⭐⭐⭐

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)

# Bài học Mô tả Độ khó
C01 Tại sao C++? Tốc độ, STL, cài đặt, IDE
C02 Cú pháp cơ bản Biến, kiểu dữ liệu, nhập/xuất
C03 Điều kiện & Vòng lặp if/else, for, while
C04 Mảng & Vector Mảng tĩnh, vector ⭐⭐
C05 String Chuỗi C++ ⭐⭐

Phần B — Kỹ thuật (3 bài)

# Bài học Mô tả Độ khó
C06 Hàm trong C++ Định nghĩa, overload, reference ⭐⭐
C07 Template & Fast I/O Template thi đấu, tối ưu I/O ⭐⭐
C08 Reference & Pointer Tham chiếu, con trỏ ⭐⭐

Phần C — STL Cơ bản (3 bài)

# Bài học Mô tả Độ khó
C09 pair & tuple Nhóm giá trị ⭐⭐
C10 Vector nâng cao Iterator, resize, 2D vector ⭐⭐
C11 sort & algorithm sort, reverse, unique ⭐⭐

Phần D — STL Nâng cao (4 bài)

# Bài học Mô tả Độ khó
C12 set & map set, multiset, map, unordered_* ⭐⭐⭐
C13 queue, stack, deque Hàng đợi, ngăn xếp ⭐⭐⭐
C14 algorithm nâng cao lower_bound, upper_bound ⭐⭐⭐
C15 Mẹo thi đấu C++ Template, trick, cheat sheet ⭐⭐⭐

Phần E — Tổng hợp & Nâng cao (5 bài)

# Bài học Mô tả Độ khó
C16 Bài tập tổng hợp 18 bài tập, 20 bài CSES ⭐⭐⭐
C17 Thuật toán STL & Số học numeric, bitmask, modular, sieve ⭐⭐⭐
C18 Xử lý xâu nâng cao stringstream, getline, pattern thi đấu ⭐⭐⭐
C19 Matrix & Grid Pattern BFS/DFS lưới, prefix sum 2D ⭐⭐⭐
C20 Lambda & Iterator Lambda, iterator, erase-remove ⭐⭐⭐

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

P01 → P08

Tuần 4–6: Cấu trúc dữ liệu Python

P09 → P13

Tuần 7–9: Thư viện thi đấu Python

P14 → P18

Tuần 10: Tổng hợp & Luyện tập

P19 → P20

Tuần 11–15: Chuyển sang C++

C01 → C15

Tuần 16–18: C++ nâng cao

C16 → C20

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


💬 Bình luận