Tổng kết khoá — bạn đang đứng ở đâu, đi tiếp thế nào
Cái gì theo bạn sang Java và cái gì chỉ là ký pháp Python bỏ lại đây. Tự chấm năm outcome của module, rồi chọn một trong hai lối đi tiếp.
TL;DR: Khoá nhập môn dừng ở đây, và phần lớn thứ bạn học không thuộc về Python mà thuộc về cách máy chạy chương trình nói chung. Mô hình thi hành đúng từng dòng, bảng trace, quy trình bóc đề rồi phân rã, ba loại lỗi và cách chẩn đoán, vòng sửa bằng giả thuyết: tất cả theo bạn sang bất kỳ ngôn ngữ nào có cùng mô hình thực thi, kể cả Java. Dấu hai chấm cuối if, thụt lề định nghĩa khối, input() trả về chuỗi chỉ là ký pháp riêng của Python, bỏ lại được. Trang này để bạn tự chấm năm outcome của module cuối, rồi chọn một trong hai lối đi tiếp: Java hay Thuật toán.
1. Đã đi qua những gì
Bốn module, một mạch. Module 1 dạy máy thi hành đúng từng dòng theo thứ tự và giữ trạng thái qua biến, cùng công cụ chạy tay từng bước — bảng trace. Module 2 thêm rẽ nhánh và lặp vào bức tranh đó. Module 3 cho bạn một quy trình: bóc đề thành vào–xử lý–ra, giải tay, vẽ lưu đồ, phân rã, đặt tên hàm, soi ca biên.
Module này (module cuối) không dạy thêm cấu trúc nào. Nó dạy thứ ba module trước không đụng tới: code của bạn sẽ sai, và có một quy trình để xử lý việc đó thay vì hoảng. Bài 1 cho ba dấu hiệu quan sát được để xếp một lỗi vào đúng loại (cú pháp, runtime, hay logic) trước cả khi bạn kịp đọc tên lỗi. Bài 2 dạy đọc traceback từ dưới lên, và biết khi nào chỗ máy vấp không phải chỗ bạn viết sai. Bài 3 thay thói quen sửa mò bằng một vòng bốn bước: giả thuyết, kiểm chứng rẻ nhất, chạy, thu hẹp. Bài 4 bình thường hoá việc kẹt và dạy hỏi đúng cách khi cần trợ giúp. Bài 5 cho bạn năm ca lỗi thật để tự chạy trọn cả vòng, không có bảng điền sẵn.
2. 🗺️ Cheat sheet — bốn bài dán lên tường
| Bài | Câu hỏi nó trả lời | Công cụ |
|---|---|---|
| 1 — Ba loại lỗi | Lỗi này thuộc loại nào? | Nhìn màn hình chạy tới đâu: không nhích dòng nào, dừng giữa chừng, hay chạy hết mà sai |
| 2 — Đọc thông báo lỗi | Traceback đang trỏ đúng chỗ, hay chỉ trỏ chỗ máy vấp? | Đọc từ dưới lên: tên lỗi trước, rồi lần lên dòng code của chính bạn |
| 3 — Sửa bằng giả thuyết | Sửa mò mãi không ra thì làm gì? | Vòng bốn bước: giả thuyết kiểm chứng được, phép kiểm chứng rẻ nhất, chạy, thu hẹp |
| 4 — Kẹt là bình thường | Kẹt quá lâu thì dừng lại lúc nào, hỏi ai, hỏi thế nào? | Ngưỡng 20 phút không thu hẹp; câu hỏi đủ bốn thành phần |
3. Cái gì theo bạn sang Java, cái gì bỏ lại đây
Java không xoá sạch những gì bạn vừa học — nó chỉ đổi ký pháp ở một phần nhỏ. Phân biệt được đúng hai cột dưới đây chính là outcome cuối cùng của cả khoá.
| Thứ bạn vừa học | Theo bạn sang Java? |
|---|---|
| Mô hình máy thi hành đúng từng dòng theo thứ tự, giữ trạng thái qua biến | ✅ Có — mọi ngôn ngữ có mô hình thực thi tuần tự đều y hệt |
| Bảng trace — chạy tay từng bước để lộ chỗ giá trị lệch khỏi kỳ vọng | ✅ Có — công cụ chẩn đoán, không phụ thuộc ngôn ngữ |
| Quy trình bóc đề vào–xử lý–ra rồi phân rã tới mức gõ được ngay | ✅ Có — tư duy giải bài toán, không phải cú pháp |
| Ba loại lỗi cú pháp, runtime, logic và cách chẩn đoán tương ứng | ✅ Có — Java cũng có lỗi biên dịch, exception, và lỗi chạy êm mà sai |
| Vòng sửa lỗi bằng giả thuyết: đoán, kiểm chứng, thu hẹp | ✅ Có — quy trình debug, không gắn với ngôn ngữ nào |
Dấu hai chấm : cuối dòng if/for/while | ❌ Không — Java không dùng dấu hai chấm ở đây |
| Thụt lề để định nghĩa một khối lệnh | ❌ Không — Java khoanh khối bằng cặp ngoặc nhọn, thụt lề chỉ để đọc đẹp |
input() luôn trả về một chuỗi | ❌ Không — Java đọc input bằng cách khác hẳn, không có hàm này |
| Gán biến không cần khai báo kiểu trước | ❌ Phần lớn không — Java bắt khai báo kiểu tường minh trước khi gán (ngoại lệ: từ Java 10, biến cục bộ có thể dùng var để trình biên dịch tự suy ra kiểu) |
Cột "Có" dài hơn cột "Không": phần lớn thứ bạn học ở khoá này là tư duy, chỉ một góc nhỏ là ký pháp riêng của Python.

✅ Self-assessment
Tick được cả năm ý dưới thì bạn sẵn sàng chọn lối đi tiếp ở mục dưới. Ô nào còn ngập ngừng, đọc lại đúng chỗ được gợi ý rồi quay lại tick.
- Tôi xếp được một lỗi vào đúng một trong ba loại — cú pháp, runtime, logic — chỉ bằng cách nhìn màn hình chạy tới đâu, và chọn đúng cách chẩn đoán tương ứng cho loại đó.
- Nếu chưa chắc: đọc lại bài 1 mục 2 và 3, rồi làm lại bài tập ở mục 5.
- Tôi đọc được nguyên nhân thật từ một traceback, kể cả khi dòng máy báo không phải dòng tôi viết sai.
- Nếu chưa chắc: đọc lại bài 2 mục 2 và 3, rồi làm lại phần Tới lượt bạn.
- Tôi áp dụng được vòng sửa lỗi bằng giả thuyết — đoán nguyên nhân, kiểm chứng bằng print hoặc bảng trace, rồi thu hẹp dần — thay vì sửa mò.
- Nếu chưa chắc: đọc lại bài 3 mục 2 và 3, rồi làm lại ví dụ ở mục 4.
- Tôi viết được một câu hỏi nhờ trợ giúp có đủ bốn thành phần: đoạn code tối thiểu tái hiện lỗi, output thật nguyên văn, kết quả mong đợi, và giả thuyết đã thử.
- Nếu chưa chắc: đọc lại bài 4 mục 3, rồi tự viết lại câu hỏi ở mục 5.
- Tôi phân biệt được cái gì trong khoá này theo mình sang Java và cái gì chỉ là ký pháp riêng của Python.
- Nếu chưa chắc: đọc lại bảng ở mục 3 phía trên, rồi tự liệt kê thêm bằng lời của mình trước khi qua khoá tiếp theo.
4. 🚀 Đi tiếp — hai lối ra
Khoá nhập môn dừng ở đây. Từ đây có hai lối, không cần đi cả hai cùng lúc — chọn theo thứ bạn tò mò hơn ngay bây giờ.
Java Foundations — nếu bạn muốn xây một ứng dụng thật chạy được. Khoá này viết lại đúng những concept bạn vừa học — biến, rẽ nhánh, lặp, hàm — bằng ký pháp Java thật: khai báo kiểu tường minh, ngoặc nhọn thay thụt lề, và NullPointerException là ví dụ lỗi runtime của Java: loại lỗi dừng nửa chừng bạn vừa học cách chẩn đoán ở module này.
Thuật toán Căn bản — nếu bạn muốn luyện tư duy giải bài trước khi gắn với một ngôn ngữ cụ thể. Khoá này đo và so sánh một lời giải chạy nhanh chậm ra sao, rồi vào các cấu trúc dữ liệu nền tảng — mảng, danh sách liên kết, stack, queue — trình bày bằng pseudocode trung lập, không ràng vào Python hay Java.
Không chắc chọn cái nào? Nếu nghĩ tới việc xây một thứ chạy được trên máy khiến bạn hào hứng hơn, đi Java. Nếu nghĩ tới việc so sánh hai cách giải cùng một bài xem cách nào nhanh hơn khiến bạn hào hứng hơn, đi Thuật toán.
Bài tiếp theo: không còn bài nào trong khoá này — chọn một trong hai lối ở mục 4 phía trên.
Bài này đáng gửi cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
Bài này có giúp bạn hiểu bản chất không?
Hỏi đáp về bài này
Chưa có câu hỏi
Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).
Đặt câu hỏi đầu tiên