Là kỹ sư phần mềm, giờ đây từng dòng code của tôi đều do AI viết: Đôi điều về Vibe Coding

Là kỹ sư phần mềm, giờ đây từng dòng code của tôi đều do AI viết: Đôi điều về Vibe Coding

Đã hơn một năm nay, tôi chưa từng tự tay gõ một dòng code nào, dù bản thân đã có hơn 6 năm trong nghề kỹ sư phần mềm. Mọi dự án tôi đang làm, từng dòng code đều do AI viết ra. Thế nhưng, quay lại thời điểm hơn một năm trước khi lần đầu dùng AI để lập trình, cảm giác sung sướng đó của tôi thực ra kéo dài chưa đầy ba ngày.

Niềm hạnh phúc mang tên Vibe Coding

Vẫn nhớ hồi tháng 6 năm ngoái (2025), tôi tò mò mở Cursor lên dùng thử. Thoạt nhìn, nó chẳng khác mấy so với VS Code quen thuộc, ngoại trừ việc có thêm một khung chat với AI bên thanh bên.

Trước đó, ấn tượng của tôi về việc lập trình cùng AI vẫn dừng lại ở mấy tính năng tự động gợi ý code nâng cao kiểu GitHub Copilot. Nhưng khi gõ câu lệnh đầu tiên rồi nhấn gửi, điều kỳ diệu đã xuất hiện: AI bắt đầu “vắt óc suy nghĩ”, rồi thoăn thoắt tuôn ra hàng chục, hàng trăm dòng code ngay trước mắt tôi. Nó còn tự động nhảy qua lại giữa các tệp để cập nhật, thậm chí tự gõ lệnh chạy thẳng trong terminal.

Giờ đây, tôi chỉ cần dùng ngôn ngữ tự nhiên mô tả tính năng mình muốn, AI đã có thể dựng xong xuôi mọi thứ. Tôi chẳng cần phải cặm cụi gõ từng dòng. Đây không còn là logic tự động hoàn thành code đơn thuần nữa, mà là AI đã hoàn toàn tiếp quản một phần công việc của kỹ sư phần mềm ở một tầng mức cao hơn.

Khoảnh khắc ấy, tôi cảm thấy như mình vừa vớ được cây bút thần của Mã Lương—một cảm giác vỡ òa khi cánh cửa bước vào thế giới mới mở toang ra trước mắt.

Thế là lúc đó, tôi đã viết lại vài dòng cảm nghĩ thế này:

Vibe Coding sinh ra như thể dành riêng cho người có xu hướng ADHD vậy. Cách lập trình truyền thống vốn rất “chống chỉ định” với người thiếu kiên nhẫn hay mất tập trung, nhưng Vibe Coding chữa khỏi tiệt mấy tật xấu: ghét viết unit test, sợ chỉnh CSS, hay gõ nhầm tên biến, và ngán ngẩm việc lặp đi lặp lại để mò mấy con bug vụn vặt.

Giờ có AI đỡ đần, tốc độ phản hồi nhanh đến chóng mặt, cảm giác thỏa mãn cứ thế dâng trào. Những thứ càng lặp lại, càng tủn mủn thì AI lại làm càng mượt.

Mình chỉ việc tập trung vào định hướng lớn, thiết kế kiến trúc hệ thống, giữ đúng vai trò của một người dẫn dắt dự án.

Tôi không tha thiết gì việc phải gõ từng ký tự một, nhưng tôi mê đắm cảm giác được nhào nặn ra một sản phẩm. Từ Hợp ngữ (Assembly) cho đến các ngôn ngữ bậc cao, trải nghiệm sáng tạo phần mềm của lập trình viên đáng lẽ phải ngày càng sướng hơn, hiệu suất ngày càng cao hơn.

Giờ đây, khi được đứng ở góc nhìn của một người sáng tạo thuần túy thay vì một thợ gõ code còng lưng, người làm lập trình thật sự phải thấy mình vô cùng may mắn.

Giới hạn của Vibe Coding

Lối lập trình này có một cái tên riêng: Vibe Coding. Thuật ngữ này do cựu đồng sáng lập OpenAI – Andrej Karpathy – đưa ra vào tháng 2 năm 2025. Hiểu nôm na là code hoàn toàn theo cảm xúc (“vibe”): bạn dùng ngôn ngữ tự nhiên để nói cho AI biết bạn muốn gì, nhận mọi đoạn code AI nhả ra mà chẳng buồn soi lại từng dòng; hễ gặp lỗi thì cứ quăng nguyên văn lỗi đó ngược lại cho AI xử lý, cho tới khi bạn gần như quên mất sự tồn tại của những dòng mã phía dưới.

Nhưng sau màn trải nghiệm đầy phấn khích cùng những dòng tâm đắc kể trên, tôi chỉ sướng được chưa đầy ba ngày thì đã lập tức va phải giới hạn của Vibe Coding.

Lúc ấy, tôi đang dựng bản mẫu (prototype) cho một ứng dụng. Cách làm thuần Vibe Coding khiến AI thỏa sức vùng vẫy theo những chỉ dẫn mù mờ của tôi mà không hề có bất kỳ kỷ luật công nghệ phần mềm nào can thiệp. Hậu quả là càng về sau, AI càng trở nên mất kiểm soát, còn kiến trúc phần mềm thì rối như một mớ bòng bong đến mức không tài nào bảo trì nổi.

Tôi đành đập đi xây lại từ đầu. Lần này, tôi quay trở lại với tâm thế của một kỹ sư phần mềm thực thụ, tuân thủ đúng quy trình làm việc tiêu chuẩn để phát triển với sự trợ giúp của AI.

Lần tái xuất này đưa tôi vào một trạng thái hoàn toàn khác. Tôi vẫn giữ trọn được niềm vui sướng của Vibe Coding, nhưng kết hợp thêm việc review code khắt khe hơn, tài liệu rõ ràng hơn, chia nhỏ các thay đổi để cải tiến từng bước một thay vì cố nhồi nhét một đống tính năng cùng lúc. Nhờ vậy, toàn bộ kiến trúc lẫn khâu triển khai đều nằm trong tầm kiểm soát tuyệt đối, bảo đâu đánh đó cực kỳ sảng khoái. Lập trình cùng AI lúc này giống như một người sếp đang chỉ đạo một thực tập sinh siêu cấp nhanh nhẹn: bạn không cần xắn tay áo vào làm từng việc vặt, nhưng bạn bắt buộc phải nắm chắc tay lái về mặt kiến trúc và có tư duy bao quát toàn cục.

Không lâu sau, tôi chuyển qua dùng Claude Code làm công cụ hỗ trợ. Độ chuẩn xác cùng khả năng kiểm soát mạnh mẽ hơn hẳn khiến tôi như hổ mọc thêm cánh, hiệu suất làm việc nhân lên gấp bội.

Tương lai của kỹ sư phần mềm

“Liệu có khi nào vì Vibe Coding giúp tạo ra sản phẩm quá nhanh, mà người ta đâm ra lười, chẳng còn muốn học sâu hay nghiên cứu nền tảng lập trình nữa không?”

Tôi nghĩ: Hoàn toàn có thể, thậm chí là chắc chắn!

Con đường học lập trình truyền thống để tạo ra sản phẩm vốn giống như từng bậc cầu thang—bước nào chắc bước nấy. Đa số mọi người bắt đầu từ các lớp nhập môn ngôn ngữ, rồi trở thành lập trình viên sơ cấp (junior), cọ xát với vô số bài toán thực tế trong công việc, để rồi dần dà cứng cáp thành một kỹ sư phần mềm vững vàng. Mỗi nấc thang đều đem lại phản hồi rõ rệt, nên với năng lực học tập trung bình, việc bước chân vào ngành không quá tầm với và lộ trình sự nghiệp cũng rất sáng sủa.

Vibe Coding đã kéo rào cản gia nhập xuống mức thấp nhất: giờ đây ai cũng có thể làm ra một bản demo. Thế nhưng, kỹ thuật phần mềm là bộ môn đòi hỏi tính thực chiến cực kỳ nặng. Từ một bản demo bước tới một sản phẩm thương mại hóa hoàn chỉnh và vận hành ổn định, khoảng cách ấy chẳng khác nào từ 0 đến 1 so với từ 1 đến 100.

Với lộ trình truyền thống, những ai tự lực đi được từ 0 đến 1 cũng đã tích lũy cho mình kha khá nền tảng cần thiết để bước tiếp từ 1 đến 100. Trái lại, Vibe Coding không hề trang bị cho người mới bắt đầu những kỹ năng nền tảng ấy. Họ chỉ vừa chớm bước từ 1 lên 10 thôi là đã đụng phải bức tường dốc đứng về độ khó, khiến phần lớn nản lòng mà bỏ cuộc.

Chính vì khúc dạo đầu quá đỗi êm đềm, nên khi sóng gió ập đến, sự tò mò hay năng lực học tập bậc trung khó lòng mà vượt qua nổi. Còn nếu ai đó vẫn băng băng vượt qua được giai đoạn này, thì rõ ràng năng lực tự học, khả năng hành động và tư duy giải quyết vấn đề của họ đã thuộc hàng xuất chúng—ít nhất cũng phải nằm trong top 1% giới lập trình. Nói cách khác, nhóm người tinh hoa này thì dù ở thời kỳ tiền AI, họ cũng thừa sức trở thành những kỹ sư cự phách.

Khi năng lực viết mã của AI tăng vọt, thị trường không còn mặn mà với các kỹ sư cấp junior nữa. Chuỗi đào tạo nghề nghiệp sẽ bị đứt gãy, và số người có cơ hội cọ xát để rèn giũa tay nghề cũng ít dần đi.

Tròn một năm sau khi tôi viết bản nháp này, các số liệu tuyển dụng thực tế đã bắt đầu chứng minh cho nhận định đó:

Góc nhìn của tôi về tương lai ngành này khá ảm đạm. Lập trình rồi sẽ phân cực sâu sắc: một bên là cuộc chơi của những “quái kiệt” đỉnh cao, còn một bên là đông đảo người dùng làm theo sở thích, dừng lại ở những món đồ chơi demo đơn giản.

Và các lĩnh vực khác cũng sẽ dần đi theo vết xe đổ này. Trong tương lai, mọi công việc sử dụng trí óc ở mức độ nhẹ đến vừa đều sẽ bị AI thay thế.

Ngay cả toán học—mảnh đất vốn phụ thuộc bậc nhất vào tư duy nguyên bản của con người—cũng đã bị AI công phá chỉ trong vòng một năm qua:

Tôi sẽ chia sẻ những gì trong chuỗi bài này

Hiện nay, ngày càng có nhiều người chưa từng học lập trình bắt đầu tiếp cận AI Coding. Họ có thể bỡ ngỡ không biết bắt đầu từ đâu, hoặc chỉ loay hoay làm được vài dự án con con. Rồi họ sẽ nhận ra rằng, sự thiếu hụt kiến thức về kỹ thuật phần mềm khiến bản thân rơi vào trạng thái mông lung: không hiểu mình đang làm gì, không biết cách bóc tách vấn đề, bế tắc trước các bài toán phức tạp và không biết làm sao để điều phối AI đạt được đúng kết quả mong muốn.

Tôi cũng để ý thấy rằng, rắc rối của không ít người thực ra nằm ở tư duy logic: họ chưa biết cách đặt câu hỏi, thiếu tư duy phản biện và không có khả năng thẩm định xem câu trả lời của AI đúng hay sai.

Là một kỹ sư phần mềm với hơn 6 năm kinh nghiệm, tôi đã tận dụng AI để thiết kế và phát triển nhiều dự án phức tạp, đưa sản phẩm đến tay lượng người dùng không nhỏ. Đúng như câu mở đầu: mọi dự án hiện tại của tôi đều do AI viết từng dòng mã. AI thực sự có thể gánh vác việc phát triển các dự án phức tạp, nhưng với điều kiện tiên quyết là người phát triển phải biết rõ mình đang làm gì và biết cách dẫn dắt AI hoàn thành nhiệm vụ. AI rốt cuộc chỉ là công cụ, mấu chốt vẫn nằm ở con người.

Trong kỷ nguyên AI, con đường học lập trình truyền thống sẽ bị đảo lộn hoàn toàn. Vì vậy, để bắt kịp làn sóng này, tôi dự định ra mắt chuỗi bài viết: Cẩm nang Vibe Coding toàn diện cho người mới bắt đầu.

Cẩm nang này sẽ xoay quanh các chủ đề chính:

  1. Đưa các thực hành tốt nhất (best practices) của kỹ thuật phần mềm hiện đại vào AI Coding. Bắt đầu từ việc thấu hiểu bản chất của kỹ thuật phần mềm, rồi từng bước tự tay làm ra ứng dụng mình ấp ủ. Mục tiêu là sản phẩm không dừng lại ở mức demo mà có thể bảo trì lâu dài, quy trình viết code cũng mượt mà như lụa.
  2. Hướng dẫn rèn luyện tư duy và logic: cách đặt câu hỏi hiệu quả khi làm việc với AI, những điều tối kỵ cần tránh, và cách viết tài liệu dự án sao cho chuẩn xác.
  3. Phương pháp kiểm thử sản phẩm và mã nguồn, tối ưu hóa toàn bộ quy trình làm việc; cách liên tục nâng cấp tính năng và chất lượng phần mềm mà vẫn giữ vững độ ổn định của kiến trúc. Bí quyết tăng tốc độ phát triển mà không đánh đổi chất lượng, cùng cách thiết lập các luồng tự động hóa (automated workflows).
  4. Lựa chọn tech stack tối ưu cho lập trình cùng AI: nên chọn ngôn ngữ và framework nào để khai phóng tối đa sức mạnh của AI.

Lời kết

Thực ra nội dung chính của bài viết này đã được tôi chấp bút từ một năm trước (tháng 10 năm 2025). Lần này tôi biên tập lại toàn bộ, đồng thời bổ sung thêm các số liệu tuyển dụng thực tế cũng như những bước tiến chấn động của AI trong lĩnh vực toán học suốt một năm qua. Khi ấy, vì quá choáng ngợp trước tốc độ phát triển chóng mặt của AI, tôi cứ nơm nớp lo những gì mình viết sẽ lỗi thời chỉ sau vài ngày, thành thử viết rất nhiều bài ngắn tản mạn mà ít khi ra được bài dài chỉn chu. Một năm trôi qua, lật lại bản nháp này, tôi thấy những suy ngẫm khi đó vẫn còn nguyên giá trị, nên quyết định gọt giũa lại để chia sẻ cùng mọi người. Tự nhủ từ nay sẽ chăm viết bài dài hơn, bởi sau cùng, những nội dung thấm đượm “chất người” sẽ ngày càng trở thành thứ hiếm hoi trong tương lai.