Vibe coding không biến bạn thành engineer sau một đêm. Câu này nghe phũ, nhưng nó giúp bạn dùng AI tốt hơn.
AI có thể giúp người không code tạo prototype, sửa UI, nối API đơn giản, deploy thử, viết script, và hiểu lỗi nhanh hơn. Đó là thay đổi lớn. Nhưng engineering không chỉ là tạo ra code. Engineering là biết trade-off, biết khi nào dừng, biết rủi ro nằm ở đâu, biết đọc evidence, biết chịu trách nhiệm với hệ thống sau khi nó chạy.
Vibe coding tăng tốc feedback loop. Nó không tự động trao cho bạn judgment.
Nếu hiểu đúng, bạn sẽ mạnh hơn. Nếu hiểu sai, bạn sẽ có nhiều code hơn khả năng kiểm soát.
Prompt không thay thế judgment
Một prompt tốt có thể làm agent đi đúng hướng. Nhưng prompt không quyết định thay bạn:
- Feature nào đáng làm trước.
- Flow nào là core flow.
- Bug nào là blocker.
- Risk nào chấp nhận được.
- Data nào không được đụng.
- Khi nào phải rollback.
- Khi nào cần dev review.
Agent có thể đề xuất. Bạn vẫn phải chọn.
Non-tech hay muốn prompt “chuẩn” để không cần hiểu app. Nhưng prompt chuẩn nhất vẫn không cứu được decision sai. Nếu bạn yêu cầu AI build cả auth, payment, admin, analytics trong một lần, vấn đề không nằm ở wording. Vấn đề nằm ở scope.
Feedback loop là sức mạnh thật
Điểm mạnh thật của vibe coding là giảm thời gian từ “tôi nghĩ” tới “tôi thấy”.
Trước đây bạn mô tả ý tưởng cho dev, chờ estimate, chờ sprint, chờ staging. Bây giờ bạn có thể tự tạo một lát nhỏ:
- Form đặt lịch.
- Dashboard đọc một file CSV.
- Prototype flow onboarding.
- Admin table với filter.
- Landing page test positioning.
Bạn nhìn thấy nó, bấm thử, phát hiện mình nghĩ sai, sửa brief, chạy vòng tiếp theo.
Đó là superpower. Nhưng nó là superpower của feedback, không phải superpower của software ownership.
Engineer giỏi không chỉ viết code
Một engineer không đáng tiền vì họ gõ nhanh. Họ đáng tiền vì họ biết:
- Hỏi requirement ngược lại.
- Giảm scope mà vẫn giữ giá trị.
- Tách prototype khỏi production.
- Không tin test rỗng.
- Đọc log thật.
- Thiết kế migration có rollback.
- Biết secret nào không được vào frontend.
- Nhìn diff và thấy blast radius.
- Chọn cách boring nhưng ổn định.
AI có thể hỗ trợ từng việc. Nhưng nếu bạn không biết cần hỏi, AI thường sẽ chọn đường làm demo xanh nhanh nhất.
Vibe coding không xóa nghề engineering. Nó làm judgment engineering lộ rõ hơn.
Non-tech vẫn có thể kiểm soát
Bạn không cần thành senior engineer để vibe coding an toàn hơn. Nhưng bạn cần học một lớp câu hỏi tối thiểu.
Sau mỗi vòng, hỏi:
What changed?
What did not change?
What is still fake?
What was tested?
What could break?
What needs human review?
Khi agent nói “fixed”, hỏi:
Which file changed, why, and what command proves it?
Khi agent nói “secure”, hỏi:
Where is permission enforced: UI only, API, database, or all three?
Đó không phải học code sâu. Đó là học cách không bị màn hình đẹp ru ngủ.
Cái bẫy “tôi cũng là dev rồi”
Sau vài lần prompt ra app, rất dễ có cảm giác mình đã vượt qua lớp kỹ thuật. Cảm giác đó nguy hiểm.
Bạn có thể làm được nhiều hơn trước thật. Nhưng “làm được” và “hiểu đủ để chịu trách nhiệm” là hai mức khác nhau.
Ví dụ:
- Bạn có thể prompt tạo database schema, nhưng có hiểu migration khi có data thật chưa?
- Bạn có thể prompt tạo login, nhưng có biết token lưu ở đâu không?
- Bạn có thể prompt deploy, nhưng có biết environment nào đang dùng production key không?
- Bạn có thể prompt agent fix bug, nhưng có đọc diff để biết nó đổi nhầm scope không?
Nếu câu trả lời là chưa, hãy giữ nhãn “prototype”, “internal tool”, hoặc “needs review”. Đừng tự nâng cấp nó thành production chỉ vì AI chạy nhanh.
Dùng AI như junior nhanh, không phải staff engineer vô hình
Một mental model tốt: coi agent như một junior rất nhanh, biết nhiều pattern, nhưng cần scope rõ và review thật.
Bạn không giao cho junior:
Build the whole company app and deploy it.
Bạn giao:
Build the booking form UI only.
Use existing components.
No auth changes.
No database changes.
Afterwards list files changed and manual tests.
Với agent cũng vậy. Càng không hiểu code, bạn càng phải thu nhỏ task.
Chốt lại
Vibe coding không làm bạn thành engineer. Nó làm bạn có feedback nhanh hơn engineer truyền thống rất nhiều trong giai đoạn ý tưởng và prototype.
Đó đã là rất lớn. Đừng phá giá trị đó bằng cách giả vờ mình đã có full engineering judgment.
Hãy dùng vibe coding để học nhanh, test nhanh, loại bỏ ý tưởng sai nhanh. Khi app bắt đầu chạm dữ liệu thật, tiền thật, user thật, quyền thật, hãy chuyển từ “prompt cho chạy” sang “review để chịu trách nhiệm”.
Ranh giới đó không làm vibe coding yếu đi. Nó làm vibe coding sống được lâu hơn.