Vibe Coding và cái bẫy của việc build mà không hiểu mình đang làm gì
AI giúp non-technical builders tạo ra sản phẩm nhanh hơn bao giờ hết nhưng tốc độ đó đang che giấu một vấn đề lớn hơn.
Nguyễn Nhật Long
@nguyennhatlong1303
Gần đây mình thấy một trend khá thú vị trong cộng đồng indie hackers và startup founders: người ta đang dùng AI để build sản phẩm mà không cần biết code. Họ gọi nó là vibe coding bạn describe cái bạn muốn, AI generate ra code, bạn click deploy, xong. Nghe cool đấy. Nhưng sau một thời gian quan sát, mình bắt đầu thấy có gì đó không ổn.
Khi "nó chạy được" không còn đủ nữa
Vấn đề không phải là AI viết code tệ. Thực ra ngược lại AI viết code khá tốt cho các use case phổ biến. Vấn đề là người dùng không hiểu cái họ đang chạy. Và khi mọi thứ bắt đầu vỡ và nó sẽ vỡ họ không biết bắt đầu debug từ đâu.
Mình từng làm việc với một founder build một SaaS tool bằng Cursor + Claude. App chạy ngon trong môi trường dev, nhưng khi deploy lên production thì authentication flow bị broken. Anh ấy paste error vào chat, AI đưa ra fix, anh ấy apply, lại broken theo kiểu khác. Cứ thế loop mãi. Sau 3 ngày, mình nhìn vào thì thấy ngay vấn đề: JWT secret không được set đúng trong environment variables của production. Một thứ cực kỳ cơ bản nhưng với người không có mental model về cách authentication hoạt động, thì đó là một hố đen.
Đây không phải câu chuyện về AI tệ hay người dùng tệ. Đây là câu chuyện về cái gap giữa tốc độ tạo ra thứ gì đó và khả năng hiểu thứ đó hoạt động như thế nào.
Vibe coding thực ra là gì và tại sao nó hấp dẫn đến vậy
Andrej Karpathy là người đầu tiên dùng term này, và ông ấy dùng nó theo nghĩa khá cụ thể: bạn để AI viết hầu hết code, bạn không đọc kỹ từng dòng, bạn trust vào output và iterate nhanh. Với những người đã có technical background, đây là một workflow hợp lý bạn vẫn có khả năng sanity-check những gì AI tạo ra.
Nhưng term này bị misappropriate. Với nhiều non-technical builders, vibe coding trở thành: mô tả vague cái mình muốn → nhận code → chạy → xong. Không có bước kiểm tra, không có bước hiểu, không có mental model về system đang được build.
Cái hấp dẫn ở đây rõ ràng: barrier to entry giảm xuống cực thấp. Bạn có thể có một working prototype trong vài giờ mà không cần học programming. Đó là điều tuyệt vời thực sự. Nhưng prototype và production-ready product là hai thứ rất khác nhau.
Những thứ AI không thể vibe cho bạn
Theo kinh nghiệm của mình, có một số thứ mà dù AI giỏi đến đâu, nếu người build không hiểu thì sẽ gặp vấn đề:
Mình không nói những thứ này là không thể học. Mình đang nói rằng chúng cần được học, và vibe coding đang tạo ra ảo giác rằng bạn không cần học chúng.
| Khía cạnh | Tại sao AI không đủ |
|---|---|
| Security & auth flow | AI generate code đúng syntax nhưng bạn cần hiểu *tại sao* để config đúng môi trường |
| Data modeling | Schema design ảnh hưởng đến toàn bộ app thay đổi sau này rất tốn kém |
| Error handling | AI thường generate happy path, edge cases cần người hiểu domain |
| Cost & scaling | AI không biết traffic pattern của bạn, không biết budget của bạn |
| Vendor lock-in | Chọn stack mà không hiểu trade-off có thể khóa bạn vào một ecosystem tốn kém |
Clear thinking thứ thực sự cần thiết
Cái non-technical builders thực sự cần không phải là học code. Không nhất thiết. Thứ họ cần là clear thinking về systems khả năng decompose một vấn đề thành các phần rõ ràng, hiểu các component tương tác với nhau như thế nào, và biết đặt câu hỏi đúng.
Ví dụ: thay vì nói với AI "build cho mình một app để manage khách hàng", người có clear thinking sẽ hỏi:
- Data nào mình cần store? Relationship giữa chúng là gì?
- Ai có quyền truy cập vào data nào?
- Khi có 1000 users thì flow này có còn work không?
- Nếu service X down thì app có bị broken không?
Những câu hỏi này không yêu cầu bạn biết code. Chúng yêu cầu bạn nghĩ rõ ràng về hệ thống. Và đây là thứ AI không thể làm thay bạn AI chỉ có thể trả lời câu hỏi bạn đặt ra, không thể đặt câu hỏi đúng thay bạn.
Mình thấy cái này hay ở chỗ: clear thinking về systems thực ra là một skill transferable. Một product manager giỏi, một business analyst giỏi họ đều có skill này. Vấn đề là khi build với AI, người ta hay bỏ qua bước thinking này vì có vẻ như không cần thiết nữa.
AI như một junior dev rất nhanh bạn vẫn cần là tech lead
Mình hay dùng analogy này: AI trong vibe coding giống như một junior developer cực kỳ productive. Họ có thể implement feature nhanh, họ biết nhiều patterns, họ không than phiền khi bạn yêu cầu refactor lần thứ 10. Nhưng bạn vẫn cần một tech lead người hiểu big picture, đặt ra architecture decisions, review output, và catch những thứ junior dev bỏ sót.
Với non-technical builders, role của tech lead đó phải là chính họ. Không phải là họ cần biết code nhưng họ cần đủ technical literacy để:
- Hiểu tại sao một decision được đưa ra, không chỉ là decision đó là gì
- Recognize khi nào AI đang hallucinate hoặc đưa ra solution không phù hợp với context
- Biết khi nào cần hỏi một người thật thay vì tiếp tục loop với AI
Anh em lưu ý điều này: AI rất giỏi ở việc cho bạn cái bạn hỏi, không phải cái bạn cần. Sự khác biệt đó nằm ở khả năng thinking của người dùng.
Thế thì non-technical builders nên làm gì?
Mình không có silver bullet, nhưng từ những gì mình observe được:
Học đủ để đặt câu hỏi đúng. Bạn không cần biết viết SQL, nhưng bạn nên hiểu relational database là gì và tại sao nó khác NoSQL. Bạn không cần biết implement OAuth, nhưng bạn nên hiểu authentication flow hoạt động ra sao. Đây là level của technical literacy cần thiết.
Treat AI output như draft, không phải final. Mỗi lần AI generate code, hãy hỏi nó giải thích cái nó vừa làm. Không phải để bạn học code, mà để bạn verify rằng nó đang giải quyết đúng vấn đề.
Build mental model trước khi build product. Trước khi bắt đầu vibe coding, hãy vẽ ra theo nghĩa đen, vẽ trên giấy cái bạn muốn build. Data flows đâu? Users interact với system như thế nào? Nếu bạn không thể vẽ được nó, bạn chưa sẵn sàng để build nó.
Tìm một technical advisor, dù chỉ để review. Không cần full-time CTO. Chỉ cần ai đó có thể nhìn vào architecture của bạn mỗi vài tuần và nói "cái này sẽ vỡ khi..." trước khi nó thực sự vỡ.
Cuối cùng, vibe coding không phải là xấu. Nó là một tool cực kỳ powerful. Nhưng như mọi tool powerful khác, nó amplify cả điểm mạnh lẫn điểm yếu của người dùng. Nếu bạn có clear thinking, AI sẽ giúp bạn build nhanh hơn gấp 10 lần. Nếu bạn không có, AI sẽ giúp bạn tạo ra technical debt và confusion nhanh hơn gấp 10 lần.
The age of AI không làm cho thinking trở nên ít quan trọng hơn. Nó làm cho thinking trở nên quan trọng hơn bao giờ hết.
Nguyễn Nhật Long
@nguyennhatlong1303Nguyễn Nhật Long is a Senior Frontend Engineer and Frontend Team Leader with 7 years of experience building real-time fintech platforms. Specializing in React, Next.js, TypeScript, and React Native, shipping 10+ products across Web, Mobile, Telegram Mini-Apps, and Web3.
Thấy hay? Chia sẻ cho bạn bè!