Tâm sự thật lòng của kỹ sư: AI giúp tôi viết code, nhưng cũng khiến tôi dính mấy vố đau
AI viết code rốt cuộc có thực sự hữu ích không? Là một kỹ sư sử dụng mỗi ngày, tôi xin nói: Cực kỳ hữu ích, nhưng tôi cũng từng dính mấy vố đau điếng. Bài viết này sẽ bàn về những điểm nó thực sự giúp ích cho tôi, cùng với những khoảnh khắc "nhìn thì có vẻ đúng, mà chạy lên thì nổ tung".
Tôi đã viết code được hơn chục năm rồi. Hồi các trình soạn thảo AI mới ra mắt, tôi ôm sự hoài nghi. Kết quả là sau một năm sử dụng, giờ đây tôi không thể thiếu chúng — nhưng chính vì quá tin tưởng, tôi đã vấp phải vài cái bẫy khiến mình phải tăng ca đến tận nửa đêm. Bài viết này không thần thánh hóa cũng không dìm hàng, mà chỉ là trải nghiệm thực tế của một kỹ sư phần mềm.
Nó thực sự thay đổi thời gian "làm khung" (boilerplate) của tôi
Hãy nói về điểm tốt trước. Giá trị lớn nhất mà AI mang lại cho tôi không phải là viết ra những thuật toán siêu việt, mà là cắt giảm đi khoảng thời gian "nhàm chán nhưng bắt buộc phải có".
Viết code khung cho một API, file cấu hình, hàng loạt các thao tác CRUD lặp đi lặp lại, chuyển đổi dữ liệu từ định dạng này sang định dạng khác — những việc này tôi nhắm mắt cũng viết được, nhưng rất tốn thời gian và phiền phức. Giờ đây, khi sử dụng các trình soạn thảo AI như Cursor, tôi chỉ cần mô tả là nó tự sinh ra, việc của tôi là kiểm tra lại. Trước đây, những công việc kiểu này chiếm tới 30% thời gian trong ngày của tôi, giờ thì chưa đến 10%. Thời gian tiết kiệm được, tôi dùng để suy nghĩ về kiến trúc hệ thống và giải quyết những con bọ (bug) thực sự hóc búa.
Về điểm này, tôi phải thành thật thừa nhận rằng: AI không biến tôi thành một kỹ sư giỏi hơn, nhưng nó giải phóng tôi khỏi những công việc lặt vặt để làm những việc có giá trị cao hơn.
Cạm bẫy 1: Nó rất giỏi tạo ra vẻ "trông có vẻ đúng"
Bây giờ là đến phần đau đớn. Điểm nguy hiểm nhất trong code do AI viết là — khi đọc lên thì cực kỳ trôi chảy, cực kỳ hợp lý, nhưng rất có thể nó lại sai.
Lần tôi vấp ngã đau đớn nhất là khi nó đưa cho tôi một đoạn code xử lý ngày tháng, logic đẹp mắt, tên biến rõ ràng, tôi đọc qua thấy không vấn đề gì nên đã merge luôn. Kết quả là khi sang múi giờ khác thì hệ thống sập toàn tập, lỗi phát sinh trên môi trường production, khiến tôi nửa đêm phải bật dậy sửa. Nhìn lại thì con bug đó ẩn giấu trong một điều kiện biên rất nhỏ mà AI đã bỏ sót, còn tôi vì thấy nó "trông có vẻ chuyên nghiệp" nên đã không kiểm tra kỹ.
Bài học rút ra: Đồ do AI viết, cái nào càng trông có vẻ hoàn hảo thì càng phải review thật kỹ. Không phải nó không bao giờ sai, mà là nó "sai một cách cực kỳ tự tin".
Cạm bẫy 2: Nó không hiểu rõ bối cảnh của toàn bộ dự án
Cạm bẫy thứ hai là AI hiểu rất rõ "đoạn code này", nhưng thường lại không hiểu "toàn bộ hệ thống của bạn".
Nó có thể đưa cho bạn một đoạn code chuẩn xác về mặt kỹ thuật, nhưng lại hoàn toàn không phù hợp với quy ước (convention) của dự án; hoặc tạo ra một cái bánh xe lặp lại mà nhóm bạn đã có sẵn từ lâu, đơn giản là vì nó không biết hàm tiện ích (utility function) đó đã tồn tại. Những đoạn code "đúng cục bộ, lạc lõng tổng thể" này nếu tích tụ lại sẽ khiến dự án ngày càng rối rắm.
Thế nên, bây giờ tôi luôn nói rõ cho nó biết các quy ước của dự án và yêu cầu nó kế thừa những gì đã có, thay vì thả lỏng cho nó tự do phát huy.
Cạm bẫy 3: Quá phụ thuộc sẽ khiến cơ bắp teo tóp
Điểm này mang tính chủ quan nhiều hơn, nhưng tôi thực sự cảm nhận được điều đó. Có một dạo tôi quá phụ thuộc vào AI, đến mức những thứ cơ bản cũng lười tự suy nghĩ mà đem hỏi luôn. Kết quả là có lần phỏng vấn với bài toán trên bảng trắng (whiteboard), không có AI bên cạnh, tôi bị khựng lại — không phải là không biết làm, mà là quá lâu không "tự mình tư duy từ con số không" nên đã bị ngượng tay.
Bây giờ, tôi chủ động chừa lại một chút thời gian để "tự viết", đặc biệt là với phần logic cốt lõi và những thứ tôi muốn học hỏi. AI là công cụ để tăng tốc, chứ không phải để thay thế tư duy của tôi. Việc cân đối thế nào là tùy thuộc vào mỗi người.
Tôi đang sử dụng nó như thế nào?
Trải qua một năm, nguyên tắc của tôi rất đơn giản: Để AI làm những việc tôi biết làm nhưng không muốn tốn thời gian; tự mình làm những việc đòi hỏi phán quyết, sự thấu hiểu và những gì tôi muốn phát triển bản thân.
Code khung, chuyển đổi định dạng, tra cứu cú pháp, viết unit test — cứ vứt hết cho nó. Quyết định kiến trúc, tính bảo mật, logic cốt lõi, xử lý bug khó — tự mình làm, AI giỏi lắm chỉ làm quân sư thôi. Hãy luôn review từng dòng code do nó viết, đặc biệt là những dòng trông có vẻ hoàn hảo nhất.
AI làm cho việc viết code trở nên nhanh hơn, đó là sự thật. Nhưng nó cũng làm cho cái giá của việc "copy-paste mà không thèm hiểu" trở nên đắt đỏ hơn. Công cụ càng mạnh, người sử dụng càng phải tỉnh táo. Nếu muốn xem thêm các công cụ phát triển, bạn có thể tham khảo đề xuất công cụ lập trình AI.
Tình huống phổ biến: Làm việc nhóm và trình soạn thảo AI
Trong làm việc nhóm, trình soạn thảo AI có thể trở thành một công cụ cực kỳ hữu ích, đặc biệt là trong các dự án lớn. Tuy nhiên, các thành viên trong nhóm cần giao tiếp và phối hợp rõ ràng để đảm bảo rằng code do trình soạn thảo AI tạo ra tuân thủ các quy ước và tiêu chuẩn chung của đội ngũ. Ngoài ra, các thành viên cũng cần chú ý đến các lỗi hoặc sự thiếu nhất quán mà trình soạn thảo AI có thể tạo ra, đặc biệt là trong quá trình làm việc xuyên múi giờ hoặc giữa các hệ thống khác nhau.
Cách dùng nâng cao: Tùy chỉnh trình soạn thảo AI
Cùng với sự phát triển của các trình soạn thảo AI, giờ đây chúng ta có thể tùy chỉnh trình soạn thảo AI để đáp ứng các nhu cầu và quy ước cụ thể. Các kỹ sư có thể thiết lập các thông số và quy tắc của trình soạn thảo AI để nó sinh ra mã nguồn phù hợp hơn với nhu cầu của bản thân. Ví dụ, bạn có thể cài đặt để trình soạn thảo AI chỉ tạo ra các ngôn ngữ lập trình hoặc framework cụ thể, hoặc thiết lập để nó tuân theo các quy ước đặt tên hoặc phong cách viết code nhất định.
Lỗi thường gặp: Quá phụ thuộc vào trình soạn thảo AI
Quá phụ thuộc vào trình soạn thảo AI là một lỗi mà các kỹ sư thường mắc phải. Mặc dù trình soạn thảo AI có thể tiết kiệm thời gian và nâng cao hiệu suất, nhưng nó không thể thay thế phán quyết và tư duy của kỹ sư. Các kỹ sư cần giữ vững sự cảnh giác và tư duy phản biện, đặc biệt là khi xem xét mã nguồn do trình soạn thảo AI tạo ra. Hơn nữa, các kỹ sư cũng cần lưu ý xem kỹ năng và kiến thức của bản thân có bị mai mòn do quá phụ thuộc vào trình soạn thảo AI hay không.
Xu hướng tương lai: Tích hợp trình soạn thảo AI với trí tuệ nhân tạo
Trong tương lai, các trình soạn thảo AI có thể được tích hợp sâu hơn nữa với trí tuệ nhân tạo, giúp các kỹ sư sử dụng trình soạn thảo AI một cách hiệu quả hơn. Ví dụ, trình soạn thảo AI có thể học hỏi sở thích và quy ước của kỹ sư thông qua thuật toán máy học (machine learning), từ đó tạo ra mã nguồn phù hợp hơn với nhu cầu của họ. Thêm vào đó, trình soạn thảo AI cũng có thể tích hợp thêm nhiều tính năng hơn như tự động kiểm thử (auto-test) và gỡ lỗi (debugging), giúp các kỹ sư phát triển và triển khai phần mềm nhanh chóng hơn.
Lời khuyên cho các nhóm đối tượng khác nhau
Lời khuyên cho người mới bắt đầu là: Đừng sợ sử dụng trình soạn thảo AI, nhưng hãy luôn cảnh giác và giữ tư duy phản biện. Người mới có thể tận dụng trình soạn thảo AI để học kiến thức và kỹ năng cơ bản về lập trình, nhưng cần lưu ý không nên quá phụ thuộc vào nó. Lời khuyên cho các kỹ sư giàu kinh nghiệm là: Phải duy trì kỹ năng và kiến thức của bản thân, đừng để trình soạn thảo AI thay thế phán quyết và tư duy của chính mình. Các kỹ sư giàu kinh nghiệm có thể dùng trình soạn thảo AI để nâng cao hiệu suất và năng suất, nhưng cũng cần chú ý tránh lạm dụng nó. Lời khuyên cho các nhà quản lý nhóm là: Cần giao tiếp và phối hợp rõ ràng về phương thức và quy ước sử dụng trình soạn thảo AI giữa các thành viên, nhằm đảm bảo mọi người trong nhóm đều có thể sử dụng nó một cách hiệu quả.
Bảng so sánh: Ưu nhược điểm của trình soạn thảo AI
| Hạng mục | Ưu điểm | Nhược điểm |
|---|---|---|
| Năng suất | Nâng cao năng suất, tiết kiệm thời gian | Có thể dẫn đến sự phụ thuộc quá mức |
| Tính chính xác | Có thể tạo ra mã nguồn chính xác | Có thể phát sinh lỗi hoặc sự thiếu nhất quán |
| Đường cong học tập | Giúp người mới bắt đầu học lập trình | Có thể khiến người mới thiếu hụt kiến thức lập trình nền tảng |
| Làm việc nhóm | Nâng cao hiệu quả làm việc nhóm | Đòi hỏi sự giao tiếp và phối hợp rõ ràng |
Hiểu lầm phổ biến: Trình soạn thảo AI sẽ thay thế kỹ sư
Nhiều người hiểu lầm rằng trình soạn thảo AI sẽ thay thế công việc của các kỹ sư. Tuy nhiên, mục đích của trình soạn thảo AI là giúp các kỹ sư nâng cao hiệu suất và năng suất, chứ không phải để thay thế phán quyết và tư duy của họ. Các kỹ sư cần duy trì kỹ năng và kiến thức của bản thân, đồng thời phải tư duy phản biện đối với mã nguồn do trình soạn thảo AI tạo ra.
Các bước thiết thực: Cách sử dụng trình soạn thảo AI hiệu quả
Để sử dụng trình soạn thảo AI một cách hiệu quả, các kỹ sư cần tuân thủ các bước sau:
- Thiết lập rõ ràng các thông số và quy tắc cho trình soạn thảo AI.
- Kiểm tra kỹ lưỡng mã nguồn do trình soạn thảo AI tạo ra, đặc biệt là những dòng trông có vẻ hoàn hảo nhất.
- Duy trì kỹ năng và kiến thức của bản thân, không quá phụ thuộc vào trình soạn thảo AI.
- Sử dụng trình soạn thảo AI để nâng cao hiệu suất và năng suất, nhưng không để nó thay thế phán quyết và tư duy của chính mình.
Phát triển trong tương lai: Tích hợp giữa trình soạn thảo AI và kiểm thử tự động
Trong tương lai, các trình soạn thảo AI có thể được tích hợp sâu hơn với kiểm thử tự động, giúp các kỹ sư tận dụng công cụ này một cách hiệu quả hơn. Ví dụ, trình soạn thảo AI có thể học hỏi sở thích và thói quen của kỹ sư thông qua thuật toán máy học, từ đó tạo ra đoạn code đúng ý họ hơn. Ngoài ra, nó cũng có thể tích hợp thêm nhiều tính năng như tự động test và fix lỗi, giúp lập trình viên phát triển và triển khai phần mềm nhanh chóng hơn. Điều này sẽ nâng cao đáng kể năng suất và hiệu quả làm việc của kỹ sư, đồng thời giúp họ hoàn thành công việc tốt hơn.
Câu hỏi thường gặp
Code do AI viết có thể dùng trực tiếp luôn không?
Không nên nhận vơ tất cả. Nó thường "sai một cách rất tự tin", code càng trông hoàn hảo thì càng phải review kỹ, đặc biệt là các điều kiện biên, tính bảo mật và ngữ cảnh xuyên hệ thống.
AI có làm cho kỹ sư kém đi không?
Phụ thuộc quá mức sẽ làm mai một nền tảng cơ bản. Nên để AI làm các đoạn mã mẫu và việc vặt, còn logic cốt lõi và phần muốn phát triển thì tự viết, cố ý duy trì việc luyện tập.
Trình soạn thảo AI thích hợp nhất để làm gì?
Thích hợp nhất để cắt giảm thời gian "nhàm chán nhưng bắt buộc" (như CRUD, cấu hình, chuyển đổi định dạng, viết test), giúp bạn dành thời gian cho kiến trúc và các bài toán khó.