AI giúp code nhanh hơn, nhưng liệu có trade-off không? Nghiên cứu mới nhất từ Anthropic (công ty đứng sau Claude) đưa ra những phát hiện đáng suy ngẫm về cách AI ảnh hưởng đến kỹ năng lập trình của developers.
Câu hỏi nghiên cứu
Anthropic đặt ra 2 câu hỏi quan trọng:
- Khi dùng AI code, người dùng có học được kỹ năng mới không?
- Hay AI làm hết khiến người dùng "offload" não và không phát triển?
Đây là câu hỏi quan trọng vì: Dù AI viết code, con người vẫn cần kỹ năng để review, debug, và giám sát AI.
Thiết kế thí nghiệm
Đối tượng nghiên cứu
- 52 software engineers (phần lớn junior)
- Đã dùng Python ít nhất 1 năm
- Đã quen với AI coding tools
- Chưa biết thư viện Trio (thư viện async Python)
Cách thực hiện
- Chia ngẫu nhiên thành 2 nhóm: có AI và không có AI
- Task: Học và code 2 features dùng Trio (async programming)
- Được cung cấp: mô tả bài toán, starter code, giải thích concepts
- Nhóm AI có sidebar assistant có thể hỏi bất cứ lúc nào
- Sau khi code xong: làm quiz để test hiểu biết
Quiz đánh giá 4 loại kỹ năng
| Kỹ năng | Mô tả |
|---|---|
| Debugging | Tìm và hiểu lỗi trong code |
| Code reading | Đọc hiểu code làm gì |
| Code writing | Viết code đúng cách |
| Conceptual | Hiểu nguyên lý đằng sau tools/libraries |
Họ focus vào debugging, code reading, conceptual vì đây là kỹ năng cần thiết để giám sát AI-generated code.
Kết quả gây sốc
Điểm quiz
| Nhóm | Điểm trung bình |
|---|---|
| Không dùng AI | 67% |
| Dùng AI | 50% |
| Chênh lệch | 17% (tương đương ~2 letter grades) |
Kết quả có ý nghĩa thống kê (p=0.01).
Thời gian hoàn thành
- Nhóm AI nhanh hơn khoảng 2 phút
- NHƯNG không đủ ý nghĩa thống kê (not statistically significant)
Kỹ năng bị ảnh hưởng nặng nhất
Debugging - khả năng nhận ra code sai và hiểu tại sao sai.
Điều này đáng lo vì debugging chính là kỹ năng cần thiết nhất để review AI-generated code.
Phát hiện thú vị: Thời gian dùng AI
Một số người dùng tới 11 phút (30% tổng thời gian) chỉ để soạn queries cho AI.
Điều này giải thích tại sao AI không giúp nhanh hơn đáng kể - thời gian tiết kiệm từ việc không phải tự code bị bù lại bởi thời gian tương tác với AI.
6 Patterns sử dụng AI
Anthropic phân tích video recordings và phát hiện 6 patterns khác nhau trong cách developers sử dụng AI.
3 Patterns điểm THẤP (dưới 40%)
1. AI Delegation (Giao hết cho AI)
- Hành vi: Hoàn toàn dựa vào AI viết code
- Kết quả: Nhanh nhất, ít lỗi nhất, nhưng không học được gì
- Số người: 4
2. Progressive AI Reliance (Dần phụ thuộc)
- Hành vi: Ban đầu tự làm, hỏi 1-2 câu, rồi dần giao hết cho AI
- Kết quả: Điểm thấp vì không master concepts ở task thứ 2
- Số người: 4
3. Iterative AI Debugging (AI debug hộ)
- Hành vi: Dùng AI để debug/verify code thay vì tự tìm hiểu
- Kết quả: Hỏi nhiều câu nhưng không hiểu, chậm và điểm thấp
- Số người: 4
3 Patterns điểm CAO (trên 65%)
4. Generation-then-Comprehension (Gen rồi hỏi hiểu)
- Hành vi: Để AI gen code, copy vào, rồi hỏi follow-up để hiểu
- Kết quả: Không nhanh nhưng hiểu tốt
- Số người: 2
- Khác biệt với AI Delegation: Có bước hỏi lại để check understanding
5. Hybrid Code-Explanation (Vừa code vừa giải thích)
- Hành vi: Yêu cầu AI vừa viết code VỪA giải thích code đó
- Kết quả: Tốn thời gian đọc explanations nhưng hiểu tốt hơn
- Số người: 3
6. Conceptual Inquiry (Chỉ hỏi concepts)
- Hành vi: Chỉ hỏi AI về concepts, tự viết code và tự fix lỗi
- Kết quả: Gặp nhiều lỗi nhưng tự resolve được, nhanh thứ 2
- Số người: 7
Insights quan trọng
Sự khác biệt không nằm ở VIỆC dùng AI, mà ở CÁCH dùng
Người học được nhiều nhất dùng AI để xây dựng hiểu biết, không phải để bỏ qua quá trình tư duy.
"Vật lộn" là cần thiết để học
"Cognitive effort—and even getting painfully stuck—is likely important for fostering mastery."
Bị stuck, gặp lỗi, phải tự debug → Đây là cách não học. AI làm hết = bỏ qua quá trình này.
Giống như học bơi với phao - khi tháo phao ra vẫn chìm.
Nhóm không dùng AI gặp nhiều lỗi hơn
Nhưng việc tự fix những lỗi đó giúp họ hiểu concepts tốt hơn, dẫn đến điểm debugging cao hơn.
Implications - Ứng dụng thực tế
Cho managers/companies
- Không nên deploy AI tools aggressive mà không cân nhắc
- Cần systems/design đảm bảo engineers vẫn học khi làm việc
- Junior engineers cần kỹ năng để validate AI-written code
Cho cá nhân (developers)
- Dùng AI có chủ đích, không offload hoàn toàn
- Khi dùng AI: hỏi follow-up, yêu cầu giải thích, hiểu trước khi accept
- "Bị stuck" đôi khi là cần thiết để phát triển
Cho AI product designers
- AI tốt phải giúp user vừa efficient VỪA học được
- Claude đã có "Learning mode", ChatGPT có "Study mode"
- Design AI để facilitate learning, không chỉ replace work
Caveats - Hạn chế của nghiên cứu
| Hạn chế | Chi tiết |
|---|---|
| Sample nhỏ | Chỉ 52 người |
| Short-term | Chỉ test ngay sau task, không biết long-term thế nào |
| Một task cụ thể | Chỉ test học thư viện mới, không biết với tasks khác |
| Không phải agentic | Setup này khác với Claude Code - impact có thể mạnh hơn |
Kết luận
"AI assistance should enable humans to work more efficiently AND develop new skills at the same time."
AI tốt không phải chọn 1 trong 2 (nhanh vs học). AI tốt phải làm được CẢ HAI.
Productivity matters, nhưng long-term skill development cũng quan trọng không kém.
Checklist: Cách dùng AI đúng cách
Khi dùng AI coding:
- Đừng accept code mù quáng - Luôn đọc hiểu trước khi dùng
- Hỏi "tại sao" - Yêu cầu AI giải thích logic, không chỉ output
- Tự debug trước - Thử tự tìm lỗi trước khi hỏi AI
- Dùng AI cho boilerplate - Code repetitive thì để AI, logic quan trọng tự làm
- Review patterns - Sau mỗi task, review lại mình đã học được gì
Checklist trước khi accept AI code:
- Tôi hiểu code này làm gì?
- Tôi hiểu TẠI SAO code này hoạt động?
- Tôi có thể tự viết code tương tự lần sau không?
- Nếu code này lỗi, tôi có biết cách debug không?
Tài liệu tham khảo
Bài viết được tổng hợp và biên soạn bởi OpenCode Vietnam từ nghiên cứu của Anthropic.