| Giai đoạn | Chủ đề chính | Nội dung & Công cụ | Mục tiêu sản phẩm |
|---|---|---|---|
| 1 | Fundamentals |
|
Solve a simple array manipulation problem. |
| 2 | Core Problem Solving |
|
Implement a basic sorting algorithm from scratch. |
| 3 | Core Algorithms |
|
Solve a problem using a greedy approach. |
| 4 | Advanced Data Structures |
|
Implement a traversal algorithm on a binary tree. |
| 5 | Advanced Techniques |
|
Solve a classic dynamic programming problem like Fibonacci or Knapsack. |
| 6 | Practice by Domain |
|
Solve an SQL query challenge on a platform like HackerRank. |
| 7 | Interviews & Competitions |
|
Participate in one online coding competition. |
Tư duy Cốt lõi cho Người giải quyết Vấn đề
1. Phân rã và Chinh phục
Chia nhỏ mọi vấn đề phức tạp thành các bài toán con nhỏ nhất, đơn giản nhất mà bạn có thể giải quyết. Hãy thành thạo nghệ thuật giải quyết những cái nhỏ trước khi xử lý toàn bộ.
2. Nhận dạng Mẫu
Hầu hết các vấn đề đều là biến thể của các mẫu phổ biến (ví dụ: hai con trỏ, cửa sổ trượt, đệ quy). Tập trung vào việc xác định mẫu cơ bản thay vì các chi tiết cụ thể.
3. Làm chủ các Trường hợp Biên
Một giải pháp đúng phải hoạt động với tất cả các đầu vào hợp lệ. Hãy chủ động suy nghĩ về các đầu vào rỗng, mảng một phần tử, số lớn và các trường hợp biên khác. Đây là nơi ẩn chứa lỗi.
4. Kiên trì hơn Cường độ
Giải một bài toán mỗi ngày hiệu quả hơn là nhồi nhét mười bài toán trong một lần. Luyện tập đều đặn sẽ xây dựng trực giác và trí nhớ cơ bắp lâu dài.