Một ảnh meme đang được chia sẻ mạnh trong cộng đồng r/vibecoding nêu ra một câu hỏi không mới nhưng ngày càng cấp bách: nếu AI có thể code rất nhanh, vì sao kỹ năng lập trình thực thụ vẫn chưa thể bỏ qua?
Câu chữ của bài gốc khá ngắn, nhưng ý rất rõ: AI có thể làm phần viết mã cho anh em, nhưng luôn có điều kiện đi kèm. Và chính phần “điều kiện đi kèm” đó mới là nơi năng lực kỹ thuật thật sự bắt đầu lộ ra.
Vì sao chủ đề này tiếp tục nóng
Trong làn sóng vibe coding, nhiều người đã quen với việc:
- mô tả tính năng bằng ngôn ngữ tự nhiên
- để AI sinh component, API hoặc script
- sửa vài lỗi nhỏ rồi ship bản đầu rất nhanh
Trải nghiệm đó đủ mạnh để tạo cảm giác rằng viết phần mềm đang trở thành một hoạt động gần giống chỉ huy hơn là tự tay thi công. Nhưng khi sản phẩm đi qua giai đoạn demo và bắt đầu đụng vào người dùng thật, dữ liệu thật, tích hợp thật, các “điều kiện áp dụng” lập tức xuất hiện.
AI làm tốt phần nào, và phần nào vẫn cần con người chịu trách nhiệm
AI hiện làm rất tốt ở các việc sau:
- sinh bản nháp chức năng nhanh
- chuyển mô tả nghiệp vụ thành khung mã
- tạo test hoặc tài liệu ban đầu
- hỗ trợ refactor cục bộ
- đề xuất nhiều hướng xử lý trong thời gian ngắn
Nhưng AI không tự gánh hậu quả của một quyết định kỹ thuật sai. Nó cũng không sống cùng codebase qua nhiều tháng để cảm nhận được cái giá của những lựa chọn tưởng như vô hại lúc đầu.
Các điều kiện áp dụng thường nằm ở đây:
- bài toán có ràng buộc nghiệp vụ phức tạp
- hệ thống có nhiều trạng thái và luồng bất đồng bộ
- dữ liệu cần nhất quán cao
- yêu cầu bảo mật hoặc phân quyền không được phép mơ hồ
- sản phẩm cần dễ bảo trì cho cả đội, không chỉ chạy được hôm nay
Ở các điểm này, việc “hiểu code” không còn là khẩu hiệu. Nó là điều kiện để không tự phá hệ thống của mình.
Sai lầm phổ biến nhất khi dùng AI để code
Sai lầm lớn nhất không phải là dùng AI quá nhiều. Sai lầm lớn nhất là tưởng rằng đầu ra mượt mà đồng nghĩa với hiểu biết vững chắc.
Một đoạn code do AI viết thường có ba đặc điểm khiến anh em dễ chủ quan:
- đọc khá trôi chảy
- cấu trúc nhìn có vẻ hợp lý
- chạy được trong happy path
Chính vì vậy, nhiều team hoặc nhiều cá nhân bỏ qua bước kiểm tra sâu hơn:
- giả định nào đang bị ẩn đi
- error handling có thật sự đầy đủ không
- có gây coupling khó chịu giữa các lớp không
- có tạo thêm nợ kỹ thuật cho vòng sau không
- khi bug xảy ra thì ai đủ hiểu để sửa tận gốc
AI rất giỏi tạo cảm giác yên tâm giả nếu quy trình review của đội còn lỏng.
Trong thực chiến, “biết code” bây giờ nên hiểu thế nào
Có lẽ cần bỏ cách hiểu cũ rằng biết code chỉ là nhớ cú pháp hoặc tự tay viết nhanh. Trong bối cảnh hiện tại, biết code nên được hiểu rộng hơn:
- hiểu luồng dữ liệu chạy qua hệ thống ra sao
- hiểu chỗ nào dễ phát sinh bug hoặc side effect
- hiểu cấu trúc hiện tại có còn chịu nổi vài tháng phát triển tiếp theo không
- hiểu khi nào có thể giao cho AI, khi nào phải kiểm soát thủ công
- hiểu cách kiểm định đầu ra thay vì chỉ tiêu thụ đầu ra
Nói ngắn gọn, giá trị không còn nằm nhiều ở thao tác gõ, mà nằm ở năng lực đánh giá và chịu trách nhiệm.
Điều này có ý nghĩa gì với anh em đang vibe coding
Nếu đang tận dụng AI để tăng tốc, bài học không phải là quay lại làm mọi thứ thủ công. Điều nên làm là nâng chuẩn phối hợp với AI.
1. Xem AI là cộng sự tạo draft, không phải nơi giao toàn bộ trách nhiệm
AI có thể mở đầu rất nhanh, nhưng phần đóng khung yêu cầu, xác nhận ràng buộc và kiểm tra hệ quả vẫn phải do người nắm.
2. Luôn có checklist kiểm định cho từng loại tác vụ
Ví dụ với backend:
- validation đầu vào
- phân quyền
- transaction hoặc idempotency
- logging và quan sát lỗi
- hiệu năng ở truy vấn nóng
Ví dụ với frontend:
- quản lý state
- loading/error state
- accessibility
- responsive
- coupling giữa UI và business logic
3. Dùng AI để học ngược lại từ code vừa sinh ra
Thay vì chỉ copy và chạy, anh em có thể hỏi tiếp:
- vì sao chọn cách này thay vì cách kia
- dependency nào là dư thừa
- abstraction nào đang bị sớm quá hoặc muộn quá
- nếu scale gấp 10 lần thì chỗ nào vỡ đầu tiên
Đó là cách biến mỗi lần generate thành một vòng tăng năng lực.
4. Đừng để tốc độ che mất chi phí bảo trì
Một tính năng làm trong 30 phút bằng AI có thể đáng giá lớn. Nhưng nếu ba tuần sau không ai dám sửa, thì tốc độ ban đầu chỉ là khoản vay ngắn hạn với lãi rất cao.
Tin tốt là vai trò của lập trình viên không biến mất, mà trở nên rõ hơn
Nếu nhìn kỹ, AI không làm kỹ năng kỹ thuật vô dụng. Nó đang phân loại lại thị trường.
Người chỉ mạnh ở phần viết mã cơ học có thể bị ép phải thay đổi. Nhưng người biết đặt vấn đề, kiểm tra logic, tổ chức hệ thống và giữ chất lượng sẽ còn quan trọng hơn trước. Vì khi lượng code tạo ra tăng cực nhanh, nhu cầu kiểm soát chất lượng và định hướng kỹ thuật cũng tăng tương ứng.
Bức ảnh trên Reddit nói đùa rằng AI sẽ code cho anh em, miễn là chấp nhận điều khoản. Thực ra câu đó rất đúng. Điều khoản ở đây chính là: anh em vẫn phải hiểu cái mình đang build, nếu không sớm muộn cũng trả giá bằng bug, nợ kỹ thuật hoặc sự lệ thuộc hoàn toàn vào những gì mô hình trả ra.
Vibe coding giúp vào việc nhanh hơn. Nhưng để đi xa, nền tảng kỹ thuật vẫn là thứ quyết định ai đang thật sự làm chủ cuộc chơi.
Top comments (0)