Vibe coding là gì? Karpathy đặt tên cho cách viết code theo cảm xúc
Vibe coding (lập trình theo cảm xúc) là khái niệm Andrej Karpathy đặt tên đầu 2025 — bạn 'tả' ý tưởng cho AI, AI gen code, chạy thử, sửa, không đọc kỹ từng dòng. Dùng đúng lúc = build MVP 10x nhanh. Dùng sai = bug tràn production.
Mục lục bài viết(19)

Vibe coding — lập trình theo cảm xúc với AI: bạn tả ý tưởng, AI gen code, bạn chạy thử, sửa theo cảm giác, không đọc từng dòng. Khái niệm Andrej Karpathy đặt tên tháng 2/2025. Ảnh: AI-generated bằng ChatGPT gpt-image-2.
Hiểu đơn giản nhất
Thay vì nấu ăn theo recipe chuẩn (đo 200g bột, 50g đường), bạn nấu theo "vibe": nhìn nồi, cảm thấy đủ vị, nêm theo cảm xúc, ai thấy ngon là được. Vibe coding y hệt vậy — bạn không cần hiểu từng dòng code AI sinh ra, chỉ cần nhìn output có chạy đúng không. Hài lòng thì giữ, không thì prompt lại.
Đây là cách lập trình mới hoàn toàn, chỉ có khi AI đủ mạnh để gen code chính xác từ mô tả tự nhiên — tức là 2024-2026 trở đi.
Karpathy đặt tên (Tháng 2/2025)
Andrej Karpathy — founding member (đồng sáng lập) OpenAI, cựu Director AI Tesla (xây Autopilot 2017-2022), giảng viên Stanford — tweet ngày 2/2/2025:
"There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists."
Tạm dịch: "Có một kiểu lập trình mới tôi gọi là 'vibe coding', bạn buông xuôi theo cảm xúc, ôm trọn đường cong [tăng trưởng] hàm mũ, và quên mất rằng code thậm chí còn tồn tại."
Trong cùng tweet, Karpathy mô tả workflow thực tế của ông:
"I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works."
"I don't read the diffs anymore."
"When errors come up I just paste them in with no comment, usually that fixes it."
"The code grows beyond my usual comprehension, I'd have to read it for a while."
Tại sao tweet này viral: Karpathy KHÔNG phải hype-man marketing. Ông là một trong những engineer giỏi nhất thế giới (build neural net từ 2014). Khi ông công khai nói "không đọc diff nữa" — giới dev mới shocked vì cách này phá bỏ mọi nguyên tắc dạy ở trường: review code kỹ, hiểu mọi dòng, viết test.
Ví dụ thực tế: Trước Karpathy, dev VN thường cảm thấy có lỗi (guilty) khi để AI gen code mà không đọc kỹ — "mình lười, không pro". Sau tweet Feb 2025, cộng đồng VN (Zalo Group, Facebook Group "VN Dev") share lại liên tục — vibe coding trở thành cách hợp pháp để build MVP. Ngày nay 2026, nhiều founder VN public claim "vibe code 100% sản phẩm" mà không xấu hổ.
Vibe coding workflow — 5 bước cụ thể
Cách vibe code 1 task điển hình:
Bước 1: Tả ý tưởng bằng từ ngữ tự nhiên (không cần technical spec):
"Tôi muốn 1 tool đọc Notion page và tóm tắt thành 5 bullet bằng tiếng Việt. Chạy bằng command line trên Windows."
Bước 2: AI gen code. Claude Code / Cursor sinh ra ~100 dòng Python với notion-client + OpenAI API. Bạn KHÔNG đọc.
Bước 3: Chạy thử. Click "Run", terminal in ra:
ModuleNotFoundError: No module named 'notion_client'
Bước 4: Paste lỗi vào AI, không bình luận. Chỉ copy đúng câu lỗi, dán vào prompt. AI hiểu ngay:
"Tôi cần cài thư viện. Chạy lệnh
pip install notion-client openai."
Bước 5: Lặp đến khi "vibe ok". Có thể qua 3-10 vòng prompt/error/fix. Cuối cùng tool chạy → bạn dùng → xong. Bạn KHÔNG bao giờ đọc 100 dòng code đó.
Karpathy thừa nhận: "the code grows beyond my usual comprehension" — code vượt khả năng hiểu của chính ông. Nhưng nó hoạt động → dừng tại đó.
Ví dụ thực tế: Founder BTB dùng vibe coding build cron job daily report (báo cáo hàng ngày). Tả: "8h sáng mỗi thứ Hai, gọi API GA4, gửi email tôi top 10 trang traffic tuần". AI gen 80 dòng Python, dùng Cron job syntax 0 8 * * 1 + Webhook gửi email qua SendGrid. Lần đầu chạy thì thiếu .env (xem environment variables) → paste lỗi → AI hướng dẫn tạo file → 30 phút sau cron chạy đúng. Founder không bao giờ đọc lại code đó suốt 8 tháng.
Khi nào vibe code ĐƯỢC
✅ Prototype / MVP để test idea — build trong 1-3 ngày để xem có người dùng không, đừng đầu tư công sức cao trước khi validate
✅ Tool nội bộ (1-10 user) — admin dashboard, internal CRM, automation script
✅ Throwaway script — cron 1 lần, migration data 1 lần, scrape 1 lần
✅ Học framework mới — vibe code 5 mini-project Next.js trong 1 tuần, học bằng tay nhanh hơn đọc docs
✅ Hackathon / Demo — chỉ cần work trong 5 phút trình bày, không cần maintain
✅ Side project cá nhân — bạn là user duy nhất, sập thì bạn fix
✅ Phần UI không critical — landing page, form đơn giản, marketing site
Khi nào KHÔNG vibe code
❌ Production code 1000+ user — bug = user mất tiền/dữ liệu/lòng tin
❌ Auth, thanh toán, financial code — 1 lỗi bảo mật = mất tài khoản user / trừ tiền sai → kiện tụng
❌ Code maintain dài hạn (3+ năm) — sau 6 tháng bạn không hiểu chính code của mình → bug fix mất 10x công sức
❌ Compliance (GDPR, PCI-DSS, HIPAA) — pháp lý yêu cầu audit code, vibe code không pass
❌ Open-source / Code chia sẻ — người khác đọc, không hiểu, không contribute được
❌ Code có race condition / concurrency — AI gen code đa luồng (multi-threaded) thường có subtle bug, vibe coder không phát hiện
❌ Database migration không reversible — chạy sai = mất data vĩnh viễn
Ví dụ thực tế: VNPay năm 2023 từng có pentest report — 1 startup fintech VN vibe code module thanh toán, AI gen code dùng Math.random() để sinh transaction ID. Hacker dự đoán ID (vì Math.random() predictable) → chiếm session người khác → trừ tiền sai. Lỗi sub-pattern AI hay sinh: dùng Math.random() cho security là sai, phải dùng crypto.randomUUID(). Vibe coder không biết để check → production bug.
Vibe coding vs Traditional vs Spec-driven
| Tiêu chí | Vibe coding | Traditional | Spec-driven |
|---|---|---|---|
| Quy trình | Tả → Gen → Chạy → Sửa | Plan → Design → Code → Test | Spec → Acceptance → AI gen theo spec → Verify |
| Đọc code | Không | Đọc kỹ mọi dòng | Đọc phần critical |
| Test | Manual test cuối | TDD trước | Acceptance test theo spec |
| Tốc độ | Nhanh nhất (10x) | Chậm nhất (1x) | Trung bình (3-5x) |
| Chất lượng | Trung bình-thấp | Cao nhất | Cao |
| Bảo mật | Rủi ro | Tốt nếu dev senior | Tốt nếu spec đề cập |
| Maintainability (khả năng bảo trì) | Thấp | Cao | Cao |
| Phù hợp giai đoạn | 0→1 (prototype) | 1→100 (team nhỏ) | 1→100 (team lớn) |
| Phù hợp ai | Non-tech, solo founder | Dev senior | Team có PM/QA |
Ví dụ thực tế: Startup BTB phase 1 (2024) — founder Tô Minh vibe code admin tool 1 tuần với Claude Code, có 15 trang CRUD + dashboard analytics. Khi launch SaaS public (2025) → chuyển sang spec-driven cho payment + auth, GIỮ vibe code cho admin tool. Module vibe code chỉ founder + 2 staff dùng → bug → fix trực tiếp, không khẩn cấp. Module spec-driven xử lý 500 user/ngày → có test + monitoring + rollback plan.
Cảm bẫy vibe coding — 3 cái dev thường vướng
1. "Trusting too much" — Tin AI quá
AI gen code nhìn có vẻ đúng nhưng pattern bảo mật sai:
- Hardcode API key trong code (thay vì .env)
- Dùng
eval()từ user input → XSS - Query SQL ghép chuỗi → SQL Injection
- Cookie không có
httpOnly→ cookie bị steal qua JS - File upload không check extension → upload
.phpchạy malware
Karpathy thừa nhận: "I'd have to read it for a while" — ông ấy biết code có thể có vấn đề nhưng cố tình bỏ qua cho prototype. Vibe coder VN cần biết: prototype OK, production phải có dev review.
2. "Tech debt tăng nhanh" — Nợ kỹ thuật chồng chất
Vibe code 1 tuần → bạn có 500 dòng code. Sau 3 tháng vibe tiếp → 5000 dòng. Bạn KHÔNG hiểu chính code của mình. Khi cần fix bug, AI cũng không hiểu vì code không có:
- Comment giải thích logic (
//ghi chú dòng) - Tên biến rõ ràng (AI hay đặt
data1,result2) - Cấu trúc folder hợp lý
- Test verify behavior
→ Mỗi fix lại sinh 3 bug mới (regression). Đến 1 lúc không thể vá nữa.
Ví dụ thực tế: Một SaaS VN trong nhóm fintech (giấu tên) vibe code 6 tháng → 30k dòng code → 200 bug backlog → quyết định rewrite từ đầu với spec-driven mất 3 tháng nhưng giảm bug 95%. Cost rewrite vs maintain vibe code: rewrite rẻ hơn 4x.
3. "Hard to scale" — Khó scale lên
Vibe code prototype 10 user OK. Lên 1000 user thì:
- DB query N+1 problem (gọi DB 1000 lần thay vì 1 lần với JOIN)
- Không có Caching → request 5x chậm hơn cần
- Không có Rate limiting → 1 bot lạm dụng làm app sập
- Không có Auto-scaling → 1 server quá tải
→ App sập khi viral. Lỗi tiền tỷ về downtime + lost trust.
Mitigation (cách giảm thiểu): Nếu sản phẩm vibe code thành công → REWRITE properly trước khi scale (spec-driven hoặc traditional). Đừng cố vá vibe code production. Bài học từ Karpathy: ông vibe code projects cá nhân, KHÔNG vibe code Tesla Autopilot.
Vibe coding KHÔNG phải là "lười"
Có lập luận sai phổ biến: "Vibe coding là dev lười, không hiểu code → không phải dev thật".
Karpathy phản biện: vibe coding là trade-off có chủ đích. Bạn đánh đổi "hiểu sâu" lấy "tốc độ làm sản phẩm". Trong môi trường:
- Startup early stage cần product-market fit (PMF) nhanh
- Solo founder không có team
- Idea cần validate trong 1 tuần để không lãng phí 3 tháng
→ Tốc độ > Hiểu sâu là quyết định đúng.
Sai khi:
- Đã có PMF, đang scale → tốc độ < an toàn
- Có team → cần code share-able, maintain-able
- Module critical (auth/payment) → cần audit
Vibe coding = tool, không phải philosophy duy nhất. Dev senior 2026 biết khi nào dùng, khi nào không.
Có nên học vibe coding?
Non-tech founder: YES — học đầu tiên
Đây là cách nhanh nhất build MVP solo. Đầu tư 1 tuần học Claude Code / Cursor → build được prototype hoàn chỉnh. Khi MVP có user → hire dev rewrite.
Marketer / Product manager: YES — học cho automation
Build internal tool tự động (scrape, format report, send email) → tăng 5x output cá nhân. Không cần code expertise.
Junior dev (1-3 năm): YES nhưng cẩn thận
Vibe coding nhanh nhưng bạn cần hiểu cơ bản code để debug khi AI sai. Cân bằng: vibe code 50% thời gian, traditional code 50% để vẫn lên skill.
Senior dev (5+ năm): YES cho prototype, NO cho production
Bạn đã có sense về code quality → vibe code an toàn cho prototype. Production code vẫn cần spec-driven + review.
Dev refuse học AI: Mất việc trong 3-5 năm
GitHub Survey 2026: 85% dev dùng AI assistant hàng ngày. 15% không dùng → output thấp 2-5x, lương tăng chậm, sa thải khi tinh giảm.
Tóm tắt 1 dòng
Vibe coding là tả ý tưởng cho AI bằng từ ngữ thường ngày, chạy thử, sửa theo cảm xúc, không đọc code — Karpathy đặt tên 2/2025. Hợp cho prototype / MVP / tool nội bộ / script throwaway. KHÔNG hợp cho production / auth / payment / compliance. Trade-off "tốc độ" lấy "hiểu sâu" — đúng giai đoạn 0→1, sai giai đoạn 1→100. Dev 2026 cần biết cả 2 mode.
Đọc tiếp
- Prompt Engineering — viết prompt tốt để vibe coding hiệu quả hơn
- So sánh Claude Code, Cursor, GitHub Copilot — chọn tool vibe code phù hợp
- Spec-driven dev — đối cực của vibe coding (sắp có)
- TDD + Vertical Slicing với AI — middle ground giữa vibe và spec (sắp có)
- 34 khái niệm cơ bản AI Coding — từ điển nếu gặp thuật ngữ lạ
- 42 khái niệm nâng cao — khi cần đi sâu
Đang cân nhắc build MVP với vibe coding nhưng cần dev rewrite khi scale? VietCodex chuyên rewrite vibe-code prototype → production-ready SaaS. Xem dịch vụ.