- Anthropic đã công bố một nghiên cứu kiểm chứng bằng thực nghiệm về việc sử dụng trợ lý lập trình AI ảnh hưởng thế nào đến quá trình học tập và mức độ thành thạo của lập trình viên
- Kết quả thử nghiệm đối chứng ngẫu nhiên cho thấy nhóm dùng AI có mức hiểu khái niệm và năng lực gỡ lỗi thấp hơn trung bình 17%, trong khi mức cải thiện tốc độ không có ý nghĩa thống kê
- Tuy nhiên, những người tham gia sử dụng AI không chỉ để tạo mã mà còn để hỏi về khái niệm và yêu cầu giải thích lại đạt điểm cao
- Nghiên cứu cho thấy cách phụ thuộc vào AI quyết định kết quả học tập, và tự động hóa đơn thuần có thể cản trở sự phát triển kỹ năng
- Doanh nghiệp và lập trình viên cần một chiến lược áp dụng AI có cân nhắc đến sự cân bằng giữa tăng năng suất và tích lũy kỹ năng dài hạn
Tổng quan nghiên cứu
- Đây là một thử nghiệm đối chứng ngẫu nhiên được thực hiện để phân tích tác động của trợ lý AI đến việc học lập trình và mức độ thành thạo kỹ năng
- Người tham gia là 52 lập trình viên junior đã dùng Python hơn 1 năm và chưa quen với thư viện Trio
- Thí nghiệm gồm ba giai đoạn: khởi động, bài tập lập trình chính (triển khai 2 chức năng dựa trên Trio) và bài kiểm tra
- Những người tham gia làm việc trong môi trường lập trình trực tuyến có tích hợp trợ lý AI, công cụ này hỗ trợ truy cập mã và tạo mã đáp án
- Các hạng mục đánh giá gồm bốn phần: gỡ lỗi, đọc mã, viết mã, hiểu khái niệm, trong đó đặc biệt tập trung vào gỡ lỗi và hiểu khái niệm
Kết quả chính
- Nhóm AI có điểm bài kiểm tra trung bình 50%, nhóm không AI là 67%, chênh lệch khoảng hai bậc điểm (Cohen’s d=0.738, p=0.01)
- Về tốc độ, nhóm AI nhanh hơn trung bình 2 phút nhưng không có ý nghĩa thống kê
- Chênh lệch điểm lớn nhất xuất hiện ở các câu hỏi gỡ lỗi, cho thấy việc dùng AI có thể liên quan đến sự suy giảm năng lực hiểu lỗi
- Hiệu quả học tập thay đổi theo cách sử dụng AI
- Chỉ tạo mã đơn thuần hoặc giao việc gỡ lỗi cho AI dẫn đến điểm thấp
- Ngược lại, những người vừa đặt câu hỏi về khái niệm vừa yêu cầu giải thích mã lại đạt điểm cao
Phân tích theo kiểu tương tác với AI
- Mẫu hình điểm thấp (trung bình dưới 40%)
- Kiểu ủy thác cho AI (n=4): giao toàn bộ việc viết mã cho AI nên hoàn thành nhanh nhất nhưng thiếu hiểu biết về khái niệm
- Kiểu phụ thuộc tăng dần (n=4): ban đầu tự thử làm nhưng dần dần phụ thuộc hoàn toàn vào AI, thiếu nắm vững khái niệm ở bài thứ hai
- Kiểu gỡ lỗi lặp lại (n=4): giao AI xử lý lỗi nên vừa chậm vừa điểm thấp
- Mẫu hình điểm cao (trung bình từ 65% trở lên)
- Kiểu tạo rồi mới hiểu (n=2): sau khi tạo mã, tiếp tục yêu cầu AI giải thích thêm nên mức độ hiểu cao
- Kiểu kết hợp mã và giải thích (n=3): yêu cầu cả mã lẫn giải thích, tốc độ chậm hơn nhưng hiểu tốt hơn
- Kiểu khám phá khái niệm (n=7): làm việc xoay quanh câu hỏi khái niệm, dù mắc nhiều lỗi nhưng tự giải quyết độc lập nên hoàn thành nhanh
Diễn giải và hàm ý
- Việc đưa AI vào gây ra bài toán cân bằng giữa năng suất và học tập
- Trong môi trường coi trọng kết quả nhanh, có nguy cơ cản trở sự phát triển kỹ năng của lập trình viên junior
- Thiết kế cách sử dụng AI là biến số cốt lõi, cần những tương tác khuyến khích học tập thay vì chỉ tự động hóa đơn thuần
- Doanh nghiệp cần chủ động quản lý cách triển khai công cụ AI và thiết kế học tập, đồng thời
duy trì năng lực để kỹ sư kiểm chứng mã do AI tạo ra
Kết luận và các bài toán tiếp theo
- Nghiên cứu cho thấy AI có thể cải thiện năng suất với kỹ năng đã thành thạo, nhưng lại là yếu tố cản trở khi học kỹ năng mới
- Do quy mô mẫu nhỏ và chỉ đánh giá trong ngắn hạn, mối liên hệ với tăng trưởng kỹ năng dài hạn vẫn chưa được xác nhận
- Các hướng nghiên cứu tiếp theo gồm
- Ảnh hưởng ở các lĩnh vực công việc ngoài lập trình
- Liệu hiệu quả học tập dài hạn có được duy trì hay không
- Sự khác biệt giữa cố vấn con người và hỗ trợ AI
- Ngay cả trong môi trường có AI hỗ trợ, nỗ lực nhận thức và quá trình thử-sai vẫn là yếu tố thiết yếu để hình thành năng lực, và
AI cần được thiết kế để đồng thời hỗ trợ cả hiệu quả lẫn học tập
1 bình luận
Ý kiến trên Hacker News
Thật ấn tượng khi chính Anthropic tự thiết kế và công bố nghiên cứu như thế này
Tôi nghĩ đây là điều khó thấy ở các viện nghiên cứu khác
Điều thú vị là nhóm có hỗ trợ AI chỉ nhanh hơn một chút, nhưng không có ý nghĩa thống kê
Rốt cuộc, có vẻ AI giúp tăng năng suất, nhưng thực tế là đánh đổi bằng sự suy giảm khả năng học hỏi
Cần giữ thái độ hoài nghi với các tuyên bố trong đó cho đến khi có bên thứ ba lặp lại và kiểm chứng
Tôi xem nó cũng chẳng khác gì “nghiên cứu sức khỏe” của các công ty thuốc lá
Tôi lo rằng sau này junior sẽ lớn lên thành những lập trình viên phụ thuộc vào AI và mất đi khả năng tự giải quyết vấn đề
Tôi đoán người dùng AI có thể cải thiện ít hơn về kỹ năng code, nhưng lại có khả năng đặc tả yêu cầu tốt hơn
Vai trò của lập trình viên mới vào nghề đang chuyển sang hướng tập trung vào việc định nghĩa yêu cầu thật rõ ràng
Và có lẽ chiến lược đó sẽ hiệu quả
Đa số mọi người chọn con đường ít сопротивления nhất, nhưng cũng có người nhờ AI mà học nhanh hơn
Tức là không thể áp cùng một kết luận cho tất cả người dùng
Tôi lo chuyện gì sẽ xảy ra nếu những công cụ này đột nhiên không dùng được nữa
Nếu mất Internet hoặc hết credit thì công việc kinh doanh và kế sinh nhai có thể bị tê liệt
Cuối cùng lập trình viên có thể bị hạ xuống thành những người gác cổng đơn thuần, và đến lúc hệ thống gặp sự cố thì chẳng làm được gì
Tôi đã làm việc ở nhiều nơi trên thế giới, nhưng thời gian mất vì sự cố kết nối còn chưa đến một ngày
Nếu Anthropic sập thì dùng Gemini, nếu hết credit thì dùng credit miễn phí thay thế
Giờ ngay cả model chạy cục bộ cũng đã đủ dùng
Cuối cùng thì con người hiện đại ai cũng đang phụ thuộc vào dịch vụ trực tuyến
Nếu không thích rủi ro kiểu này thì phải bỏ tiền cho phương án thay thế kém hiệu quả nhưng ổn định hơn
Nếu chuyện đó xảy ra, tôi nghĩ tốt hơn là làm theo quy trình ứng phó khẩn cấp thay vì quay lại cách làm ngày xưa
Hồi trước phải tự build và upload qua ISDN, nhưng giờ CI/CD đã thay thế vai trò đó
Hỏng thì sửa thôi, triển khai thủ công còn dễ gây ra vấn đề lớn hơn
Hiệu ứng này đặc biệt rõ khi học thư viện mới
Tôi từng làm việc hiệu quả trên các chuyến bay dài mà không cần Internet
Con người vốn là loài càng ở trong môi trường tệ thì lại càng thích nghi tốt hơn
Lập trình viên senior vẫn có lợi thế ở năng lực hiểu biết nền tảng
Cũng như thế hệ trước từng hiểu assembly và phần cứng, thế hệ hiện nay học cách làm việc với AI
Điều thật sự cần cuối cùng vẫn là năng lực học tập phù hợp với hoàn cảnh
Tôi cũng đã làm việc hơn 20 năm và phần lớn kiến thức đã quên mất, nhưng đó không phải vì AI
Code tệ và vấn đề cấu trúc đã tồn tại từ trước cả thời LLM
Theo nghiên cứu, mức sụt giảm lớn nhất xuất hiện ở khả năng giải quyết vấn đề
Junior hiện nay đang mất đi cơ hội tự mình debug
Tôi từng làm vai trò ‘người debug cuối cùng’ trong đội và thậm chí đã từng bắt được cả lỗi compiler
Giờ tôi dùng Claude để giao bớt các công việc lặp lại, rồi chỉ đào sâu những phần cần học một cách chiến lược
Nhờ vậy hiệu quả học tập cao hơn
Không học thì cũng không thiệt, nhưng học thì chẳng có gì xấu
Cuối cùng, lập trình viên là con người có tư duy logic vẫn vượt trội hơn LLM
Không nhất thiết phải tự viết, nhưng nên hiểu được nó
Những ‘model kém thông minh hơn’ ngày trước (GPT‑4 v.v.) chỉ giúp được khoảng 90%, nên phần còn lại phải tự giải quyết
Trong quá trình đó sẽ có trải nghiệm học sâu
Model bây giờ quá hoàn thiện, thành ra lại ít có cơ hội tự suy nghĩ hơn
Có lẽ cách cộng tác với AI trong editor sẽ tốt hơn so với CLI
Cuối cùng những lập trình viên đang trong quá trình học là người chịu thiệt nhiều nhất
Một văn hóa phụ thuộc vào LLM đang hình thành ở mọi vị trí công việc
Việc thiết kế cấu trúc tổng thể vẫn là phần của con người
Tôi dùng LLM như công cụ học tập, và khi thiết kế thì yêu cầu ví dụ cùng sơ đồ theo kiểu hội thoại để trực quan hóa
Ví dụ grok 4.1 fast rẻ hơn 10 lần mà còn nhỉnh hơn một chút
Nếu model hoạt động quá tốt thì tư duy của con người có thể bị chậm đi
Nhưng trong cạnh tranh, người học được kỹ năng hiệu quả cuối cùng sẽ thắng
Tuy vậy AI thường chỉ cho ra kết quả bị overfit nên rất nguy hiểm
Hiện vẫn chưa có nhiều cách để giải quyết vấn đề này
Cuối cùng con người vẫn phải tự kiểm chứng và xây dựng mô hình học tập của riêng mình
Nó rất tuyệt cho dự án cá nhân, nhưng với codebase lớn thì vẫn có giới hạn
Bản chất của nghề lập trình là học liên tục
Tôi đã làm nghề 25 năm nhưng vẫn học điều mới mỗi ngày
Vấn đề của việc thuê consultant là chỉ còn lại code, còn tri thức thì nằm ở bên ngoài
Cuối cùng, lập trình chính là học
Nhiều khi chỉ là biến đổi các giải pháp đã có sẵn để xử lý vấn đề
Đôi lúc học quá nhiều lại còn làm tăng độ phức tạp
Theo kết quả nghiên cứu, việc dùng AI gây suy giảm khả năng hiểu và debug trong khi mức cải thiện hiệu suất lại rất nhỏ
Xem liên kết gốc
Nhóm AI đạt trung bình 50 điểm, còn nhóm code thủ công đạt 67 điểm
Nghiên cứu này rất thú vị
Nó khiến tôi nghĩ rằng có khi chúng ta đang nhầm lẫn sự tiện lợi với năng lực
Việc có những nghiên cứu như thế này là điều tốt
Giống như học ngôn ngữ, nếu không tự mình dùng trực tiếp thì kỹ năng sẽ không thể duy trì
Khi ngừng sử dụng rồi dần dần thoái hóa là hiện tượng tự nhiên
Tôi đánh giá cao sự minh bạch và cách tiếp cận khoa học của Anthropic
Bản thân tôi cũng đang phát triển nhanh hơn nhờ giao việc phát triển thực tế cho AI và tập trung vào học khái niệm
Tiêu đề bài viết dễ gây hiểu nhầm
Nghiên cứu không bàn về việc tăng năng suất của lập trình viên mới, mà nói về tác động lên quá trình học tập
Xã hội vận hành bằng sự thành thạo mang tính chức năng hơn là hiểu biết hoàn toàn
Tôi cũng từng duy trì một thư viện regex chỉ được xác minh bằng hàng trăm test case
Dù không hiểu hoàn hảo phần triển khai, tôi vẫn tạo được niềm tin nhờ độ chính xác dựa trên kiểm thử
AI mang lại cải thiện năng suất cho người mới bắt đầu, nhưng có thể cản trở việc tiếp thu kỹ năng
Người dùng theo kiểu giao phó hoàn toàn sẽ có chút hiệu quả, nhưng học được ít hơn
Ngược lại, nếu duy trì mẫu hình tham gia nhận thức, hiệu quả học tập có thể được giữ lại
Nói cách khác, năng suất từ AI không phải là đường tắt để thành thạo
Dù đã làm 25 năm, tôi vẫn học mỗi ngày