logo

ChatGPT sẽ không dành cho việc coding của bạn

Blog Change

KỸ SƯ PHẦN MỀM cũng gia nhập hàng ngũ các copy editors, dịch giả và những người khác sợ rằng họ sắp bị thay thế bởi AI tạo ra. Tuy nhiên, có thể bất ngờ khi biết rằng các lập trình viên đã đối mặt với nguy cơ này từ trước. Công nghệ mới luôn hứa hẹn sẽ "xáo trộn" lĩnh vực kỹ thuật, và những đổi mới này luôn thất bại trong việc loại bỏ nhu cầu về lập trình viên phần mềm. Nếu có gì, chúng thậm chí đã làm cho công việc của họ trở nên càng không thể thiếu hơn.

Để hiểu tại sao người ta lại lo lắng về việc kết thúc của các lập trình viên và tại sao nó đã được thổi phồng quá đà, chúng ta cần nhìn lại sự phát triển của lập trình và máy tính.Phần mềm là một suy nghĩ sau cho nhiều nhà tiên phong điện toán ban đầu, những người coi kiến trúc phần cứng và hệ thống là những theo đuổi trí tuệ thực sự trong lĩnh vực này. Đối với nhà khoa học máy tính John Backus, ví dụ, gọi các lập trình viên là "nhà lập trình" hoặc "kỹ sư" tương đương với việc đổi tên người làm vệ sinh thành "người quản gia," một cách để giả vờ rằng công việc thường ngày của họ quan trọng hơn thực tế. Hơn nữa, nhiều lập trình viên đầu tiên là phụ nữ, và đồng nghiệp phân biệt giới thường coi công việc của họ như công việc thư ký. Nhưng trong khi lập trình viên có thể đã đứng ở vị trí thấp hơn trong mắt những người như Backus, họ cũng là người không thể thiếu - họ đã giúp những người như anh ta không cần phải lo lắng về công việc lặp đi lặp lại của lập trình, gỡ lỗi và kiểm tra.

Mặc dù họ thực hiện một vai trò quan trọng - nếu bị đánh giá thấp - các kỹ sư phần mềm thường không phù hợp với hệ thống phân cấp của công ty. Trong những ngày đầu của máy tính, họ thường tự học và làm việc trên các chương trình mà một mình họ đã nghĩ ra, điều đó có nghĩa là họ không có một vị trí rõ ràng trong các bộ phận tồn tại từ trước và việc quản lý họ có thể phức tạp. Do đó, nhiều đặc điểm hiện đại của phát triển phần mềm đã được phát triển để đơn giản hóa và thậm chí loại bỏ giao tiếp với các lập trình viên. FORTRAN được thiết kế để cho phép các nhà khoa học và người khác viết các chương trình mà không cần sự hỗ trợ từ một lập trình viên. Cú pháp tiếng Anh của COBOL được thiết kế để đơn giản đến mức quản lý có thể bỏ qua hoàn toàn các nhà phát triển. Phát triển dựa trên mô hình Waterfall được sáng chế để tiêu chuẩn hóa và làm cho việc phát triển phần mềm mới trở nên đơn điệu. Lập trình hướng đối tượng được thiết kế để đơn giản đến mức cuối cùng tất cả người dùng máy tính có thể tự làm kỹ sư phần mềm của họ.

Trong một số trường hợp, các lập trình viên đã chống lại những thay đổi này, sợ rằng các chương trình như trình biên dịch có thể khiến họ mất việc. Tuy nhiên, cuối cùng, mối quan tâm của họ là không có cơ sở. Ví dụ, FORTRAN và COBOL đều được chứng minh là những ngôn ngữ bền bỉ, tồn tại lâu dài, nhưng chúng không thay thế được các lập trình viên máy tính. ếu có điều gì, những đổi mới này đã mang đến sự phức tạp mới vào thế giới máy tính, tạo ra nhu cầu lớn hơn cho các lập trình viên. Những thay đổi khác như Waterfall làm cho mọi thứ tồi tệ hơn, tạo ra các quy trình quan liêu phức tạp hơn gây khó khăn cho việc cung cấp các tính năng lớn. Tại một hội nghị do NATO tài trợ năm 1968, các nhà tổ chức tuyên bố rằng có một "cuộc khủng hoảng" trong công nghệ phần mềm. Có quá ít người để thực hiện công việc, và các dự án lớn liên tục bị đình trệ hoặc gặp phải sự chậm trễ.

Ghi nhớ lịch sử này, tuyên bố rằng ChatGPT sẽ thay thế tất cả các kỹ sư phần mềm dường như là sai lầm. Sa thải các kỹ sư và sử dụng trí tuệ nhân tạo cho việc phát triển tính năng sẽ có khả năng dẫn đến thảm họa, sau đó sẽ phải tái thuê lại những kỹ sư đó trong thời gian ngắn. Các đề xuất hợp lý hơn cho thấy rằng các mô hình ngôn ngữ lớn (LLM) có thể thay thế một số công việc đơn điệu trong lĩnh vực kỹ thuật. Chúng có thể đề xuất các gợi ý tự động hoặc các phương pháp để sắp xếp dữ liệu, nếu được khởi động đúng cách. Là một kỹ sư, tôi có thể tưởng tượng sử dụng một LLM để "phân tích" vấn đề, đưa ra các gợi ý cho các giải pháp tiềm năng mà tôi có thể xem xét. Nó không thể thay thế việc trao đổi với một kỹ sư khác, vì LLM vẫn chưa hiểu rõ các yêu cầu thực sự của một tính năng hoặc các liên kết trong mã nguồn, nhưng nó sẽ giúp tăng tốc các cuộc trò chuyện bằng cách loại bỏ công việc tẻ nhạt.

ChatGPT vẫn có thể làm thay đổi thị trường lao động công nghệ thông tin thông qua kỳ vọng về năng suất cao hơn. Nếu nó loại bỏ một số công việc đơn điệu hơn trong quá trình phát triển (và làm cho Stack Overflow không còn hoạt động nữa), quản lý có thể đặt nhiều yêu cầu hơn cho các kỹ sư làm việc dưới sự quản lý của họ. Tuy nhiên, lịch sử máy tính đã chứng minh rằng việc cố gắng giảm bớt sự hiện diện của các nhà phát triển hoặc tối ưu hóa vai trò của họ cuối cùng chỉ tạo thêm phức tạp cho công việc và làm cho những người lao động đó trở nên càng cần thiết hơn. Nếu có điều gì, ChatGPT có tiềm năng loại bỏ các công việc đơn điệu trong lập trình giống như trình biên dịch đã chấm dứt sự phiền phức của việc làm việc trong hệ thống nhị phân, điều này sẽ giúp các nhà phát triển dễ dàng hơn để tập trung vào việc xây dựng kiến ​​trúc thực sự của họ.

Nhà khoa học máy tính Edsger Dijkstra từng nhận xét: "Miễn là không có máy móc, lập trình không có vấn đề gì cả; Khi chúng ta có một vài máy tính yếu, lập trình trở thành một vấn đề nhẹ, và bây giờ chúng tôi có những máy tính khổng lồ, lập trình đã trở thành một vấn đề khổng lồ không kém. Chúng tai đã giới thiệu ngày càng nhiều phức tạp hơn cho máy tính với hy vọng làm cho chúng đơn giản đến mức chúng không cần phải được lập trình. Không có gì đáng ngạc nhiên, việc ném sự phức tạp vào sự phức tạp chỉ làm cho nó tồi tệ hơn và chúng ta không thể để các nhà quản lý cắt giảm các kỹ sư phần mềm. Nếu LLM có thể phù hợp với lời hứa của người tạo ra chúng, chúng ta rất có thể khiến nó tăng tốc hơn nữa.