AI và tương lai của lập trình viên: 'Có, và…' — lời khuyên từ một giảng viên khoa học máy tính

Công nghệ08 tháng 10, 2026·8 phút đọc

Giáo sư Carson Gross (Đại học Montana State) trả lời câu hỏi ngày càng phổ biến: 'Liệu có nên theo nghề lập trình khi đã có AI?' Câu trả lời của ông là 'Có, và…' — nghề lập trình vẫn khả thi, nhưng người học cần viết code bằng tay để phát triển trực giác, và các kỹ năng như giao tiếp, kiến trúc hệ thống sẽ ngày càng quan trọng.

AI và tương lai của lập trình viên: "Có, và…"

Trong bối cảnh các công cụ AI ngày càng có khả năng sinh code, câu hỏi "Liệu có nên học lập trình nữa không?" xuất hiện ngày càng nhiều. Giáo sư Carson Gross — giảng viên khoa học máy tính tại Đại học Montana State, tác giả của thư viện HTMX — đưa ra câu trả lời ngắn gọn nhưng đầy đủ: "Có, và…". Bài viết của ông phân tích cả lý do lạc quan lẫn những cảnh báo cụ thể dành cho lập trình viên trẻ.

"Có" — lập trình vẫn là nghề đáng theo đuổi

Theo Gross, lập trình máy tính về bản chất xoay quanh hai việc:

  • Giải quyết vấn đề bằng máy tính
  • Học cách kiểm soát độ phức tạp trong khi giải quyết những vấn đề đó

Ông cho rằng rất khó tưởng tượng một tương lai mà khả năng giải quyết vấn đề bằng máy tính và kiểm soát độ phức tạp lại trở nên ít giá trị hơn hiện nay. Vì vậy, lập trình vẫn sẽ là một nghề khả thi ngay cả khi các công cụ AI phát triển mạnh.

"Bạn phải tự viết code"

Điểm cảnh báo quan trọng nhất của Gross hướng đến lập trình viên junior. Ông xem AI là mối nguy hiểm lớn với nhóm này vì nó có thể sinh code hiệu quả cho nhiều bài toán.

"Có, AI có thể sinh code cho bài tập này. Đừng để nó làm thay. Bạn phải tự viết code."

Nếu lập trình viên junior không học viết code mà chỉ sinh code, họ đánh mất cơ hội phát triển hiểu biết trực giác về code — thứ chỉ có được khi thực sự lao vào làm việc. Gross nhấn mạnh: không viết code thì sẽ không thể đọc code hiệu quả, và khả năng đọc code sẽ càng có giá trị trong tương lai lập trình dựa trên AI.

Ông gọi tình huống nguy hiểm này là "Cái bẫy của phù thủy tập sự" — tạo ra những hệ thống mình không hiểu và không kiểm soát được.

Liệu "code → prompt" có giống "assembly → ngôn ngữ bậc cao"?

Nhiều người ví việc chuyển từ ngôn ngữ bậc cao sang code do AI sinh ra giống như bước chuyển từ assembly sang ngôn ngữ bậc cao. Gross không đồng ý với so sánh này:

  • Trình biên dịch mang tính xác định cao, trong khi công cụ AI hiện tại thì không. Với một vòng lặp for hay câu lệnh if, bạn có thể dự đoán khá chắc chắn assembly sinh ra trên một kiến trúc máy cụ thể. Điều tương tự không đúng với giải pháp LLM cho một prompt nhất định.
  • Ngôn ngữ bậc cao loại bỏ nhiều độ phức tạp ngẫu nhiên, chủ yếu để lại độ phức tạp cần thiết. Code do LLM sinh ra thường không loại bỏ độ phức tạp ngẫu nhiên, thậm chí bổ sung đáng kể do chọn cách tiếp cận không phù hợp, đi đường tắt, v.v.
  • Nếu bạn không đọc được code, làm sao nhận ra điều đó? Và muốn đọc được code thì bạn phải viết code.

AI là một trợ giảng tuyệt vời

Gross khuyến khích sinh viên dùng AI như một trợ giảng hiệu quả, không phải máy sinh code. Khi học lập trình, một trong những khó khăn lớn nhất là bị "tắc" — không nhìn ra mẹo giải quyết hay thậm chí không biết bắt đầu từ đâu.

Tệ hơn là tắc vì độ phức tạp ngẫu nhiên: không biết làm việc với một tool chain cụ thể, thậm chí không biết tool chain là gì. Đây không phải vấn đề của người học mà là vấn đề của môi trường, và nó thường khiến người ta bỏ ngang ngành khoa học máy tính.

AI có thể giúp vượt qua những rào cản này. Gross thậm chí chia sẻ một file AGENTS.md để cấu hình coding agent hoạt động như một trợ giảng tốt, thay vì máy sinh code, và khuyến khích sinh viên dùng AI theo cách đó.

Những kỹ năng sẽ trở nên quan trọng hơn

Gross tin AI sẽ thay đổi lập trình, nhưng không kịch tính như nhiều người nghĩ. Việc gõ code thuần túy có thể mất dần giá trị tương đối, và các kỹ năng khác sẽ trở nên quan trọng hơn:

  • Kỹ năng giao tiếp: khả năng viết, suy nghĩ và truyền đạt rõ ràng với cả LLM lẫn con người. Đọc sách, viết blog, viết tiểu luận là những cách rèn luyện hữu ích.
  • Hiểu biết về kinh doanh: chuyển bớt năng lượng trí tuệ sang việc hiểu doanh nghiệp (hoặc vai trò trong cơ quan nhà nước). Lập trình là giải quyết vấn đề bằng máy tính, và doanh nghiệp thì có rất nhiều vấn đề như vậy.
  • "Kiến trúc" hệ thống: dù Gross có chút hoài nghi với thuật ngữ "kiến trúc sư phần mềm", ông cho rằng khả năng tổ chức các hệ thống phần mềm lớn và kiểm soát độ phức tạp của chúng sẽ ngày càng quan trọng.
  • Sử dụng LLM hiệu quả: một kỹ năng rõ ràng đang lên, dù cách định nghĩa còn phụ thuộc vào trình độ kinh nghiệm.

Lời khuyên cho lập trình viên senior và junior

Senior

Lập trình viên senior có kinh nghiệm từ thời tiền AI đang ở vị thế tốt để dùng LLM hiệu quả: họ biết code "tốt" trông như thế nào, có kinh nghiệm xây hệ thống lớn và biết điều gì quan trọng. Nguy hiểm lớn nhất là ngừng lập trình hoàn toàn và bị "mục não" — đặc biệt là khi bắn prompt rồi bị cuốn vào vòng xoáy lướt vô tận trong lúc chờ.

Gross cho biết ông thường dùng LLM để:

  • Phân tích code hiện có để hiểu rõ hơn, tìm vấn đề và điểm không nhất quán
  • Sắp xếp suy nghĩ cho các dự án lớn
  • Sinh những đoạn code tương đối nhỏ
  • Sinh code mình không thích viết (ví dụ biểu thức chính quy, CSS)
  • Sinh demo/code thăm dò có thể vứt bỏ
  • Gợi ý test cho một tính năng

Ông tránh dùng LLM để sinh giải pháp hoàn chỉnh cần duy trì lâu dài, và không bao giờ để LLM thiết kế API cho hệ thống mình đang xây.

Junior

Với junior, Gross nhắc lại: bạn phải tự viết code. Cám dỗ "vibe coding" rất lớn, nhưng cần chống lại. Đồng nghiệp có thể vibe nhanh hơn, và bạn có thể bị chê là chậm — nhưng đây là tình huống tạm thời. Các công ty sẽ sớm nhận ra rằng vibe coding tốc độ gây bùng nổ độ phức tạp tệ hơn so với lập trình kỹ lưỡng, được hiểu rõ.

AI có thể giúp junior rút ngắn con đường lên senior bằng cách loại bỏ độ phức tạp ngẫu nhiên — hiểu hình dạng codebase, biết API và kỹ thuật khả dụng, hiểu hệ thống build hay ngôn ngữ. Nhưng một lần nữa: bạn phải viết code. Và các công ty: hãy để junior viết code.

Tìm việc trong bối cảnh hiện tại

Gross thừa nhận thị trường việc làm lập trình hiện đang rất xấu, và nhiều sinh viên CS giỏi gặp khó khăn. Ông tin đây là tình trạng tạm thời — thị trường lập trình mang tính chu kỳ với các giai đoạn bùng nổ và suy thoái.

Lời khuyên cụ thể của ông:

  • Các trang tuyển dụng trực tuyến gần như vô ích, đặc biệt với junior. Chúng như một cuộc xổ số. Dùng thì được vì miễn phí, nhưng đừng đầu tư nhiều thời gian.
  • Nguyên tắc bốn chữ F: Family, Friends & Family of Friends (Gia đình, Bạn bè & Bạn của gia đình). Dùng quan hệ cá nhân để tìm vị trí ở những công ty mà bạn có lợi thế cạnh tranh là quen người trong công ty. Gia đình là mạnh nhất, bạn bè cũng tốt, bạn của gia đình yếu hơn nhưng vẫn đáng hỏi.
  • Không cần gia đình làm ở Google. Gần như mọi công ty trên 100 người đều có nhóm phát triển phần mềm, dù không gọi tên như vậy. Gross kể về một sinh viên khó tìm việc, hóa ra bố mẹ làm ở Costco corporate — và ông nói đó chính là tấm vé vào một công ty tốt, có thể bắt đầu từ vai trò analyst rồi phát triển.

Kết luận

Gross vẫn cho rằng theo đuổi lập trình là ý tưởng tốt. Thị trường hiện tại xấu, nhưng ông tin điều đó tạm thời. Cách lập trình đang thay đổi, và lập trình viên nên xây dựng các kỹ năng ngoài việc gõ code thuần túy — điều vốn luôn là ý hay.

"Tôi không nghĩ lập trình đang thay đổi kịch tính như một số người khẳng định. Những nền tảng của lập trình — đặc biệt là viết code tốt và kiểm soát độ phức tạp — sẽ mãi quan trọng."

Và lời nhắn gửi tới các công ty: hãy để lập trình viên junior viết ít nhất một phần code. Điều đó có lợi cho chính các bạn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗