Một người nào đó trên mạng xã hội X nói, "Với AI, bạn có thể làm công việc của mười kỹ sư".
Và chắc chắn, điều đó nghe có vẻ thú vị. Nhưng hãy để tôi hỏi bạn điều này: "Bạn đã bao giờ làm việc trên một sản phẩm thực tế và cảm thấy chuyện viết code là nút thắt cổ chai duy nhất chưa?" Có lẽ là không.
Thật hấp dẫn khi tin rằng AI là một phép màu. Và theo một số cách, nó đúng là vậy. Nhưng nếu bạn nhìn rộng ra và nhìn vào bức tranh toàn cảnh về những gì kỹ sư phần mềm thực sự làm, nó trở nên rõ ràng hơn: AI là tool hỗ trợ tuyệt vời trong một số phần của công việc, và lại trở nên kém hữu dụng trong những phần khác.
Hãy cùng nhau phân tích thêm.
Kỹ sư phần mềm thực sự dành thời gian cho việc gì?
Chúng ta thường nghĩ công việc của kỹ sư phần mềm là "viết code". Nhưng đó chỉ là một lát của chiếc bánh. Đây là cái nhìn đơn giản về những gì kỹ sư phần mềm thực sự dành thời gian trong một dự án điển hình:
- Hiểu vấn đề (15%): Nói chuyện với mọi người, đặt câu hỏi, và định nghĩa rõ ràng vấn đề.
- Chọn giải pháp đúng (20%): Xem xét hệ thống hiện tại, các lựa chọn, và quyết định giải pháp tốt nhất phù hợp với bối cảnh đang có.
- Lập kế hoạch công việc (10%): Viết kế hoạch triển khai rõ ràng, và bổ sung đây đủ tài liệu thiết kế kỹ thuật.
- Viết Code (30%): Viết code sạch đẹp, dễ đọc, và dễ bảo trì.
- Kiểm thử và sửa lỗi (15%): Đảm bảo mọi thứ hoạt động như mong đợi và nhanh chóng sửa lỗi nếu có.
- Triển khai và theo dõi (10%): Triển khai các thay đổi một cách an toàn và theo dõi hiệu năng, lỗi, v.v một cách chặt chẽ.
Bây giờ hãy hỏi câu hỏi thực sự: trong những điều này, AI thực sự có thể giúp ở đâu? Và nó gặp khó khăn ở đâu?
Nơi AI thực sự tạo ra sự khác biệt
Hãy bắt đầu với một vài tin tốt.
Viết code
AI thực sự tỏa sáng khi nói đến việc viết code. Các công cụ như GitHub Copilot, ChatGPT, Cursor, hay Claude Code rất tốt trong việc xử lý những công việc nhàm chán như thiết lập code theo mẫu, tạo file mới, hoặc viết test. Nếu bạn đã biết mình muốn xây dựng gì, nó có thể tăng tốc đáng kể.
Nhưng, và điều này rất quan trọng, nó giống như làm việc với một kỹ sư tập sự mới vào nghề. Nó có thể hoàn thành công việc, nhưng bạn vẫn cần kiểm tra kỹ lưỡng mọi thứ. Code có phù hợp với hệ thống của bạn không? Nó có sạch sẽ và dễ bảo trì không? AI sẽ không phát hiện những điều này trừ khi bạn hướng dẫn nó.
AI giúp viết code nhanh hơn, nhưng bạn cũng cần dành nhiều thời gian hơn để xem xét và tinh chỉnh.
Một phần lớn của việc lập trình là hiểu code đã có sẵn. Trong nhiều năm, việc đọc và hiểu code hiện có là một trong những điều khó khăn nhất, đặc biệt đối với các kỹ sư mới.
Bây giờ, AI có thể giúp tăng tốc quá trình đó. Nó có thể mô tả code đang làm gì, chỉ cho bạn nơi nó được sử dụng, và giúp bạn hiểu cách các phần khác nhau đang kết hợp với nhau như thế nào.
Nhưng đừng bỏ qua hoàn toàn những phần khó khăn. Việc tự mình tìm hiểu mọi thứ là nơi việc học thực sự diễn ra. AI có thể hỗ trợ bạn, nhưng để thực sự trở nên tốt hơn và làm chủ nghề nghiệp của mình, bạn vẫn cần tự mình hiểu trước đã.
Lập kế hoạch và viết tài liệu
Việc cố gắng viết tài liệu thiết kế hoặc phác thảo kế hoạch triển khai từ đầu không bao giờ thú vị. Đó là lúc AI thực sự có thể giúp đỡ bạn. Nó giống như có ai đó ném cho bạn một bản nháp để bạn không phải bắt đầu từ con số không.
Nó cũng có thể giúp bạn tổ chức, chia nhỏ những ý tưởng lớn thành các phần nhỏ hơn, xây dựng thời gian biểu, hoặc tóm tắt từ những cuộc trò chuyện lộn xộn trên Slack.
Bí quyết? Hãy cụ thể. Bạn càng rõ ràng về những gì mình cần, AI càng hoạt động tốt hơn.
Kiểm thử và tự động hóa
AI rất giỏi trong việc viết unit test dựa trên code của bạn và mô phỏng cách người dùng có thể tương tác với ứng dụng, đặc biệt nếu nó biết cấu trúc API hoặc UI của bạn. Vậy nên, hầu hết việc kiểm thử có thể được AI đảm nhận, bao gồm Unit Testing, Integration Testing, hoặc thậm chí End-to-End testing.
Nó cũng có thể giúp sửa lỗi. Nếu bạn cung cấp đủ chi tiết, nó có thể gợi ý chỗ tạo ra vấn đề hoặc các cách sửa có thể. Quan trong là bạn phải cung cấp đủ ngữ cảnh. Nhưng đừng mong đợi phép màu, nó vẫn cần hướng dẫn của bạn. Nó vẫn là một đồng nghiệp tập sự: hữu ích, nhanh, nhưng không phải lúc nào cũng đúng trừ khi bạn hướng dẫn đúng cách.
Triển khai và giám sát
AI đang bắt đầu trở nên khá tiện dụng khi nói đến việc theo dõi hệ thống của bạn. Nó có thể xem qua logs, phát hiện những thứ có vẻ không ổn, và thậm chí cảnh báo các sự cố tiềm ẩn trước khi chúng xảy ra bằng cách học hỏi từ các sự cố trong quá khứ.
Nó không ở đây để thay thế các công cụ của bạn, mà giống như là bạn sẽ có thêm một cặp mắt luôn túc trực.
Nơi AI còn thiếu sót
Bây giờ hãy nói về những lĩnh vực mà AI chưa sẵn sàng, hoặc có thể sẽ không bao giờ sẵn sàng.
Chọn giải pháp đúng
Bạn nên chọn đường tắt hay xây dựng thứ gì đó vững chắc? Tách các dịch vụ riêng rẽ hay gom lại với nhau? AI có thể gợi ý một số lựa chọn, nhưng nó không thực sự biết hệ thống của bạn, các quyết định trong quá khứ của bạn, hoặc những gì sắp xảy ra.
Đây không chỉ là những câu hỏi về lập trình, để trả lời những câu hỏi này cần sự phán đoán và kinh nghiệm. Và AI không có điều đó. Nó không thể cảm nhận được sự đánh đổi hoặc hiểu con người và mục tiêu đằng sau công việc. Đó là lý do tại sao kinh nghiệm của bạn vẫn quan trọng.
Hiểu vấn đề
Thật dễ dàng để quen mất rằng chúng ta cần suy nghĩ, và suy nghĩ rất nhiều để hiểu một vấn đề. Khi bạn nhận được một công việc mới hoặc lỗi, bộ não của bạn làm rất nhiều việc đằng sau hậu trường, đặt câu hỏi, nhận thấy khi có gì đó cảm thấy không ổn, và ghép các mảnh lại với nhau, từ đó bạn có thể hiểu được vấn đề.
AI không thể làm điều đó. Nó không biết cách đào sâu hơn hoặc đặt câu hỏi về những gì nó thấy. Nó cố gắng sao chép những gì nó đã thấy trước đó. Nhưng thực sự hiểu được một vấn đề? Điều đó vẫn thuộc về bạn.
Thiết kế cho dài hạn
AI có thể tạo ra code hoạt động, điều đó là chắc chắn. Nhưng liệu nó có thể bảo trì được không? Nó có tôn trọng ranh giới hệ thống, tuân theo design patterns, hoặc hoạt động tốt với phần còn lại của stack của bạn không? Thường thì không.
AI không suy nghĩ về sự đánh đổi. Nó không quan tâm liệu code của bạn có khó test hay có khả năng rò rỉ bảo mật hay không. Bạn thì có.
Sử dụng AI ở nơi nó giúp ích, làm chủ những gì quan trọng
Vậy, làm thế nào để bạn cân bằng?
- Sử dụng AI để tăng tốc những gì đã biết: Các nhiệm vụ bạn đã làm trước đó, các mẫu được lặp lại, đây là những thứ hoàn hảo cho sự hỗ trợ của AI.
- Đừng từ bỏ sự phán đoán: Bạn vẫn cần quyết định xây dựng gì, xây dựng như thế nào, và tại sao. Đó là cốt lõi giá trị của bạn với tư cách là một kỹ sư.
- Xem xét mọi thứ kĩ lưỡng: AI có thể cho bạn tốc độ, nhưng bạn cho nó ý nghĩa. Xem xét đầu ra của nó như bạn sẽ xem xét code của một đồng nghiệp tập sự mới.
- Suy nghĩ theo vòng lặp: AI hoạt động tốt nhất khi có vòng phản hồi chặt chẽ. Prompt → kết quả → chỉnh sửa → prompt lại. Hãy ở trong vòng lặp.
- Đầu tư vào sự rõ ràng của ngữ cảnh: Dù cho con người hay AI, kết quả tốt hơn đến từ đầu vào tốt hơn. Hãy làm cho vấn đề, mục tiêu và ràng buộc của bạn rõ ràng.
Sử dụng AI để tăng tốc, nhưng luôn tự hỏi: Chúng ta có đang xây dựng đúng thứ không? Câu trả lời đó vẫn đến từ bạn.
Muốn thứ gì đó thực tế? Đây là ma trận quyết định đơn giản:
Loại Nhiệm vụ | AI | Con người |
---|---|---|
Viết unit test | ✅ Có | ❌ |
Thiết kế hệ thống | ❌ | ✅ Có |
Cập nhật tài liệu từ chat | ✅ Có | ❌ |
Quyết định về kiến trúc | ❌ | ✅ Có |
Refactor để rõ ràng | ⚠️ Có thể | ✅ Có |
Viết ý kiến của bạn | … | … |
Viết ý kiến của bạn | … | … |
Viết ý kiến của bạn | … | … |