Đừng ngây thơ tin rằng chỉ cần biết viết prompt là bạn đã làm chủ được cuộc chơi. AI thực chất là một lớp trừu tượng đầy rò rỉ (leaky abstraction): nó giúp bạn gõ code nhanh hơn, nhưng không giúp bạn hiểu hệ thống sâu hơn. Nếu không chịu học nền tảng lập trình, bạn sẽ không đủ khả năng thẩm định những gì máy nhả ra. Và rồi bạn rơi vào cái bẫy "Expert Novice" — mang dáng dấp một chuyên gia, nhưng rỗng tuếch về tư duy.
Lập trình viên không phải người thợ gõ phím. Khi hệ thống dính lỗi logic tiềm ẩn hoặc gặp một bài toán độc nhất, lớp trừu tượng của AI sẽ rò rỉ, và bạn đuối nước ngay nếu thiếu kiến thức cốt lõi. AI là bộ máy nội suy mô hình (pattern interpolator). Nó không có tư duy hệ thống để xử lý những vấn đề chưa từng xuất hiện trong dữ liệu huấn luyện.

"Nền tảng" thực ra là gì, và vì sao AI không thay được nó?
Nền tảng không phải là học thuộc cú pháp, mà là rèn một thói quen tư duy: "productive literalism" — tính chính xác tuyệt đối.
Máy tính cực kỳ máy móc; nó làm đúng những gì bạn nói, không phải những gì bạn nghĩ. Chuyển một yêu cầu mơ hồ thành chỉ dẫn logic không kẽ hở là kỹ năng chưa AI nào thay được. Nó gồm ba phần cụ thể: chia nhỏ bài toán trước khi viết dòng code nào, truy vết vì sao một kết quả sai thay vì để AI đoán hộ, và hiểu các hệ thống nối với nhau ra sao để bản thiết kế không vỡ khi mở rộng.

AI là "pattern interpolation": nó giỏi xào nấu các mẫu có sẵn, nhưng yếu ở những tác vụ đòi hỏi suy luận sâu hoặc đối mặt với hệ thống độc nhất. Lập trình thực thụ là bài tập về thích nghi và giải quyết vấn đề mới, còn AI thì lặp lại quá khứ. Bạn không thể nội suy để đi xuyên qua một sự cố chưa ai từng gặp.
Đây cũng là lý do AI được gọi là lớp trừu tượng rò rỉ tối thượng. Mọi lớp trừu tượng đều rò rỉ, và cách duy nhất để xử lý chỗ rò là hiểu cơ chế bên dưới. AI tiết kiệm cho bạn thời gian làm, nhưng không tiết kiệm thời gian học. Khi lớp trừu tượng vỡ, thứ còn lại là một hệ thống hỏng mà bạn không giải thích nổi.
Thị trường cũng đang phản ánh khoảng trống này: 5,2 triệu việc làm thuộc nhóm máy tính và toán học, nhưng chỉ 2,8 triệu người trong lực lượng lao động có bằng Khoa học Máy tính. Nghề này chưa bao giờ bị giới hạn bởi tấm bằng — nó bị giới hạn bởi số người thực sự kiểm soát được hệ thống bên dưới.
Kỹ năng của bạn ra sao khi để AI viết code?
Khi phó mặc phán đoán cho AI, bạn đang vay một khoản "nợ nhận thức" (cognitive debt). Nghiên cứu của Anthropic trên nhóm lập trình viên mới cho thấy nhóm dùng AI chỉ đạt 50% bài kiểm tra năng lực, so với 67% của nhóm tự viết code — chênh lệch gần hai bậc điểm. Khoảng cách lớn nhất nằm ở phần debug, thứ vốn là xương sống của nghề. AI sửa lỗi hộ bạn thì lỗi biến mất, nhưng vòng lặp gặp lỗi — chẩn đoán — xử lý, nơi trực giác debug được hình thành, cũng biến mất theo.

MIT Media Lab cảnh báo điều tương tự ở mức thần kinh. Trong một thí nghiệm viết luận có đo điện não đồ, mức kết nối não bộ giảm dần theo lượng hỗ trợ từ bên ngoài: nhóm dùng LLM có kết nối yếu nhất, nhóm không dùng công cụ mạnh nhất. Nhóm dùng LLM cũng tự nhận "quyền sở hữu" thấp với bài viết của mình, và tệ hơn ở việc trích lại chính đoạn họ vừa viết vài phút trước. Bạn có thể xong việc nhanh hơn, nhưng nhanh không đồng nghĩa với hiểu.
Đây chính là "ảo tưởng về năng lực". Bạn đi hết một tác vụ mà không nắm được logic vừa chạy qua tay mình, rồi tưởng rằng mình đã học được nó.
Nghịch lý của người mới: càng cần AI, càng dễ mắc kẹt
Những người hưởng lợi nhiều nhất từ LLM lại là dân lão làng — họ có đủ "gu" và sự hoài nghi nghề nghiệp tích lũy qua nhiều năm tự tay làm để lèo lái, thẩm định và bắt lỗi. Người mới thì ngược lại: họ được khuyến khích, đôi khi bị bắt buộc, dùng đúng những công cụ đòi hỏi thứ chuyên môn mà họ chưa có. Nghịch lý nằm ở chỗ công cụ đòi chuyên môn, nhưng lại cắt mất chính phần ma sát tạo ra chuyên môn đó.

Cách người mới học cùng LLM là một mô hình "học ngược": học trò dẫn dắt người thầy, thầy trả lời, rồi trò lại lái tiếp. Mô hình này rất mong manh, vì LLM cực nhạy với cách bạn đặt câu hỏi. Khi bước vào lãnh địa xa lạ, bạn không biết mình đang không biết gì, nên cũng không biết phải hỏi gì. Nó giống một chiếc la bàn luôn chỉ hướng bắc — bất kể bạn bảo hướng bắc nằm ở đâu.
Nghiên cứu của JetBrains trên các lập trình viên mới cho thấy nhóm dựa nhiều vào Copilot thường bỏ qua giai đoạn lập kế hoạch, bởi phần suy nghĩ đầu tiên đã có máy làm hộ. Họ kết thúc buổi làm với "ảo tưởng về năng lực" thay vì hiểu thật. Nhóm học tốt nhất lại là nhóm hạn chế hoặc bỏ hẳn AI — họ xây được "negative expertise", tức khả năng nhận ra và phớt lờ những gợi ý sai.
Thị trường lao động đã phản ứng. Việc làm cho lập trình viên 22–25 tuổi giảm gần 20% tính từ năm 2024, trong khi nhóm lớn tuổi hơn ở cùng doanh nghiệp vẫn tăng. Chính những vị trí đầu vào — nơi tạo ra ma sát cần thiết để hình thành tay nghề — lại là nhóm bị tự động hóa trước nhất.
Vì sao chính sự vật lộn mới tạo ra tay nghề?
Trong nghề này, ma sát không phải rào cản. Nó là tính năng. Tay nghề chỉ hình thành qua trải nghiệm, lặp lại và sai lầm — bạn phải hỏng thì mới nên. Người Đức có một từ cho thứ đó: Fingerspitzengefühl, cảm giác đầu ngón tay. Là cái phản xạ khiến một người liếc qua đoạn code và nghĩ "chỗ này kiểu gì cũng có chuyện".

Học lập trình giống học nấu ăn. Bạn có thể xem một đầu bếp giỏi làm việc cả tháng và hỏi đủ thứ, nhưng nếu chưa từng tự đứng bếp, bạn vẫn sẽ làm cháy miếng thịt đầu tiên. Code cũng vậy: những buổi truy vết một lỗi tối nghĩa không log, những lần nhận ra một cách viết chậm hơn cách kia, những lúc phải đập đi làm lại vì thiết kế không chịu nổi tải — đó mới là chỗ trực giác được đúc ra.
Cách bạn dùng công cụ quyết định kết quả, và có số liệu cho điều đó. Một nghiên cứu quy mô lớn của UPenn theo dõi 1.000 học sinh học toán với LLM: nhóm dùng AI như cái máy trả lời làm tệ hơn 17% so với nhóm chỉ có sách giáo khoa. Nhưng nhóm dùng bản "GPT Tutor" — hỏi trợ giúp rồi tự giải lại — làm tốt hơn 127% trong buổi luyện tập. Điểm chung là gánh nặng tư duy vẫn nằm ở người học. Chính Anthropic cũng kết luận rằng nỗ lực nhận thức, kể cả việc bị kẹt đến đau đớn, nhiều khả năng là điều kiện cần để đạt tới sự tinh thông.
Cái giá thật của việc ship code mình không đọc nổi
Gõ nhanh hơn không có nghĩa là làm tốt hơn. Một kỹ sư senior ở Silicon Valley từng chuyển hẳn sang để AI agent viết code thay mình, và mô tả nó thay đổi cả cách anh làm việc. Vài tháng sau, hai lần sản phẩm sập vì tính năng do AI sinh ra, và sếp nói thêm một lần nữa thì nghỉ việc. Vấn đề không phải AI viết code xấu — code nó viết trông rất hợp lý, nhưng giấu những lỗi cực khó phát hiện. Đọc hiểu code mình không tự viết vốn đã khó, nên bước rà soát đó rất dễ bị bỏ qua, nhất là khi cả đội đang chạy theo tốc độ.

Nguy hiểm hơn là sự mệt mỏi vì phê duyệt. Trong một thử nghiệm với hơn 40.000 lượt chơi và 409.000 quyết định duyệt hoặc từ chối, con người bỏ lọt khoảng một phần ba số lệnh nguy hiểm mà AI agent yêu cầu. Nhóm bị bỏ sót nhiều nhất là các lệnh vượt phạm vi — chẳng hạn đọc file cấu hình Kubernetes hay danh sách khóa AWS — với tỷ lệ lọt 35%. Riêng lệnh npm run analyze được duyệt tới gần 65%, dù nó có thể chạy bất cứ thứ gì được định nghĩa trong package.json.
Con số đáng lo hơn nằm ở dữ liệu thực tế: telemetry của Claude Code cho thấy người dùng duyệt khoảng 93% số lời nhắc xin quyền. Càng thấy nhiều lời nhắc, người ta càng ít đọc kỹ từng cái. Nếu bạn không giải thích được từng dòng code mình ship, bạn không phải kỹ sư của hệ thống đó — bạn là một rủi ro của nó.
Học cùng AI mà không đánh mất nền tảng
Chuyển AI từ vai "máy sinh code" sang vai "bạn tập đối kháng theo lối Socratic". Bắt nó giải thích khái niệm, rồi tự tay viết phần hiện thực. Trong nghiên cứu của Anthropic, những người đạt điểm cao nhất là nhóm hỏi khái niệm hoặc yêu cầu giải thích kèm theo code; nhóm điểm thấp là nhóm giao khoán cả cụm việc, hoặc để AI debug hộ.

Nhưng hãy tỉnh táo với chính con số 127% ở trên: nhóm GPT Tutor làm tốt hơn hẳn trong lúc luyện tập có hỗ trợ, còn khi vào bài kiểm tra không hỗ trợ, họ chỉ ngang điểm nhóm dùng sách giáo khoa. AI Tutor là công cụ hỗ trợ, không phải thần dược thay cho việc tự học. Các chế độ học có sẵn như Claude Code Learning and Explanatory mode hay ChatGPT Study Mode được thiết kế cho mục đích này, nhưng chúng vẫn tạo ra ảo giác (hallucination) như mọi tương tác khác. Nếu bạn không đủ trình thẩm định một đoạn code sinh ra, bạn cũng không đủ trình thẩm định một khái niệm sinh ra.
Bốn câu hỏi nên tự trả lời trước khi nhấn Approve:
- Nếu không có AI, tôi có tự làm được việc này không?
- Tôi đang dùng model để hiểu sâu hơn, hay chỉ để lấy đáp án nhanh hơn?
- Nếu phải rà soát lại, tôi có giải thích được đoạn output này và đối chiếu nó với tài liệu chính thống không?
- Đây là tác vụ lặp đi lặp lại, hay là việc đòi hỏi ra quyết định?
Ranh giới cần nhớ: nợ nhận thức là khi bạn giao nộp phán đoán và quyết định của mình; còn giao việc cơ học, nhàm chán cho máy thì chỉ là san sẻ tải nhận thức. Cái thứ nhất bào mòn bạn, cái thứ hai thì không.
Vậy nên bắt đầu từ đâu?
Đừng đốt cháy giai đoạn. Muốn học Java thì đừng khởi đầu bằng Spring Boot; muốn nắm JavaScript thì đừng bắt đầu từ React; muốn giỏi CSS thì đừng bắt đầu từ Tailwind. Hãy đi từ ngôn ngữ thuần và những nguyên lý cơ bản, vì bạn không debug nổi một hệ thống phân tán nếu chưa hiểu một request được gửi đi như thế nào.
Dùng AI cho phần cơ học lặp lại, nhưng giữ lại cho mình các quyết định về cấu trúc và chiến lược. Nghề này chưa bao giờ bị giới hạn bởi số người có bằng — nó bị giới hạn bởi số người còn giải thích được hệ thống của chính mình.
Tài liệu tham khảo
- How AI assistance impacts the formation of coding skills — Anthropic
- AI Coding will Prevent Expertise — Lars Faye
- On AI Coding and Its Discontents — Cal Newport
- Your Brain on ChatGPT: Project Overview — MIT Media Lab
- We are Changing our Developer Productivity Experiment Design — METR
- Humans in the loop miss a third of dangerous AI coding agent requests — The Register
- Economy — The 2026 AI Index Report, Stanford HAI
- Stop Telling Students Computer Science Is Dying — Inside Higher Ed
- Coding is dead? Teaching computer programming in the age of AI — UNESCO