Chỉ cần nhờ trợ lý AI viết một ứng dụng ghi chú, một công cụ lấy dữ liệu web hay một hàm sắp xếp, vài giây sau bạn đã có code chạy được. Vì vậy, người mới bắt đầu có lý do để hỏi: AI viết code được rồi thì học lập trình làm gì nữa?

Câu trả lời ngắn: AI thay đổi cách code được viết ra, chứ không thay đổi ai chịu trách nhiệm cho đoạn code đó. Vẫn phải có người quyết định chương trình cần làm gì, kiểm tra code có làm đúng như vậy không, và sửa khi nó hỏng. Đó chính là kỹ năng lập trình. Với người có kỹ năng này, AI giúp họ làm nhanh hơn chứ không làm họ trở nên thừa.

1. AI viết code, nhưng phải có người biết code đó đúng hay sai

Code do AI viết thường trông rất hợp lý. Phần lớn thời gian nó đúng thật, và chính vì vậy mà những chỗ sai rất dễ lọt qua. Đây là một câu trả lời điển hình khi bạn yêu cầu "viết hàm Python tính trung bình của một danh sách":

def average(nums):
    return sum(nums) / len(nums)

print(average([72, 88, 95, 64]))  # 79.75
print(average([]))                # ZeroDivisionError: division by zero

Hàm chạy đúng với ví dụ, nhưng sẽ lỗi ngay khi có một học sinh chưa có điểm nào. Nếu đọc được Python, bạn thấy lỗi này trong mười giây; nếu không, bạn sẽ không bao giờ thấy. Muốn sửa còn cần một quyết định mà chỉ bạn đưa ra được: danh sách rỗng thì trả về 0, không trả về gì, hay báo lỗi? Điều đó phụ thuộc vào ứng dụng của bạn, không phụ thuộc vào code.

def average(nums):
    if not nums:
        return None  # no scores yet: the caller decides what to show
    return sum(nums) / len(nums)

Hãy dán cả hai phiên bản vào trình biên dịch Python online và chạy thử. Tự mình thấy lỗi xuất hiện là cách nhanh nhất để hiểu vì sao kỹ năng đọc code lại quan trọng.

2. Phần lớn công việc lập trình là đọc, kiểm thử và sửa

Gõ code mới chưa bao giờ là phần tốn thời gian nhất. Phần lớn thời gian dành cho việc hiểu code có sẵn, tìm xem vì sao chương trình lỗi và sửa mà không làm hỏng chỗ khác. AI giúp gõ nhanh hơn, nhưng không bỏ được các bước còn lại. Quy trình bây giờ trông như thế này:

AI viết bản nháp, còn mô tả, kiểm tra và sửa code vẫn là việc của bạn
AI viết bản nháp, còn mô tả, kiểm tra và sửa code vẫn là việc của bạn

Ba trong bốn bước đòi hỏi bạn hiểu code. Bỏ qua các bước đó thì bạn không phải đang lập trình cùng AI, mà đang cầu may.

3. Lập trình là giải quyết vấn đề, và prompt chính là đặc tả

Phần khó nhất của lập trình là biến một mục tiêu mơ hồ thành các bước chính xác: đầu vào là gì, các trường hợp biên (edge case, tức những tình huống đặc biệt như danh sách rỗng hay số âm) xử lý ra sao, thế nào là xong. Prompt (câu lệnh bạn viết cho AI) thực chất là một bản đặc tả viết bằng ngôn ngữ thường, và đặc tả mơ hồ thì code cũng mơ hồ. Người đã học lập trình viết prompt tốt hơn vì họ quen suy nghĩ theo bước, theo dữ liệu và theo trường hợp biên.

Hãy so sánh "làm trang đăng nhập" với "form đăng nhập giới hạn 5 lần sai mỗi phút, lưu mật khẩu bằng bcrypt và hiện cùng một thông báo dù sai email hay sai mật khẩu". Prompt thứ hai đến từ người biết chỗ nào có thể sai.

4. Bảo mật, dữ liệu và chi phí là trách nhiệm của bạn

Code do AI viết thường chạy tốt khi demo nhưng gặp sự cố khi chạy thật, theo những cách mà bấm thử giao diện không phát hiện được. Một ví dụ kinh điển là ghép câu lệnh SQL từ dữ liệu người dùng nhập vào, lỗi này gọi là SQL injection:

# Works in a demo, but a name like  ' OR '1'='1  returns every user
query = f"SELECT * FROM users WHERE name = '{name}'"
cursor.execute(query)

Phiên bản an toàn cũng ngắn như vậy, nhưng bạn phải hiểu vì sao nó quan trọng thì mới biết đường yêu cầu AI, hoặc nhận ra khi nó bị thiếu:

# The driver sends the value separately, so it is never run as SQL
cursor.execute("SELECT * FROM users WHERE name = %s", (name,))

Tương tự với việc lộ API key, code đọc cả bảng dữ liệu vào bộ nhớ, hay một vòng lặp O(n²) chạy ổn với 100 dòng nhưng quá chậm với một triệu dòng. Khi có sự cố, câu "AI viết đấy" không phải là lời giải thích mà ai chấp nhận.

5. AI nhân lên những gì bạn đã biết

AI giống một bộ khuếch đại. Người mới dùng AI có thể làm ra một bản demo nhỏ. Lập trình viên dùng AI có thể xây dựng, debug (tìm và sửa lỗi) rồi đưa ra một sản phẩm thật nhanh hơn trước rất nhiều. Khoảng cách giữa hai người chỉ rộng thêm chứ không hẹp lại.

AI làm tốt những gì, và bạn vẫn phải chịu trách nhiệm những gì
AI làm tốt những gì, và bạn vẫn phải chịu trách nhiệm những gì

Không có nền tảng, bạn sẽ dừng lại ở mức mà AI làm đúng ngay lần đầu. Khi dự án lớn hơn vài file, hoặc khi AI cứ "sửa" lỗi này bằng cách tạo ra lỗi khác, bạn phải hiểu code thì mới đi tiếp được.

6. Còn chuyện việc làm thì sao?

Công việc đang thay đổi: ít thời gian cho code lặp lại, nhiều thời gian hơn cho thiết kế, review (đọc và góp ý code), kiểm thử và kết nối các hệ thống. Các nhóm phát triển kỳ vọng lập trình viên dùng giỏi công cụ AI, mà dùng giỏi nghĩa là đánh giá được kết quả AI đưa ra. Những kỹ năng khó tự động hoá nhất lại là những thứ người mới hay muốn bỏ qua: debug, đọc code của người khác và giải thích vì sao một thiết kế là đúng.

Lập trình cũng hữu ích ở rất nhiều nghề ngoài phần mềm. Nhà phân tích, nhà khoa học, giáo viên, người làm marketing hay kỹ sư biết viết một script nhỏ, đọc hiểu code AI đưa cho và kiểm tra kết quả sẽ khai thác AI tốt hơn hẳn người không biết.

Bây giờ nên học gì?

Kiến thức nền tảng không thay đổi nhiều, nhưng thứ tự ưu tiên thì có. Hãy tập trung vào những kỹ năng giúp bạn điều khiển và kiểm tra AI:

Kỹ năngVì sao quan trọng khi dùng AI
Biến, điều kiện, vòng lặp, hàmCần để đọc được bất kỳ đoạn code nào AI viết
Cấu trúc dữ liệu (list, dictionary, set)Chọn đúng cấu trúc là quyết định thiết kế mà AI hay chọn sai
Đọc code và thông báo lỗiPhần lớn thời gian của bạn sẽ là xem lại code, không phải gõ code
DebugAI có thể gợi ý cách sửa, còn tìm ra nguyên nhân thật là việc của bạn
Kiểm thử (testing)Test là cách chứng minh code của AI làm đúng ý bạn
GitGiúp thử các thay đổi của AI một cách an toàn và hoàn tác khi cần
Cách web, cơ sở dữ liệu và API hoạt độngỨng dụng thật hầu như đều kết nối các phần này, và lỗi hay nằm ở đó
Bảo mật cơ bảnKiểm tra dữ liệu đầu vào, giữ bí mật key, phân quyền: không thể bỏ qua

Học lập trình cùng AI thế nào cho đúng

AI có thể là người kèm học tốt nhất bạn từng có, hoặc là cách để làm xong bài tập mà không học được gì. Khác biệt nằm ở cách bạn dùng:

Dùng AI như một người kèm học, không phải như đáp án
Dùng AI như một người kèm học, không phải như đáp án
  • Tự làm trước, rồi mới hỏi. Dành mười phút cho bài toán trước khi hỏi AI. Hãy xin gợi ý, đừng xin cả lời giải.
  • Hỏi vì sao. "Vì sao vòng lặp này bắt đầu từ 1?" dạy bạn nhiều hơn "sửa vòng lặp giúp tôi".
  • Đoán trước khi chạy. Đoán kết quả rồi mới chạy code. Mỗi lần đoán sai là một lỗ hổng kiến thức lộ ra.
  • Gõ lại và sửa code. Chép nguyên văn thì không học được gì. Hãy tự gõ lại lời giải rồi thay đổi nó: đổi đầu vào, thêm một tính năng, cố tình tạo lỗi.
  • Đọc thông báo lỗi trước. Hầu hết thông báo lỗi đều cho biết file, dòng và nguyên nhân. Đọc lỗi là kỹ năng mà AI không luyện thay bạn được.

Bạn có thể luyện tất cả những điều này ngay trên trình duyệt: viết và chạy code trong trình biên dịch Python online, tự kiểm tra bằng các bài tập lập trình có chấm điểm tự động, hoặc học theo lộ trình học từ cơ bản.

Bắt đầu viết Python

Câu hỏi thường gặp

AI có thay thế lập trình viên không?

AI thay thế một số việc trong lập trình, nhất là những việc lặp lại. AI không thay được việc quyết định làm ra cái gì, kiểm tra nó có chạy đúng không và chịu trách nhiệm cho nó. Lập trình viên biết dùng AI sẽ thay thế lập trình viên không biết dùng.

Bây giờ mới học lập trình có muộn không?

Không. Bắt đầu học bây giờ còn dễ hơn trước, vì AI có thể giải thích bất kỳ dòng code nào bạn chưa hiểu. Điều quan trọng là bạn học để hiểu code, chứ không chỉ để tạo ra code.

Nên học ngôn ngữ lập trình nào đầu tiên?

Python là lựa chọn phổ biến nhất: cú pháp dễ đọc, dùng được cho tự động hoá, xử lý dữ liệu và AI. JavaScript phù hợp nếu bạn muốn làm website. Các khái niệm bạn học được sẽ dùng lại được ở mọi ngôn ngữ khác.

Chỉ học lập trình với AI có được không?

Được, nếu bạn dùng AI như một người kèm học: hỏi giải thích và gợi ý, tự viết code và kiểm tra bằng bài tập. Nếu chỉ chép đáp án, bạn sẽ làm xong nhanh hơn nhưng cuối cùng chẳng biết gì.