7 Sự Thật Phũ Phàng Về Vibe Coding Mà Không Ai Nói Cho Bạn

7 Sự Thật Phũ Phàng Về Vibe Coding Mà Không Ai Nói Cho Bạn

Lời Nói Đầu — Tại Sao Cần Bài Viết Này

Internet đầy rẫy những bài viết ca ngợi vibe coding: “10x productivity,” “the future of coding,” “never write code again.” Và phần lớn đều đúng — ở một mức độ nào đó. Nhưng như mọi công nghệ, vibe coding có mặt tối mà những bài PR không bao giờ đề cập.

Bài viết này không phải để chống lại vibe coding. Tôi dùng nó mỗi ngày và khuyên mọi developer nên thử. Nhưng tôi tin rằng hiểu rõ hạn chế giúp bạn sử dụng công cụ tốt hơn, không phải tệ hơn. Đây là 7 sự thật phũ phàng mà bạn nên biết trước khi all-in.

Sự Thật #1: Vibe Coding Không Giúp Bạn “Nhanh Gấp 10 Lần” — Con Số Thật Là Khác

Bạn đọc khắp nơi rằng vibe coding giúp tăng năng suất 10x. Sự thật phũ phàng: con số trung bình thực tế là 1.5x-2.5x cho developer có kinh nghiệm, và thậm chí thấp hơn cho người mới.

Con số 10x chỉ xảy ra trong những tình huống cụ thể: boilerplate code, repetitive CRUD operations, hoặc khi demo trên Twitter với project đơn giản. Khi gặp complex business logic, legacy codebase, hoặc performance-critical code, AI agent chậm lại đáng kể — đôi khi còn chậm hơn viết tay vì phải iterate nhiều lần.

Nghiên cứu từ GitClear năm 2025 cho thấy developer dùng AI coding tools viết nhiều code hơn nhưng cũng refactor và revert nhiều hơn. Net productivity gain, sau khi trừ đi thời gian review, debug, và redo, là khoảng 30-60% cho experienced developers.

Đây vẫn là con số tốt — nhưng rất khác với “10x” mà marketing hứa hẹn. Quản lý kỳ vọng đúng giúp bạn không thất vọng và bỏ cuộc sớm.

Sự Thật #2: AI Tạo Ra “Code Debt” Nhanh Hơn Bạn Nghĩ

Khi viết code bằng tay, bạn phải suy nghĩ từng dòng — và quá trình suy nghĩ đó tự nhiên giới hạn tốc độ tạo ra technical debt. Với vibe coding, rào cản đó biến mất. AI có thể generate hàng nghìn dòng code trong vài phút, và bạn dễ dàng accept tất cả mà không review kỹ vì “nó chạy được.”

Hậu quả: codebase phình to với code mà không ai hiểu rõ 100%. Patterns không nhất quán giữa các file (vì mỗi lần generate, AI có thể chọn approach khác). Dependencies thừa được import nhưng không cần. Và performance issues ẩn sâu (AI thường chọn cách đơn giản nhất, không phải cách tối ưu nhất).

Giải pháp không phải ngừng dùng vibe coding, mà là thiết lập discipline: review mọi PR (kể cả AI-generated), maintain lint rules strict, chạy performance benchmarks regularly, và refactor AI-generated code khi cần. Đừng để tốc độ generate vượt quá tốc độ review.

Sự Thật #3: Bạn Đang Mất Dần Kỹ Năng Mà Không Nhận Ra

Đây có lẽ là sự thật đáng lo ngại nhất. Khi bạn để AI viết code đủ lâu, các kỹ năng “muscle memory” bắt đầu mai một: nhớ syntax, API signatures, algorithm implementations, debugging patterns.

Một số developer báo cáo rằng sau 6 tháng vibe coding heavy, họ gặp khó khăn khi phải viết code trong môi trường không có AI — interview, whiteboard, production emergency khi tool down.

Đây là hiện tượng skill atrophy (teo kỹ năng) — giống như dùng GPS đủ lâu thì quên đường, hay dùng calculator đủ lâu thì quên nhẩm tính.

Giải pháp: dành 20-30% thời gian code không dùng AI. Giải LeetCode hoặc build side project bằng tay mỗi tuần. Đọc kỹ code AI generate thay vì chỉ test output. Tham gia code review cho teammates. Mục tiêu là maintain “manual mode” — AI là turbo boost, không phải autopilot.

Sự Thật #4: Context Window Là Nút Thắt Cổ Chai Thật Sự

Marketing nói context window 200K tokens là “có thể hiểu cả codebase.” Thực tế: 200K tokens tương đương khoảng 500-700 files code trung bình. Nghe nhiều, nhưng production codebase trung bình có hàng nghìn files, chưa kể dependencies.

Khi AI không “thấy” hết codebase, nó tạo ra code có thể conflict với code ở nơi khác mà nó không biết. Ví dụ: AI tạo utility function mới trong khi đã có utility tương tự ở thư mục khác. Hoặc AI implement pattern A ở file mới trong khi cả project dùng pattern B.

Thực tế phũ phàng hơn: ngay cả trong context window, AI không xử lý mọi phần đều tốt. Thông tin ở đầu và cuối context được “nhớ” tốt hơn phần giữa — hiệu ứng “lost in the middle” đã được nghiên cứu rộng rãi.

Giải pháp: dùng file CLAUDE.md hoặc tương đương để tóm tắt architecture và conventions — đưa critical info vào đầu context. Chia task nhỏ để giảm context cần thiết. Dùng tools như OpenSpace để tạo skill library — giúp AI “nhớ” patterns mà không cần load lại context.

Sự Thật #5: Vibe Coding Tạo Ra Bất Bình Đẳng Mới Trong Ngành

Một thực tế ít ai thảo luận: vibe coding mở rộng khoảng cách giữa developer giỏi và developer trung bình, thay vì thu hẹp nó.

Developer senior với deep domain knowledge, architecture skills, và khả năng viết prompt tốt sẽ nhận được output xuất sắc từ AI. Developer junior với kiến thức hạn chế sẽ nhận output trung bình hoặc kém — vì không biết hỏi gì, không biết review thế nào, và không biết khi nào AI sai.

Kết quả: senior developer trở thành “super developer” với output gấp 3-4x. Junior developer có output tăng nhẹ nhưng quality giảm vì thiếu review skills. Khoảng cách giữa hai nhóm lớn hơn bao giờ hết.

Đây không phải lỗi của vibe coding — nó là amplifier, khuếch đại cả điểm mạnh lẫn điểm yếu. Nhưng nó có implications cho career: nếu bạn junior, investment vào fundamental skills (data structures, system design, debugging) quan trọng hơn bao giờ hết. Đừng skip basics vì nghĩ AI sẽ bù đắp.

Sự Thật #6: Vendor Lock-in Đang Xảy Ra Và Bạn Không Để Ý

Bạn build workflow quanh Claude Code. Bạn tạo .claude/ directory với custom commands. Bạn viết CLAUDE.md với instructions specific cho Claude. Rồi một ngày, Anthropic tăng giá 3x, hoặc Claude bị outage 2 ngày, hoặc competitor ra model tốt hơn nhiều.

Bạn muốn switch? Không dễ. Mọi workflow, conventions, prompt patterns đều tailored cho một vendor cụ thể. Đây là vendor lock-in — và nó đang xảy ra với hầu hết developer dùng vibe coding.

Giải pháp: đa dạng hóa tools (đừng phụ thuộc 100% vào một vendor). Viết prompt theo format chung, tránh features quá specific. Dùng open-source alternatives (Aider) như backup. Giữ kỹ năng manual coding — đây là “offline mode” cho developer.

Sự Thật #7: Hầu Hết “Vibe Coding Success Stories” Đều Cherry-Picked

Scroll Twitter/X và bạn thấy: “I built a SaaS in 3 hours with Cursor!” “Claude Code just saved me 2 weeks of work!” Những stories này có thật — nhưng là cherry-picked highlights, không phải typical experience.

Bạn không thấy những lần AI generate code sai hoàn toàn và mất 3 giờ debug. Bạn không thấy những lần output phải rewrite 70%. Bạn không thấy “SaaS built in 3 hours” thường là prototype đơn giản, không phải production-ready product. Và bạn không thấy technical debt tích lũy từ rapid AI-generated code.

Survivorship bias đang méo mó perception về vibe coding. Người thành công post stories, người gặp khó khăn im lặng. Và marketing từ AI companies amplify positive stories.

Đây không có nghĩa vibe coding tệ — nó thực sự hữu ích. Nhưng manage expectations: typical experience là productivity tăng 50-100%, với learning curve 2-4 tuần, và cần discipline liên tục để maintain code quality.

Kết Luận — Vibe Coding Tốt, Nhưng Đừng Mù Quáng

7 sự thật trên không phải lý do để tránh vibe coding. Chúng là lý do để dùng nó thông minh hơn.

Hãy dùng vibe coding, nhưng với mắt mở: Maintain manual coding skills song song. Review mọi AI output nghiêm ngặt. Quản lý kỳ vọng thực tế (1.5-2.5x, không phải 10x). Đầu tư vào fundamentals song song với AI tools. Đa dạng hóa vendor, tránh lock-in. Đặt discipline lên trên convenience. Và tự xây dựng opinion từ trải nghiệm thật, không phải Twitter threads.

Vibe coding là công cụ mạnh nhất mà developer từng có. Nhưng công cụ mạnh trong tay thiếu kỷ luật gây hại nhiều hơn lợi. Hãy là developer dùng AI, đừng để AI dùng bạn.

Leave a Reply