1 điểm bởi GN⁺ 8 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Trong kịch bản kéo dài khoảng 5 năm, việc AI coding lan rộng có thể làm giảm tuyển dụng junior và tích tụ độ phức tạp của mã nguồn, từ đó đẩy mạnh giá trị của các senior developer có kỹ năng dọn dẹp đống mã đó
  • Các công ty cho rằng mô hình coding đã tiến bộ đến mức có thể thay thế junior developer bắt đầu mua nhiều token hơn thay vì tuyển người, và cơ hội tuyển dụng junior trên thực tế cũng đang giảm
  • LLM có xu hướng thêm mã mới hơn là dọn dẹp mã hiện có, và khi kết hợp với giới hạn của cửa sổ ngữ cảnh không thể chứa toàn bộ repository, mã trùng lặp và nợ kỹ thuật càng tăng
  • Khi tỷ lệ lỗi của mã do AI tạo ra và tổng lượng mã đều cùng tăng, số bug cũng nhiều hơn; do các phần cài đặt trùng lặp không được trừu tượng hóa đúng cách, cùng một lỗi phải được sửa lặp lại ở nhiều nơi
  • Nếu nguồn cung nhân lực có kinh nghiệm giảm do ngừng tuyển junior và mức burnout nghiêm trọng tăng 22%, thì các developer có kinh nghiệm bảo trì từ thời trước AI và khả năng phán đoán tốt có thể đón nhận cơ hội hiếm có giống như các lập trình viên COBOL thời Y2K

Quy mô và độ phức tạp của mã nguồn do AI thúc đẩy

  • Toàn bộ quá trình này mất khoảng 5 năm, với giả định hiện nay đã diễn ra được chừng 1,5–2 năm
  • Các mô hình AI mới nhất dù chưa hoàn hảo nhưng đã đạt đến mức tương đương hoặc tốt hơn junior developer trong lập trình
  • LLM có thể trực tiếp tạo cả các hàm và method phụ trợ của thư viện bên thứ ba mà nó từng thấy trong dữ liệu huấn luyện, nên thường ưu tiên thêm mã mới
    • Kết quả là lượng mã được viết ra và kích thước repository tiếp tục tăng, và các nghiên cứu liên quan cũng xác nhận quy mô mã nguồn tăng lên
  • AI có xu hướng mạnh hơn trong việc bổ sung tính năng lên trên mã hiện có, thay vì dọn dẹp mã, loại bỏ trùng lặp hay cải thiện khả năng bảo trì
    • Ngay cả cửa sổ ngữ cảnh lớn cũng không thể chứa toàn bộ một repository hiện đại, nên có thể bỏ sót các phần cài đặt hiện có
    • Mã do AI viết phần lớn là kiểu bổ sung thêm và thường xuyên bị trùng lặp; nghiên cứu về chất lượng mã có trợ lý AI cũng cho thấy hiện tượng tương tự
  • AI có thể đọc mã phức tạp và luồng điều khiển nhanh và chính xác hơn con người
    • Vì thế, ngân sách độ phức tạp và nợ kỹ thuật mà tổ chức chấp nhận cũng tăng lên
    • Nguyên tắc rằng debug khó gấp đôi so với viết mã vẫn còn nguyên giá trị; nếu độ phức tạp tiếp tục chồng chất, có thể đến lúc ngay cả AI cũng không xử lý nổi
    • Một số codebase đã vượt quá mức độ phức tạp mà con người có thể gánh nổi, và điều này cũng được thấy trong các trường hợp khủng hoảng nợ kỹ thuật do AI
  • Tỷ lệ lỗi của mã do AI tạo ra nhìn chung cao hơn mã do con người viết
    • Ngay cả khi trong tương lai tỷ lệ lỗi thấp hơn con người, tổng lượng mã được tạo ra vẫn lớn hơn nên tổng số lỗi có thể vẫn tăng
    • Vì mã không được tách biệt và trừu tượng hóa phù hợp, dù sửa bug ở một chỗ thì các phần cài đặt trùng lặp khác vẫn còn nguyên, dẫn tới tình trạng phải sửa đi sửa lại cùng một lỗi

Sự khan hiếm của senior developer giàu kinh nghiệm

  • Trong những codebase phức tạp, cấu trúc kém, đầy bug và trùng lặp, cần có senior developer để quyết định nên xóa gì, abstraction nào đang sai, hay liệu có cần thiết kế lại toàn bộ cách tiếp cận hay không
  • Nguồn nhân lực giàu kinh nghiệm giảm không chỉ do xu hướng rời ngành tự nhiên mà còn vì gánh nặng quản lý độ phức tạp do AI tạo ra
    • Tình trạng burnout nghiêm trọng ở senior developer tăng 22%
    • Nếu ngừng tuyển junior, số người có thể trưởng thành thành thế hệ senior tiếp theo cũng sẽ giảm
    • Những developer bắt đầu sự nghiệp sau thời AI vẫn có thể rất giỏi, nhưng có thể thiếu kinh nghiệm viết mã dễ bảo trì theo cách làm từ trước AI
  • Ngay từ bây giờ, senior engineer có thể đưa vào production đã là nút thắt lớn của thị trường lao động, nên nhu cầu với các developer có kinh nghiệm và cảm quan mã nguồn tốt có vẻ sẽ còn tăng mạnh
  • Khi nhu cầu tăng và nguồn cung giảm, giá sẽ đi lên; senior developer có thể có được cơ hội tương tự những gì lập trình viên COBOL từng tận hưởng vào giai đoạn trước và sau Y2K
  • Những developer dày dạn kinh nghiệm trụ vững qua làn sóng sa thải do AI dẫn dắt có khả năng nhận được mức đãi ngộ cao khi tình trạng thiếu cung thực sự bùng lên

1 bình luận

 
Các ý kiến trên Lobste.rs
  • Tôi nghĩ trong vòng 5 năm tới, chỉ riêng việc sửa những sản phẩm hỗn độn do AI tuôn ra cũng sẽ kiếm được rất nhiều tiền, rồi nghỉ hưu ở đâu đó trên du thuyền
    Tôi cho rằng quy mô sẽ nghiêm trọng hơn nhiều so với thời trước, khi phải dọn dẹp kết quả do các công cụ WYSIWYG hoặc các đội outsource ở nước ngoài tạo ra
    • Dù có trả nhiều tiền đến đâu, tôi vẫn nghi ngờ liệu kiểu công việc dọn dẹp đó có thú vị không; và dù có năng lực, tôi cũng không tự tin mình kham nổi
  • Dự án liên quan: https://odra.dev/slopfix/
  • Thay vì cố cứu những công ty thiếu tầm nhìn, có vẻ tốt hơn là cứ để họ sụp đổ và bắt đầu một doanh nghiệp mới
  • Đây là chuyện tôi thường nói trong năm nay: không chỉ dọn dẹp mã nguồn lộn xộn, mà việc loại bỏ LLM khỏi những tác vụ vốn phải được xử lý một cách tất định cũng có vẻ sẽ trở thành một thị trường lớn
    Nếu người dùng trả 20.000 đô la mỗi tháng cho chatbot chỉ để xác định họ đã chọn phương án nào trong bốn lựa chọn, thì với cùng số tiền đó ta có thể viết cho họ một chương trình không phụ thuộc vào giá token hay lỗi ngẫu nhiên, rồi còn đề xuất hợp đồng bảo trì 1.000 đô la mỗi tháng
    Các công ty đã nhận ra rằng chi phí đưa LLM vào nhiều công việc còn đắt hơn thuê người, nhưng nhiều nơi lại đã sa thải nhân sự hiện có, nên có lẽ mùa gặt sẽ đến sớm hơn 5 năm rất nhiều
    • Tôi đã thực sự nghe nhiều cuộc trò chuyện trong đó người ta thử prompt engineering cho những bài toán vốn đã có thuật toán tất định và tối ưu được biết đến
  • Ít nhất về mặt trùng lặp mã và khả năng bảo trì, vẫn còn nhiều dư địa để AI agent cải thiện mạnh trong tương lai
    Nếu có tìm kiếm ngữ nghĩa rất tốt thì không nhất thiết cần cửa sổ ngữ cảnh khổng lồ
    Nếu huấn luyện chuyên biệt mô hình embedding để coding agent tìm tốt các khái niệm trùng lặp, nó có thể chỉ nạp vào bộ nhớ năm tài nguyên khác đang quản lý thời điểm hết hạn bằng hàng đợi ưu tiên, rồi hợp nhất chúng thành một lớp ExpirationQueue
    Tuy nhiên, cũng có nguy cơ AI như vậy áp dụng trừu tượng hóa quá sớm một cách quá vội vàng