Xu hướng code với AI: Bền vững hay sớm thoái trào?

15 min read

Code AI có phải là xu hướng lập trình bền vững trong tương lai?

I. Lập trình viên có nên code với AI không?

Một góc nhìn thực tế về lợi ích, rủi ro và cách dùng AI để không “mất nghề”

Dù bạn yêu hay ghét, việc sử dụng AI trong lập trình game đã trở thành một phần của thực tế hiện tại. Câu hỏi không còn là “có nên dùng hay không”, mà là dùng như thế nào để AI thực sự giúp bạn làm game tốt hơn, thay vì khiến quá trình phát triển trở nên rối rắm và mất kiểm soát.

Tôi bắt đầu sử dụng AI trong lập trình game từ khá sớm.

Năm 2023, tôi lần đầu dùng GitHub Copilot khi làm một dự án game nhỏ. Khi đó, Copilot chủ yếu đóng vai trò như một autocomplete nâng cao, hỗ trợ hoàn thiện các đoạn code xử lý gameplay như nhân vật, va chạm hay animation.

Tuy nhiên, Copilot không phải lúc nào cũng đúng. Đôi khi nó sinh ra những đoạn code trông hợp lý nhưng sai logic, như xử lý state nhân vật chưa đúng hoặc thiếu điều kiện va chạm, khiến lỗi chỉ xuất hiện khi chơi thử. Việc lần ngược các lỗi này khiến tôi tốn khá nhiều thời gian.

Dù vậy, trong phần lớn trường hợp, Copilot đoán đúng chính xác điều tôi định viết. Khi tôi đang xây dựng các đoạn code quen thuộc như xử lý input, cập nhật vị trí nhân vật theo frame, hay gọi animation tương ứng với hành động, AI thường hoàn thành rất nhanh và khá chính xác. Điều này giúp tôi giảm đáng kể thời gian gõ những đoạn code lặp đi lặp lại trong quá trình làm game.

Điều quan trọng nhất là tôi vẫn phải biết rõ mình đang làm gì. Copilot không hề thay đổi cách tôi tư duy về gameplay, kiến trúc hệ thống hay cảm giác chơi. Nó chỉ giúp tôi viết code nhanh hơn. Vì AI thường chỉ hoàn thành phần còn lại của dòng code hoặc một khối logic nhỏ mà tôi đang chủ động viết, nên mọi thứ vẫn nằm hoàn toàn trong tầm kiểm soát. Tôi nhìn thấy từng dòng code được sinh ra và luôn hiểu rõ nó đang làm gì, không có cảm giác bị “mất lái” trong quá trình phát triển game.

Đó là một cú tăng năng suất nhỏ, nhưng tương đối an toàn. Nếu tạm gác lại các tranh cãi đạo đức xoay quanh AI, thì Copilot trong bối cảnh lập trình game gần như là một công cụ “bật lên là dùng”. Nó không yêu cầu thay đổi cách làm game, không ép buộc quy trình mới, và cũng không khiến tôi phải suy nghĩ quá nhiều trước khi sử dụng.


Khi lập trình dựa trên prompt xuất hiện

Sau đó, mọi thứ bắt đầu thay đổi.

Lập trình “prompt first”  hay còn gọi là lập trình dạng agent xuất hiện. Trước đây, bạn có thể hỏi ChatGPT để xin ý tưởng code trong một ngữ cảnh rất rời rạc. Nhưng giờ đây, các IDE hiện đại đã được thiết kế để cung cấp toàn bộ context của project cho AI, kèm theo giao diện cho phép áp dụng trực tiếp các thay đổi mà AI đề xuất vào codebase.

Điều này khiến AI trở nên cực kỳ mạnh và cực kỳ tiện lợi.

Tuy nhiên, đây cũng là lúc workflow của lập trình viên bắt đầu thay đổi theo cách mà không phải ai cũng thích. Ban đầu, tôi chọn đứng ngoài quan sát. Tôi nghe đủ mọi ý kiến trái chiều:

  • Có người nói AI sẽ sớm khiến lập trình viên trở nên dư thừa
  • Có người khẳng định AI chỉ tạo ra code rác, không thể dùng cho sản phẩm thật

Ngày qua ngày, tôi nhận ra rằng nếu cứ để người khác quyết định suy nghĩ của mình về AI, tôi sẽ không bao giờ thực sự hiểu nó. Thế là tôi quyết định tự thử.

Sau vài tháng sử dụng AI theo kiểu prompt-first cho cả project cá nhân lẫn công việc chuyên môn, tôi có khá nhiều suy nghĩ — bao gồm những điều khiến tôi bất ngờ, những cảnh báo cần chú ý và cả những khuyến nghị rất thực tế.


AI tạo code: một cú thay đổi mô hình mà lập trình viên “bản năng là ghét”

Sự thay đổi lớn nhất mà AI mang lại không nằm ở chất lượng code, mà nằm ở cách code được tạo ra.

Thay vì mở file và gõ từng dòng, lập trình viên giờ đây được đưa cho một giao diện mới: một ô prompt. Bạn mô tả thứ mình muốn, AI tạo ra code, rồi trả lại cho bạn kết quả dưới dạng diff — danh sách những gì đã được thêm, sửa hoặc xóa trong project.

Nghe có vẻ quen thuộc, nhưng trải nghiệm thì hoàn toàn khác.

Điều khó chịu nhất là: tỷ lệ thời gian dành cho việc review code tăng lên rõ rệt, trong khi thời gian tự tay viết code giảm xuống.

Review code vốn là một phần không thể thiếu trong nghề lập trình — để làm việc nhóm, để debug, để hiểu lại code cũ. Nhưng nói thẳng ra, rất ít lập trình viên thực sự yêu thích công việc này. Phần lớn chúng ta chọn nghề này vì muốn tạo ra thứ gì đó bằng chính tay mình, không phải để liên tục đọc và đánh giá code do “ai khác” viết.

Lập trình viên quen với mối quan hệ rõ ràng giữa input và output. Cùng một dữ liệu đầu vào, hệ thống phải cho ra cùng một kết quả. AI thì không như vậy. Nó có thể thay đổi hành vi theo thời gian, theo phiên bản, thậm chí theo cách bạn diễn đạt prompt. Việc phụ thuộc vào một thứ khó đoán như vậy dễ khiến lập trình viên cảm thấy mất kiểm soát.

Kết hợp với những lo ngại đạo đức xoay quanh AI, không khó hiểu khi nhiều lập trình viên chọn cách… tránh xa hoàn toàn.

II. Vì sao AI – dù đầy bất cập – vẫn có thể cải thiện năng suất và trải nghiệm lập trình

Vậy nếu AI làm tăng khối lượng review, khiến lập trình viên cảm thấy mất kiểm soát và thậm chí xa rời việc “viết code thật sự”, thì vì sao ngày càng nhiều người vẫn lựa chọn dùng nó?

Câu trả lời ngắn gọn là: vì trong nhiều trường hợp, nó thực sự hữu ích.

Khi được dùng đúng chỗ, AI có thể giúp lập trình viên tiết kiệm rất nhiều thời gian cho những công việc ít mang lại giá trị học hỏi, từ đó tập trung nhiều hơn vào những phần đòi hỏi tư duy sâu và sự tinh chỉnh cẩn thận — nơi con người thực sự tạo ra khác biệt.

AI đặc biệt phù hợp để:

  • Dựng khung ban đầu cho một phần của dự án
  • Tạo dữ liệu giả hoặc viết script xử lý dữ liệu
  • Thử nghiệm nhanh nhiều phương án cho một bài toán
  • Đóng vai trò như một “người đối thoại” để trao đổi ý tưởng

Một ví dụ thực tế

Trong một dự án game cá nhân, tôi xây dựng hệ thống loot với mục tiêu không chỉ “rơi đồ” mà còn phải tạo cảm giác thỏa mãn, công bằng và đủ bất ngờ.

Thách thức lớn nhất là cân bằng tỷ lệ rơi: quá cao thì vật phẩm mất giá trị, quá thấp lại khiến người chơi nản. Bài toán càng khó khi mỗi kẻ địch, khu vực và giai đoạn đều cần tỷ lệ khác nhau.

Câu hỏi mấu chốt là: nên đảm bảo tính ngẫu nhiên tuyệt đối, hay điều chỉnh để người chơi sớm nhận được vật phẩm hiếm sau nhiều lần thất bại?

Để tìm ra điểm cân bằng, tôi cần thử nghiệm hàng nghìn lượt rơi vật phẩm trong nhiều kịch bản khác nhau: người chơi đánh nhanh hay chậm, tiêu diệt nhiều hay ít kẻ địch, và chơi liên tục trong thời gian dài. Nếu làm thủ công, việc này gần như không khả thi.

Thay vì vậy, tôi nhờ AI viết một script mô phỏng hàng loạt lượt chơi offline. Script này tự động sinh dữ liệu rơi vật phẩm theo nhiều cấu hình tỷ lệ khác nhau, ghi lại số lần rơi của từng loại item và phân tích mức độ chênh lệch giữa người chơi “may mắn” và “kém may”.

Nhờ các kết quả này, tôi nhanh chóng nhận ra rằng việc giữ tỷ lệ rơi hoàn toàn cố định tạo ra trải nghiệm rất thất thường. Từ đó, tôi điều chỉnh thiết kế theo hướng thêm cơ chế “bù xui” (pity system) một cách tinh tế, sao cho người chơi vẫn cảm thấy ngẫu nhiên, nhưng không rơi vào trạng thái chơi lâu mà không nhận được phần thưởng đáng giá.

Điều quan trọng là tôi không giao quyền thiết kế hệ thống loot cho AI. AI chỉ giúp tôi mô phỏng, thống kê và nhìn rõ hậu quả của từng lựa chọn. Quyết định cuối cùng về việc phần thưởng có công bằng, hấp dẫn và phù hợp với nhịp chơi hay không vẫn hoàn toàn do tôi chịu trách nhiệm với tư cách là người thiết kế và lập trình game.

Một ví dụ khác

Trong một dự án khác, tôi cần chuyển đổi dữ liệu item áo, quần, mũ… từ các file thiết kế sang định dạng JSON để engine sử dụng, đồng thời tạo ra cấu trúc dữ liệu tương ứng cho code gameplay. Thay vì làm thủ công, tôi để AI viết một script chuyển đổi dữ liệu.

Ưu điểm lớn nhất của cách này là script hoặc chạy đúng, hoặc báo lỗi ngay lập tức, nên việc kiểm tra rất rõ ràng. AI không trực tiếp chỉnh sửa dữ liệu gốc mà chỉ sinh ra dữ liệu mới, vì vậy gần như không có rủi ro làm hỏng dữ liệu ban đầu.

Nhờ đó, tôi tiết kiệm được nhiều thời gian và có một cấu trúc dữ liệu thống nhất để sử dụng xuyên suốt toàn bộ codebase của game.

III. Mặt tối của lập trình với AI: con dốc trơn trượt mà lập trình viên rất dễ trượt chân

Bên cạnh những lợi ích rất thật, lập trình với AI cũng có một mặt tối rõ ràng. Và điều nguy hiểm nhất không nằm ở việc AI viết sai code, mà nằm ở cách nó âm thầm làm thay đổi thói quen và năng lực của người dùng.

AI có thể khiến bạn “mềm” đi

Mỗi dòng code mà AI viết thay cho bạn là một dòng code mà bạn không trực tiếp suy nghĩ, không trực tiếp gõ và không trực tiếp giải quyết vấn đề. Điều đó đồng nghĩa với việc bạn đang bỏ lỡ cơ hội luyện tập kỹ năng của chính mình.

Nếu bạn để AI đảm nhận quá nhiều phần trong công việc hằng ngày, đặc biệt là những phần cốt lõi, thì việc kỹ năng suy giảm chỉ là vấn đề thời gian.

Vì vậy, việc lựa chọn phần nào giao cho AI, phần nào giữ lại cho bản thân trở nên cực kỳ quan trọng. Với những công việc mang tính lặp lại, ít giá trị học hỏi, hoặc đơn giản là những phần mà bạn không cần phải ở trạng thái “đỉnh cao phong độ”, việc để AI hỗ trợ là hợp lý.

Nhưng với những phần quyết định chất lượng sản phẩm — kiến trúc hệ thống, logic cốt lõi, giao diện đòi hỏi độ chính xác cao — việc phụ thuộc vào AI có thể khiến bạn đánh mất lợi thế lớn nhất của mình: khả năng tư duy và cảm nhận của một lập trình viên giàu kinh nghiệm.

Khi công cụ dần biến thành cái nạng

AI rất dễ gây nghiện.

Khi bạn nhận được kết quả “tạm ổn” chỉ bằng vài dòng prompt, não bộ sẽ học cách tìm đến AI trước khi tự mình suy nghĩ. Theo thời gian, bạn bắt đầu prompt nhiều hơn nhưng cung cấp ít ngữ cảnh hơn, và kỳ vọng AI sẽ tự “đoán” phần còn lại.

Điều này dẫn đến những vòng lặp vô nghĩa:
AI tạo ra kết quả không đúng → bạn prompt lại một cách mơ hồ → kết quả vẫn không cải thiện.

Một ví dụ điển hình là khi GitHub cho phép gán issue trực tiếp cho Copilot để AI tạo pull request công khai. Đã có những trường hợp lập trình viên phản hồi AI bằng những câu như “nó vẫn không chạy”, một cách phản hồi gần như vô nghĩa đối với một hệ thống cần ngữ cảnh rõ ràng để hoạt động hiệu quả.

Nếu bạn thấy mình đang rơi vào trạng thái đó, đó là tín hiệu rất rõ ràng: hãy dừng lại. Đừng tiếp tục prompt trong vô thức. Thay vào đó, hãy quay về đọc code, viết code, và xử lý vấn đề bằng tay. AI nên là công cụ hỗ trợ, không phải là thứ bạn dựa hoàn toàn vào.

AI có thể làm hỏng quá trình học — nếu bạn để nó làm vậy

Nhiều nghiên cứu đã chỉ ra rằng việc sử dụng AI có thể làm giảm khả năng ghi nhớ và học sâu, bởi vì bạn không trải qua quá trình vật lộn để hiểu và giải quyết vấn đề.

Tuy nhiên, trải nghiệm cá nhân của tôi cho thấy điều này không hoàn toàn đúng trong mọi trường hợp. AI cũng có thể trở thành một công cụ học tập rất tốt — nhưng chỉ khi bạn chủ động sử dụng nó theo cách đó.

Điều này đòi hỏi bạn phải:

  • Thực sự đọc và hiểu code mà AI tạo ra
  • Tra cứu những khái niệm, API hoặc cú pháp mà bạn chưa từng thấy
  • Không ngần ngại nghi ngờ và kiểm chứng

Chính những khoảnh khắc đó lại trở thành cơ hội học tập. Nhưng điều này chỉ xảy ra khi bạn không bấm ‘Accept’ một cách vô thức.


Tất cả phụ thuộc vào cách bạn chọn làm việc với AI

Điểm mấu chốt ở đây là: AI không tự động tốt hay xấu. Nó khuếch đại cách bạn làm việc hiện tại.

Nếu bạn vốn đã có xu hướng vội vàng, thiếu suy nghĩ và muốn tìm đường tắt, AI sẽ khiến những điểm yếu đó trở nên rõ ràng hơn. Nhưng nếu bạn có tư duy có hệ thống, biết chọn lọc và có kỷ luật, AI có thể trở thành một công cụ cực kỳ mạnh.

Bạn có thể rất nhanh rơi vào trạng thái phụ thuộc hoàn toàn vào AI. Nhưng điều đó chỉ xảy ra nếu bạn cho phép.

IV. Cách tiếp cận tỉnh táo với AI và vị trí đúng của nó trong nghề lập trình

AI vừa có những khả năng rất ấn tượng, vừa có những giới hạn và hệ quả không thể xem nhẹ. Hai điều này không loại trừ lẫn nhau.

Những người phản đối AI thường chỉ ra những lần AI viết code sai, bịa API hoặc tạo ra những giải pháp ngớ ngẩn, rồi lấy đó làm bằng chứng rằng AI không đáng tin và không nên dùng. Nhưng thực tế, rất nhiều công cụ chúng ta sử dụng hằng ngày cũng có sai sót. Ứng dụng bản đồ trên điện thoại đôi khi chỉ đường sai, khiến ta bực bội, nhưng điều đó không khiến chúng ta quay lại dùng bản đồ giấy. Lợi ích tổng thể mà nó mang lại vẫn vượt trội hơn rất nhiều.

Ở chiều ngược lại, những người quá lạc quan về AI lại thường bỏ qua những tác động dài hạn đến kỹ năng, thói quen và cách tư duy của lập trình viên. Nếu xem AI như một giải pháp thay thế hoàn toàn cho con người, sớm muộn gì người dùng cũng phải trả giá bằng chính năng lực của mình.

Điểm mấu chốt không nằm ở việc chọn phe, mà nằm ở việc bạn sử dụng AI với mức độ hiểu biết và kỷ luật đến đâu.


Hãy thử AI một cách nghiêm túc, không định kiến

Nếu lập trình là con đường sự nghiệp của bạn, việc ít nhất tự mình thử nghiệm AI là điều rất quan trọng. Không phải để chạy theo xu hướng, mà để hiểu rõ nó có thể — và không thể — làm được gì trong bối cảnh công việc của bạn.

Trong lịch sử, đã có những người kiên quyết giữ lại thước trượt khi máy tính điện tử xuất hiện, hay chọn không dùng Internet dù thế giới xung quanh thay đổi nhanh chóng. Với một số người, đó có thể là lựa chọn phù hợp. Nhưng nếu họ chưa từng thực sự cân nhắc phương án khác, họ cũng sẽ không bao giờ biết được tiềm năng mà mình đã bỏ qua.

https://vnexpress.net/ai-co-the-thay-the-lap-trinh-vien-su-that-ngay-tan-coding-ai-co-the-thay-the-lap-trinh-vien-su-that-ngay-tan-coding-ai-va-ngay-tan-cua-lap-trinh-vien-4855795.html

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *