Các lập trình viên bắt đầu sử dụng GitHub Copilot, ChatGPT, hoặc Cursor thường mô tả cùng một "giai đoạn trăng mật". Những tác vụ từng mất hai giờ giờ chỉ còn hai mươi phút. Các đoạn mã boilerplate biến mất chỉ với một phím tab. Tuy nhiên, chẳng bao lâu sau, một lời phàn nàn âm thầm bắt đầu xuất hiện trên các diễn đàn và kênh Slack: sự kiệt sức. Công cụ viết mã, nhưng có điều gì đó trong quá trình này vẫn vắt kiệt sức lực của bạn. Vấn đề không nằm ở bản thân mã nguồn. Mà nằm ở công việc tiêu thụ nó.

Điểm nghẽn mà không ai chuẩn bị trước

Trong nhiều thập kỷ, rào cản trong kỹ thuật phần mềm là tốc độ gõ phím. Dù bạn suy nghĩ nhanh đến đâu, ngón tay và kiến thức cú pháp của bạn vẫn là giới hạn trên. Các trợ lý AI đã phá bỏ giới hạn đó. Chúng có thể tạo ra hàng trăm dòng mã trên nhiều tệp trước khi bạn đọc xong khối mã đầu tiên. Tốc độ đó nghe có vẻ như sự tự do, nhưng nó lại tạo ra một sự tắc nghẽn không ngờ tới. Đột nhiên, phần chậm nhất trong quy trình chính là khả năng đọc, hiểu và xác minh những gì vừa xuất hiện trên màn hình. Bạn đã trở thành một người kiểm duyệt mã (code reviewer) toàn thời gian cho chính dự án của mình, ngoại trừ việc tác giả là một thuật toán không bao giờ ngủ và không bao giờ mệt mỏi.

Sự đảo ngược lao động này làm thay đổi bản chất của một phiên lập trình. Thay vì luân phiên giữa việc sáng tạo và xác minh nhẹ nhàng, bạn bị mắc kẹt trong chế độ xác thực kéo dài. Và xác thực không phải là việc đọc thụ động. Đó là sự phân tích chủ động và đầy sự nghi ngại. Mỗi tên biến, mỗi điều kiện biên và mỗi câu lệnh import đều cần phải vượt qua một bộ lọc tinh thần vì AI không phải chịu trách nhiệm cho kết quả cuối cùng. Nó sẽ không bị gọi dậy lúc 3 giờ sáng khi công việc trên môi trường production gặp lỗi.

Tại sao não bộ của bạn chạm ngưỡng giới hạn

Sự mệt mỏi này không phải là lười biếng. Đó là một sự va chạm có thể dự đoán được giữa đầu ra dồn dập và băng thông hạn chế của con người.

Quá tải khối lượng. Một gợi ý điển hình từ AI có thể bao gồm một React component hoàn chỉnh, logic định dạng (styling), các hàm tiện ích và unit tests, tất cả chỉ trong một lần quét. Bộ nhớ làm việc của bạn chỉ có thể chứa một lượng thông tin nhất định tại một thời điểm. Khi màn hình tràn ngập hàng chục dòng mã mới, não bạn phải nén chúng thành các mẫu trừu tượng hoặc quét chúng theo trình tự. Cả hai chiến lược này đều tiêu tốn sự chú ý. Sau khi xem xét vài khối mã như vậy, cảm giác mệt mỏi về tinh thần tương tự như đau mỏi cơ sẽ xuất hiện. Bạn đang đọc, nhưng bạn không còn thực sự thấu hiểu nữa.

Khoảng cách niềm tin. Mã do AI tạo ra trông rất đáng tin cậy. Thụt lề hoàn hảo. Tên biến hợp lý. Các chú thích thậm chí còn xuất hiện đúng chỗ. Nhưng sự chuyên nghiệp không đồng nghĩa với sự chính xác. Mã có thể sử dụng một API đã lỗi thời, bỏ lỡ một trường hợp biên liên quan đến đầu vào null, hoặc tạo ra một lỗ hổng SQL injection tinh vi. Vì bạn biết điều này có thể xảy ra, bạn không thể đọc lướt. Bạn phải kiểm tra mọi câu lệnh return và mọi nhánh logic với sự cảnh giác như một cuộc kiểm toán bảo mật. Mức độ soi xét đó, nếu duy trì trong nhiều giờ, sẽ cực kỳ tốn kém về mặt nhận thức. Đó cũng là lý do tại sao nhân viên kiểm tra an ninh tại sân bay phải làm việc theo các ca ngắn: sự cảnh giác duy trì liên tục sẽ suy giảm rất nhanh.

Sự không tương thích về quy trình làm việc. Hầu hết các môi trường phát triển và quy trình làm việc nhóm vẫn giả định nhịp độ "viết rồi kiểm tra" của con người. Cơ sở mã (codebase) phát triển theo tốc độ của con người, và việc kiểm duyệt mã diễn ra theo các đợt định kỳ. Khi AI được nhét vào quy trình đó, luồng công việc bị đứt gãy. Bạn tạo ra hai mươi dòng mã, dừng lại để xác minh, yêu cầu chỉnh sửa, xác minh lại, chuyển sang hàm tiếp theo, và rồi mất luôn mạch tư duy về kiến trúc tổng thể. Việc liên tục chuyển đổi ngữ cảnh giữa việc sáng tạo và xác thực đầy hoài nghi tạo ra sự ma sát. IDE của bạn được thiết kế cho những người viết, chứ không phải cho những biên tập viên đang làm việc dưới áp lực thời hạn liên tục.

Vòng lặp kiệt sức

Những yếu tố này nuôi dưỡng một chu kỳ ngày càng tồi tệ hơn khi ngày làm việc trôi qua.

Trợ lý AI đưa ra một bản triển khai tính năng chỉ trong vài giây. Sau đó, bạn dành mười lăm phút để truy vết các lệnh import, kiểm tra tính tương thích của kiểu dữ liệu (type compatibility) và chạy các mô phỏng tinh thần về các trường hợp biên. Đến vòng thứ ba hoặc thứ tư, sự tập trung của bạn mờ nhạt dần. Bạn bắt đầu chấp nhận những đoạn mã trông có vẻ "tạm ổn". Các lỗi bắt đầu lọt qua. Để bù đắp, bạn chậm lại, điều này vô tình triệt tiêu tốc độ mà bạn đã đạt được ngay từ đầu. Bạn kết thúc ngày làm việc với nhiều mã nguồn thô hơn bình thường nhưng lại ít tự tin vào nó hơn, kèm theo một cơn đau đầu cho thấy bạn đã làm việc vất vả hơn chứ không phải thông minh hơn.

Khi tốc độ trở nên nguy hiểm

Nếu mô hình này trở thành thói quen, thiệt hại sẽ vượt xa một buổi chiều tồi tệ.

Sự kiệt sức (burnout) đến một cách âm thầm. Nó xuất hiện dưới dạng cảm giác sợ hãi khi mở một dự án, hoặc sự mất khả năng nhìn vào một khối mã được tô màu pastel khác mà không cảm thấy khó chịu. Khi công cụ chính đáng lẽ ra phải giúp bạn lại trở thành nguồn cơn chính gây ra sự mệt mỏi, sự oán giận sẽ theo sau.

Tiếp theo là sự mai một kỹ năng. Khả năng chuyển đổi ý định thành cú pháp sẽ yếu đi khi bạn ngừng thực hiện nó. Bạn có thể vẫn thiết kế hệ thống tốt, nhưng sự nhạy bén ở mức độ chi tiết — như việc biết tại sao một cấu trúc vòng lặp nhất định cảm thấy không ổn, hoặc nhớ lại cách một thư viện cụ thể hoạt động khi chịu tải — sẽ mờ nhạt dần khi một lớp tự động hoàn thiện (autocomplete) xử lý các chi tiết đó. Theo thời gian, bạn có nguy cơ trở thành một người giám tuyển thụ động thay vì là một kỹ sư chủ động.

Tuy nhiên, mối nguy hiểm tức thời nhất là việc triển khai cẩu thả. Dưới áp lực phải duy trì tốc độ và sự kiệt sức sau nhiều giờ đọc kết quả đầu ra của máy, các lập trình viên đôi khi triển khai những mã nguồn mà họ chưa kiểm chứng đầy đủ.