Vài ngày trước, tôi bắt gặp một dòng tiêu đề hấp dẫn trên LinkedIn hiển thị một tuyên bố táo bạo: "Công ty Công nghệ nhằm mục đích tăng 50% năng suất của các lập trình viên với GitHub Copilot." Điều khiến tình huống trở nên tò mò hơn nữa là tác giả của bài đăng không phải là một lập trình viên.
Bất chấp sự táo bạo của tiêu đề, tôi tin rằng vấn đề này có thể dẫn đến một cuộc phân tích và thảo luận thú vị.
Không thể phủ nhận khả năng ấn tượng của các công cụ AI có sẵn cho công chúng ngày nay. Trong lĩnh vực lập trình, chúng đã hỗ trợ đáng kể cho các nhà phát triển, tối ưu hóa quy trình của họ và tăng năng suất. Với các công cụ phù hợp, các vấn đề có thể được giải quyết với tốc độ nhanh hơn.
Tuy nhiên, đối với những người không quen lập trình, những công cụ AI này có vẻ gần như thần bí, tạo ấn tượng rằng chúng có thể giải quyết mọi vấn đề một cách nhanh chóng và tự động. Nhưng chúng tôi biết rằng thực tế là khá khác nhau.
Sự nhiệt tình được tạo ra bởi những công cụ này là hoàn toàn chính đáng và trước khi hình thành quan niệm sai lầm về tôi, hãy biết rằng tôi cũng là một trong số họ. Tuy nhiên, tôi tin rằng không phải ai cũng hiểu đầy đủ khả năng của những công cụ này trong thực tế.
Một mặt, bạn có những người mới bắt đầu lập trình sợ bị máy móc thay thế.
Mặt khác, bạn có những CEO đang tìm kiếm các giải pháp kỳ diệu để giảm chi phí hoặc tăng năng suất, có lẽ họ không hiểu rõ về công việc thực tế mà một lập trình viên thực hiện.
"ChatGPT (hoặc Copilot), tạo một trang để bán vé cho một buổi biểu diễn trong Node.js. Phần phụ trợ phải được chuẩn bị cho trung bình 2.000 yêu cầu mỗi giây và có khả năng phục hồi khi bị lỗi. Thiết lập bộ cân bằng tải để phân phối các yêu cầu giữa các yêu cầu được phân phối máy chủ. Đảm bảo bộ đệm hoạt động và thực sự giảm tải máy chủ. Công cụ giám sát thời gian thực. Và tất nhiên, cơ sở dữ liệu phải được nhóm lại với một chiến lược sao chép tốt."
Ví dụ được phóng đại quá mức, tôi biết. Nhưng nó minh họa sự phức tạp đằng sau việc triển khai một thứ có vẻ đơn giản đối với một người không phải là lập trình viên.
Viết mã chỉ là một phần công việc của lập trình viên và tôi chắc chắn rằng các AI tổng quát sẽ làm tốt công việc đó, nhưng đó không phải là tất cả những gì một lập trình viên làm.
Chúng ta, những lập trình viên, dành phần lớn thời gian trong ngày mà không viết một dòng mã nào. Trước tiên, cần hiểu các yêu cầu của các tính năng mới, tham gia vào các cuộc trò chuyện và điều chỉnh với các bên liên quan, thiết kế kiến trúc kỹ thuật và cuối cùng chuyển tất cả thông tin đó thành mã.
Và đừng quên rằng mã này phải được viết theo ngữ cảnh, xem xét cách nó phù hợp với phần còn lại của cơ sở mã hiện có.
Ý tôi là những công cụ AI này, mặc dù rất hữu ích, nhưng không có tác dụng thần kỳ. Nhưng chúng có thể là trợ thủ đắc lực cho các lập trình viên.
Một trong những bài đọc đã mở rộng quan điểm của tôi về công nghệ phần mềm là cuốn sách kinh điển "Lập trình viên thực dụng" của Dave Thomas và Andrew Hunt. Một trong các chương nói về một kỹ thuật sửa lỗi kỳ lạ: con vịt cao su.
Ý tưởng cơ bản đằng sau lập trình con vịt cao su là giải thích thành tiếng đoạn mã hoặc vấn đề mà bạn đang gặp phải như thể bạn đang giải thích nó cho một con vịt cao su. Bằng cách diễn đạt vấn đề hoặc mô tả từng bước mã, bạn thường tìm ra giải pháp hoặc có được góc nhìn mới về vấn đề.
ChatGPT trò chuyện rất xuất sắc và hơn nữa, trò chuyện theo ngữ cảnh. Trí tuệ nhân tạo này có thể là sự tiến hóa của chú vịt cao su của Dave Thomas và Andrew Hunt không?
Hiện đã có các tiện ích mở rộng cho Visual Studio Code tích hợp với ChatGPT, sử dụng nó như một con vịt cao su. Bạn có thể kiểm tra chúng ở đây .
Tôi thích cách GitHub chọn đặt tên cho sản phẩm của mình là Copilot và điều đó phù hợp với khái niệm về chú vịt cao su. Công cụ này nhằm mục đích trở thành một phi công phụ chứ không phải là phi công thực tế. Đó là trợ lý của lập trình viên, con vịt cao su của họ.
Thông điệp này dành cho những ai đang lo lắng và quan tâm đến tương lai sự nghiệp lập trình của mình: hãy thư giãn! Nhưng đừng thư giãn nhiều như vậy bởi vì thực tế phũ phàng là các nguyên tắc cơ bản của công nghệ phần mềm tạo nên một lập trình viên giỏi, chứ không chỉ viết mã.
Với việc phổ biến máy tính cho công chúng vào những năm 70 và 80, các chuyên gia tài chính và kế toán cảm thấy bị đe dọa bởi phần mềm bảng tính. Một cỗ máy có thể lưu trữ hàng nghìn hàng và cột và không bao giờ mắc lỗi tính toán. Ai sẽ từ chối điều đó?
Đúng là các bảng tính đã và vẫn còn mạnh mẽ, và chúng đã gây ra mối đe dọa đối với công việc "người viết bảng tính". Tuy nhiên, những người giải thích dữ liệu, hiểu bối cảnh kinh doanh và áp dụng các khái niệm kế toán chắc chắn biết cách sử dụng bảng tính thay vì chỉ trích chúng.
Các lập trình viên không chỉ là những người viết mã. Đừng sợ con vịt cao su mới của bạn; thay vào đó, hãy sử dụng nó. Và xin cảm ơn ChatGPT đã giúp tôi hoàn thiện bài viết này.
Cũng được xuất bản ở đây