22 điểm bởi xguru 2025-03-14 | 2 bình luận | Chia sẻ qua WhatsApp
  • Trong kỷ nguyên mới của phát triển phần mềm, tôi cảm nhận được một sự thay đổi: tôi ít còn trực tiếp tham gia vào công việc mình làm hơn
  • Khi giao việc viết hàm và sửa lỗi cho LLM, mức độ đắm chìm giảm xuống
  • Chuyển từ làm thủ công sang trạng thái auto-pilot, rồi lặp đi lặp lại quá trình xem lại và chấp nhận công việc của LLM
  • Khi ai đó thực sự đắm mình vào kỹ năng của mình, họ bước vào trạng thái dòng chảy (Flow). Điều này cũng giống như trở thành một người thợ thủ công
    • Đây là trạng thái mà ranh giới giữa chủ thể và đối tượng biến mất, và ta chìm sâu vào việc giải quyết các vấn đề phức tạp
  • Nhiều người cho rằng việc gần đây tăng sử dụng LLM trong workflow lập trình chỉ đơn thuần là đưa vào một mức độ trừu tượng cao hơn
    • Quá trình phát triển từ Binary → Assembly → C → ngôn ngữ bậc cao đã dần trao cho chúng ta nhiều quyền năng hơn
    • Nhưng việc đưa LLM vào không chỉ đơn giản là một lần thay đổi sang mức trừu tượng khác
    • Những chuyển đổi như từ binary sang assembly, hay từ assembly sang C, đã giúp giảm tải nhận thức và cho phép tập trung vào logic
    • LLM khiến ta tập trung vào cấu trúc tổng thể chứ không phải logic của chương trình → khác với các thay đổi trước đây
  • Một chương trình được tạo nên từ nhiều mảnh ghép
    • Chúng ta hiểu chương trình của mình bằng cách hiểu mọi mảnh ghép dùng để lắp ráp nên nó
    • Giờ đây, bằng cách giao việc tạo ra các mảnh ghép, ta đang ủy thác công việc của người thợ thủ côngquản lý việc tạo ra chúng
    • Ta ít còn trực tiếp tham gia vào việc tạo ra hơn, và mức độ sở hữu của ta đối với đoạn mã do LLM tạo ra cũng giảm đi
  • Nói cách khác, chúng ta đã đổi tay nghề thủ công (craftsmanship) lấy quản lý (management)
    • Ta trở nên quan tâm đến kết quả công việc hơn là những mảnh ghép chính xác mà mình tạo ra
    • Lập trình không còn là mục tiêu mà đã trở thành phương tiện
  • May mắn, hoặc cũng có thể là không may, vấn đề vẫn phát sinh trong mã, và ta vẫn phải nắm được ngữ cảnh của mã rồi sửa nó
    • Điều đó có nghĩa là quá trình lập trình vẫn cần sự can thiệp của con người
  • Có thể đắm mình vào lập trình nhiều hơn bằng cách dùng tác tử LLM
    • Ta tập trung vào các mức trừu tượng cao, còn tác tử LLM thì miệt mài thực hiện các thay đổi
    • Nhưng hiện vẫn chưa có công cụ phù hợp
    • Tải nhận thức từ quá nhiều thay đổi liên tiếp là rất lớn, và cần có cách để xử lý điều đó
  • Do trí nhớ con người có giới hạn (với trí nhớ ngắn hạn chỉ nhớ được 7±2 mục), nên cần những công cụ được thiết kế tốt để biểu diễn thông tin ở nhiều mức độ trừu tượng khác nhau
    • Khi đó ta có thể nắm được chi tiết rồi dần phóng to ra để nhìn bức tranh lớn hơn

2 bình luận

 
superego 2025-03-17

Liệu nhất thiết chỉ phải có tinh thần craftsmanship trong code? Chẳng phải chúng ta cũng có thể có tinh thần craftsmanship với phần mềm, với chính bản thân sản phẩm hay sao?

 
kandk 2025-03-14

Ngay từ đầu, lập trình vốn không phải là mục tiêu mà là phương tiện.
Sự phát triển của những công cụ như thế này đã đi theo hướng giúp con người có thể dành thời gian cho những suy nghĩ và thiết kế lớn hơn, thay vì những thứ vô bổ.
Trình biên dịch, hệ điều hành, ngôn ngữ kịch bản, v.v..