Tạm "hạ cấp" với giả sử bạn lười nghĩ thực đơn tối, bèn "dõng dạc" hỏi một ứng dụng trí tuệ nhân tạo để xin công thức "nấu canh gì vừa ngon, vừa mát, vừa độc lạ". "Giáo sư AI" ngay lập tức hào hứng phán một câu xanh rờn: "Hãy thử kết hợp rau dền đỏ thanh mát cùng một múi sầu riêng béo ngậy để tạo ra vị ngọt bùi bùng nổ vị giác!". Thay vì dùng tư duy phản biện để nhận ra sự vô lý của món ăn, bạn cắm cổ làm theo vì tin tưởng tuyệt đối vào "siêu trí tuệ". Kết quả:..."ai cũng hiểu chỉ một người không hiểu"!!
Nếu bạn đã đi cùng DatVietLapTrinh đến bài này thì có lẽ bạn đã trải qua một hành trình khá dài.Từ những dòng code đầu tiên...
Đến:
- biến
- vòng lặp
- function
- file
- CSV
- Python
- pip
- Virtual Environment
- requirements.txt
- Web Scraping
- Automation
Và ở bài trước, chúng ta vừa nói về một câu hỏi rất "thời thượng":
AI có thay thế programmer không?
Còn hôm nay, thay vì ngồi tranh luận tiếp...
Chúng ta sé làm một việc thực tế hơn.
Mở trình duyệt.
Mở một IDE online.
Hỏi ChatGPT.
Lấy code.
Chạy.
Cho nó lỗi.
Sửa.
Chạy lại.
Và quan trọng nhất:
Hiểu mình vừa làm gì.
Đây mới là cách dùng AI để học lập trình "tương đối đúng" chứ không phải "nhắm mắt" tin tưởng "giáo sư AI"
ChatGPT không phải "máy bán code"
Có một cách dùng AI rất phổ biến:
Mình:
"Viết cho tôi chương trình Python đọc file CSV."
AI:
"Đây là code."
Mình:
Copy.
Paste.
Run.
Works.
Xong.Nghe rất sướng.
Nhưng có một vấn đề:
Bạn vừa hoàn thành một bài tập mà có thể chẳng học được gì. 😭
Lần sau gặp lỗi khác:
"AI ơi làm tiếp."
Rồi lại copy.
Rồi paste.
Rồi chạy.
Rồi lỗi.
Rồi hỏi tiếp.
Đến một ngày bạn có 10.000 dòng code nhưng không biết:
"Dòng này để làm gì?"
Đó không phải cách mình muốn bạn dùng AI.
AI nên giúp bạn học nhanh hơn, không phải giúp bạn khỏi học.
Vậy dùng ChatGPT thế nào cho hiệu quả?
Một cách đơn giản là hãy coi ChatGPT giống như một người đồng nghiệp ngồi cạnh bạn.
Bạn không nói với đồng nghiệp:
"Làm hết project cho tôi."
Rồi bỏ đi uống cà phê. 😂
Bạn thường sẽ nói:
"Tôi đang làm phần này."
"Tôi bị lỗi ở đây."
"Tôi thử cách này rồi."
"Tại sao nó không chạy?"
"Có cách nào đơn giản hơn không?"
"Giải thích đoạn này cho tôi."
Đó cũng là cách rất tốt để làm việc với AI.
Thử ngay một ví dụ
Chúng ta sẽ làm một chương trình cực kỳ đơn giản.
Bài toán:
Nhập một số nguyên
n, sau đó tính tổng từ1đếnn.
Ví dụ:
Input:
5
Output:
15Vì:
1 + 2 + 3 + 4 + 5 = 15Nếu bạn đã học Python thì bài này khá nhẹ.
Nhưng đây chính là điều hay.
Bài càng nhỏ, chúng ta càng dễ nhìn thấy quá trình AI hỗ trợ như thế nào.
Bước 1: Đừng hỏi AI quá mơ hồ
Bạn có thể hỏi:
Viết chương trình Python tính tổng từ 1 đến n.AI có thể đưa cho bạn:
n = int(input("Nhập n: "))
total = 0
for i in range(1, n + 1):
total += i
print("Tổng =", total)Nhìn khá dễ.
Nhưng đừng copy ngay rồi bỏ chạy.
Hãy đọc.
Bước 2: Hỏi AI giải thích
Bạn có thể hỏi tiếp:
Giải thích từng dòng code trên cho người mới học Python.
Đừng chỉ giải thích kết quả.
Hãy nói rõ vì sao range dùng n + 1.Đây là một câu hỏi tốt hơn rất nhiều so với:
Cho tôi code.Vì bây giờ AI không chỉ tạo code.
Nó đang giúp bạn đọc code.
Nhìn thử đoạn này
for i in range(1, n + 1):
total += iNếu n = 5, range(1, n + 1) tương đương:
1, 2, 3, 4, 5Chứ không phải:
1, 2, 3, 4Vì Python không lấy giá trị cuối của range().
Đây là một chi tiết nhỏ.
Nhưng nếu không hiểu nó...
Bạn sẽ nhìn code AI viết và kiểu:
"Sao tự nhiên cộng
n + 1?"
😅
Bước 3: Mang code ra chạy thật
Đây là phần mình rất thích.
Bạn không cần phải cài Python ngay trên máy chỉ để thử một đoạn code vài dòng.
OnlineGDB cung cấp môi trường IDE online cho phép viết, chạy và debug code trực tiếp trên trình duyệt; nền tảng này hỗ trợ nhiều ngôn ngữ, trong đó có Python, C/C++ và PHP.
Bạn có thể mở:
Sau đó chọn ngôn ngữ phù hợp bằng cách bấm vào select language góc trên bên phải
Ví dụ hôm nay là chọn:
Python 3
Dán code vào.
Bấm Run.
Nhập:
5Nếu mọi thứ ổn, bạn sẽ nhận:
Tổng = 15
Vậy là:
AI → code → IDE → chạy thật.
Không còn là lý thuyết nữa.
Và bây giờ...
Hãy cố tình làm cho nó lỗi.
😈
Đúng.
Cố tình làm lỗi.
Vì chúng ta đang học lập trình.
Mà lập trình không có lỗi thì hơi giống đi câu cá mà cá tự nhảy vào rổ. 😭
Bước 4: Tạo một lỗi
Ví dụ sửa:
n = int(input("Nhập n: "))thành:
n = int(input("Nhập n: "))
total = 0
for i in range(1, n):
total += i
print("Tổng =", total)Chạy với:
5Kết quả:
Tổng = 10Ủa?
Đáng lẽ phải là:
15AI có viết code sai không?
Không hẳn.
Chính chúng ta vừa sửa code thành sai. 😂
Đây mới là lúc dùng AI hay
Đừng lập tức hỏi:
Sửa code cho tôi.Hãy thử hỏi:
Tôi muốn tính tổng từ 1 đến n.
Với n = 5, tôi mong đợi kết quả là 15
nhưng chương trình trả về 10.
Đây là code:
[code]
Hãy giúp tôi tìm nguyên nhân.
Đừng sửa ngay.
Hãy giải thích lỗi nằm ở đâu trước.Đây là một prompt rất đáng học.
Tại sao?
Vì bạn đang yêu cầu AI:
phân tích → giải thích → rồi mới sửa.
Đây là "AI + Debug" ❤️
AI có thể nhìn đoạn:
range(1, n)và chỉ ra:
range() không bao gồm giá trị cuối.
Nếu n = 5, nó tạo:
1, 2, 3, 4nên tổng là:
10Muốn có 5, phải dùng:
range(1, n + 1)Đây là một ví dụ rất nhỏ.
Nhưng tư duy này có thể áp dụng cho rất nhiều lỗi khác.
Một nguyên tắc rất hay
Khi gặp lỗi, đừng chỉ hỏi:
"Sửa giúp tôi."
Hãy thử:
"Giải thích tại sao nó sai."
Sau đó:
"Cho tôi cách sửa."
Sau đó:
"Giải thích vì sao cách sửa này đúng."
Ba câu hỏi.
Ba mức hiểu.
Sai ở đâu?
↓
Sửa thế nào?
↓
Tại sao sửa như vậy?Đây mới là lúc AI trở thành trợ lý học lập trình.
Thử với C cũng vui không kém
Bây giờ chúng ta đổi ngôn ngữ.
Cùng bài toán:
Tính tổng từ 1 đến n.
Bạn có thể hỏi ChatGPT:
Viết chương trình C tính tổng từ 1 đến n.
Yêu cầu:
- dùng scanf
- dùng vòng lặp for
- giải thích từng dòng cho người mới
- không dùng công thức toán họcAI có thể tạo:
#include <stdio.h>
int main() {
int n;
int total = 0;
printf("Nhap n: ");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
total += i;
}
printf("Tong = %d\n", total);
return 0;
}Bây giờ mang nó sang OnlineGDB.
Chọn:
C
Paste.
Run.
Nhập:
5Kết quả:
Tong = 15OnlineGDB hiện cung cấp cả khu vực input, stdout, stderr và chế độ debug; với C/C++ còn có breakpoint, call stack và local variables.
Vậy là bạn vừa có một phòng thí nghiệm nhỏ ngay trong trình duyệt.
Không cần setup cả thế giới chỉ để thử 15 dòng code.
Và đây là chỗ rất đáng chú ý
Hãy hỏi ChatGPT:
Trong đoạn code C trên,
tại sao scanf lại có &n?
Nếu bỏ & thì chuyện gì xảy ra?
Giải thích như cho người mới học C.Bây giờ bạn không còn hỏi:
"Cho tôi code."
Bạn đang hỏi:
"Tại sao code phải viết như vậy?"
Đó là một cấp độ học khác.
Còn PHP thì sao?
Cũng được.
OnlineGDB hiện liệt kê PHP trong các ngôn ngữ được hỗ trợ trên nền tảng.
Ví dụ:
<?php
$name = "DatVietLapTrinh";
echo "Xin chao " . $name;Bạn có thể hỏi ChatGPT:
Giải thích đoạn PHP này cho người mới.
Tại sao PHP dùng dấu chấm để nối chuỗi?
Cho tôi thêm 3 ví dụ đơn giản.Rồi chạy thử.
Sau đó cố tình sửa:
echo "Xin chao " + $name;Chạy.
Lỗi.
😂
Đừng sợ.
Đây chính là bài học.
Hỏi AI:
Tôi đang học PHP.
Đoạn này bị lỗi:
echo "Xin chao " + $name;
Tại sao?
Hãy giải thích sự khác nhau giữa
. và + trong trường hợp này.Bạn sẽ bắt đầu thấy:
AI không chỉ viết code.
Nó có thể giúp bạn biến một lỗi thành một bài học.
Đừng hỏi AI kiểu "làm hết"
Đây là một số cách hỏi khác nhau.
Cách 1: Hỏi lấy code
Viết chương trình đọc CSV bằng Python.Không sai.
Nhưng khá chung.
Cách 2: Cho context
Tôi có file customers.csv gồm:
name,email,city
Tôi muốn đọc file bằng Python,
tìm tất cả khách hàng ở Da Nang
và in tên + email ra màn hình.
Tôi đang dùng Python 3.
Hãy dùng csv.DictReader.Tốt hơn.
Cách 3: Yêu cầu giải thích
Viết code và giải thích từng phần.
Tôi là người mới học Python.Tốt hơn nữa.
Cách 4: Học bằng debug
Đây là code tôi đang có.
Đây là lỗi tôi nhận được.
Hãy:
1. xác định nguyên nhân
2. giải thích nguyên nhân
3. chỉ ra dòng gây vấn đề
4. đề xuất cách sửa
5. cho tôi phiên bản đã sửaĐây là cách mình thích nhất.
Một công thức prompt rất dễ nhớ
Bạn có thể dùng:
BỐI CẢNH
↓
MỤC TIÊU
↓
CODE
↓
LỖI / KẾT QUẢ THỰC TẾ
↓
KẾT QUẢ MONG MUỐN
↓
YÊU CẦU AI GIẢI THÍCHVí dụ:
Tôi đang học Python.
Tôi có chương trình tính tổng từ 1 đến n.
Code:
[code]
Khi nhập n = 5,
chương trình trả về 10.
Tôi mong đợi 15.
Hãy:
- xác định nguyên nhân
- giải thích dễ hiểu
- chỉ ra dòng sai
- đưa code sửa
- giải thích tại sao code sửa đúngAI lúc này có rất nhiều thông tin để làm việc.
Đừng giấu lỗi của bạn
Đây là một lỗi khá phổ biến khi hỏi AI.
Người mới thấy:
Traceback...
ValueError...
TypeError...rồi chỉ hỏi:
"Python bị lỗi, sửa giúp."
AI:
"Bạn vui lòng cung cấp thêm thông tin..."
😂
Thay vì vậy, hãy copy error message thật.
Ví dụ:
ValueError: invalid literal for int() with base 10rồi gửi cả đoạn code liên quan.
Lỗi càng cụ thể...
AI càng có cơ hội giúp bạn tốt hơn.
Và quan trọng hơn:
Bạn cũng học được cách đọc error message.
AI không nhìn thấy máy tính của bạn như bạn nghĩ
Đây cũng là điều người mới cần nhớ.
Bạn nói:
"Code của tôi không chạy."
AI không tự nhiên biết:
- Python phiên bản nào
- đường dẫn nào
- file có tồn tại không
- database thật đang chứa gì
- server đang cấu hình thế nào
- biến môi trường ra sao
- quyền file thế nào
- code thực tế có giống đoạn bạn gửi không
Vì vậy, hãy cung cấp context.
Ví dụ:
Python 3.12
Windows 11
VS Code
Lỗi:
FileNotFoundError
Code:
...
File nằm ở:
C:\Users\Me\Documents\project\data.csvCâu trả lời thường sẽ hữu ích hơn rất nhiều.
Một nguyên tắc quan trọng: AI không phải máy đo sự thật
AI có thể trả lời rất tự tin.
Nhưng:
Tự tin không đồng nghĩa với đúng.
Đặc biệt khi bạn hỏi về:
- thư viện
- phiên bản
- API
- framework
- cấu hình
- lỗi phức tạp
- code lớn
- bảo mật
Hãy kiểm tra.
Chạy code.
Đọc documentation khi cần.
Test.
So sánh kết quả.
Và nếu AI nói:
"Chắc chắn..."
thì bạn có thể bình tĩnh nghĩ:
"Ừ... để tôi chạy thử đã." 😏
Một bài tập rất vui
Bạn có thể thử ngay.
Bài tập: AI có sửa được bug không?
Đưa cho ChatGPT đoạn Python này:
numbers = [10, 20, 30, 40, 50]
total = 0
for i in range(len(numbers) + 1):
total += numbers[i]
print(total)Yêu cầu:
Tìm lỗi trong đoạn code trên.
Đừng sửa ngay.
Hãy:
1. giải thích lỗi
2. cho biết chương trình sẽ gặp lỗi gì
3. giải thích vì sao
4. sau đó mới đưa code sửaSau đó đem code vào IDE online.
Chạy.
Quan sát.
Sửa.
Chạy lại.
Đây chính là một mini workflow:
AI
↓
Code
↓
Run
↓
Error
↓
Debug
↓
AI
↓
Fix
↓
Run againĐây mới là thứ chúng ta muốn học.
Và hãy thử một trò nữa 😈
Sau khi AI sửa xong, hỏi:
Có cách nào viết đoạn code này
đơn giản hơn không?
Có cách nào Pythonic hơn không?
Hãy đưa ra 2 cách,
nhưng giải thích ưu nhược điểm của từng cách.Bây giờ AI không chỉ là người sửa bài.
Nó trở thành người để bạn so sánh cách giải quyết vấn đề.
Nhưng đừng để AI làm mất khả năng tự suy nghĩ
Một thói quen rất tốt:
Trước khi hỏi AI, hãy thử đoán.
Ví dụ:
Code lỗi.
Bạn nghĩ:
Có thể biến sai.
Có thể file sai.
Có thể index sai.
Có thể kiểu dữ liệu sai.Sau đó mới hỏi AI.
Nếu AI nói:
"Lỗi do index."
Bạn có thể kiểm tra.
Nếu đúng:
"À!"
Bạn vừa học thêm một thứ.
Nếu AI nói khác:
"Khoan, để tôi kiểm tra."
Bạn cũng học thêm.
Một workflow mình rất khuyến khích
1. Tự đọc đề
↓
2. Tự nghĩ cách làm
↓
3. Tự code một chút nếu có thể
↓
4. Gặp khó → hỏi AI
↓
5. Đọc câu trả lời
↓
6. Chạy thử
↓
7. Debug
↓
8. Kiểm tra kết quả
↓
9. Hiểu code
↓
10. Tự viết lại một phầnĐừng bỏ qua bước số 9.
Hiểu code.
Nó là phần giúp bạn trở thành programmer.
"Nhưng nếu AI viết nhanh hơn tôi rất nhiều thì sao?"
Thì tốt.
Thật.
Bạn không cần buồn vì AI viết code nhanh.
Nếu AI có thể giúp bạn làm một phần việc trong 10 phút thay vì 2 tiếng...
hãy tận dụng nó.
Giống như Python giúp bạn đổi tên 500 file thay vì ngồi F2 từng file trong bài trước.
AI cũng là một dạng đòn bẩy.
Vấn đề không phải:
"AI làm nhanh hơn tôi."
Mà là:
"Tôi có đủ hiểu để sử dụng thứ AI làm ra không?"
AI + IDE online = một phòng thí nghiệm rất vui
Đây là điều mình đặc biệt muốn người mới thử.
Bạn không nhất thiết phải chờ đến khi:
- cài Python
- cài compiler C
- cấu hình PHP
- cài extension
- sửa PATH
- chỉnh environment
- rồi mới học.
Với những đoạn code nhỏ, IDE online có thể giúp bạn thử nghiệm nhanh ngay trong trình duyệt.
OnlineGDB hiện cho phép code, compile/run và debug trên nền tảng web; với C/C++ có các công cụ debug như breakpoint, call stack và local variables.
Ví dụ:
ChatGPT
↓
"Viết cho tôi ví dụ C"
↓
Copy
↓
OnlineGDB
↓
Run
↓
Lỗi
↓
Đọc lỗi
↓
Hỏi ChatGPT
↓
Sửa
↓
RunĐây là một vòng lặp học rất tự nhiên.
Nhưng nhớ một chuyện
IDE online rất tiện để:
- học
- thử code
- test đoạn nhỏ
- debug cơ bản
- chia sẻ ví dụ
- kiểm tra ý tưởng
Nó không có nghĩa bạn có thể bỏ qua môi trường phát triển thật.
Khi project lớn lên, bạn vẫn sẽ cần:
- IDE/editor
- Git
- môi trường Python
- package
- database
- server
- environment variables
- testing
- deployment
IDE online là sân tập.
Không nhất thiết là ngôi nhà cuối cùng.
Một lưu ý nhỏ với code thật
Đừng dán bừa vào AI:
password
API key
secret key
private key
database password
token
thông tin khách hàng
dữ liệu nội bộVí dụ đừng gửi:
DB_PASSWORD = "123456789"rồi hỏi:
"Tại sao database không kết nối?" 😭
Hãy thay bằng:
DB_PASSWORD = "YOUR_PASSWORD"và mô tả vấn đề.
Code có thể chia sẻ. Bí mật thì không nên.
Chua thêm 😭
Có một kiểu programmer thời AI rất dễ xuất hiện:
AI:
"Đây là code."
Programmer:
"OK."
AI:
"Đây là cách sửa."
Programmer:
"OK."
AI:
"Đây là architecture."
Programmer:
"OK."
AI:
"Đây là database schema."
Programmer:
"OK."
AI:
"Bạn muốn tôi deploy luôn không?"
Programmer:
"OK."
Server:
💀😂
Đừng cố trở thành kiểu người đó.
Hãy là người hỏi:
"Khoan."
"Tại sao?"
"Đoạn này làm gì?"
"Nếu input rỗng thì sao?"
"Nếu user không có quyền thì sao?"
"Nếu database chết thì sao?"
"Nếu có 1 triệu record thì sao?"
Đó là tư duy programmer.
Checklist: Dùng ChatGPT để code hiệu quả
Mô tả rõ bài toán
Cho AI biết ngôn ngữ và phiên bản nếu cần
Cung cấp context
Gửi error message thật
Gửi đoạn code liên quan
Nói rõ kết quả mong muốn
Yêu cầu AI giải thích trước khi sửa
Chạy code thật
Tự kiểm tra kết quả
Không copy mù quáng
Không đưa password/API key/secret vào prompt
Hỏi "tại sao?" thay vì chỉ hỏi "sửa giúp"
Thử tự đoán nguyên nhân trước khi hỏi
Dùng AI để học, không chỉ để lấy đáp án
FAQ nhanh
Tôi không giỏi tiếng Anh thì có dùng ChatGPT để code được không?
Có.
Bạn có thể mô tả bằng tiếng Việt.
Ví dụ:
Tôi là người mới học Python.
Hãy giải thích thật đơn giản.Bạn thậm chí có thể yêu cầu AI giữ nguyên thuật ngữ code tiếng Anh nhưng giải thích bằng tiếng Việt.
Có nên yêu cầu AI viết toàn bộ project không?
Có thể dùng AI hỗ trợ project lớn, nhưng nếu bạn đang học thì nên chia project thành từng phần nhỏ.
Đừng biến:
"Viết cho tôi cả website."thành phương pháp học duy nhất.
Hãy chia:
database
↓
login
↓
CRUD
↓
API
↓
authentication
↓
frontendrồi hiểu từng phần.
AI viết code sai thì sao?
Debug.
Đó chính là lý do chúng ta chạy code thật.
AI không thay thế bước kiểm tra.
Có cần biết C/Python/PHP nếu AI đã viết được không?
Nếu mục tiêu của bạn là hiểu và xây dựng phần mềm, kiến thức nền tảng của ngôn ngữ vẫn rất hữu ích.
AI có thể giúp bạn viết nhanh hơn.
Nhưng bạn vẫn cần đọc và đánh giá code.
Có cần cài Python để học không?
Không nhất thiết cho những ví dụ nhỏ.
Bạn có thể dùng IDE online để thử nghiệm nhanh.
Khi project lớn hơn, hãy học cách thiết lập môi trường thật.
Bạn có thể cũng đang gặp...
- "Pip không hoạt động"
- "Virtual Environment là gì?"
- "requirements.txt là gì?"
- "Đọc CSV bằng Python"
- "Đổi tên file hàng loạt bằng Python"
- "Đổi tên ảnh bằng Python"
- "Web Scraping là gì?"
- "Python và Automation"
Chúng ta hãy nhìn lại một chút...
Bạn có thấy không?
Từ đầu phần Python đến đây, chúng ta không cố biến thành người "hoàn hảo" thuộc lòng mọi cú pháp.
Chúng ta đi theo một con đường khác:
Code
↓
Lỗi
↓
Debug
↓
Hiểu
↓
Automation
↓
AI