- Sự lan rộng của các công cụ AI coding đang đưa lên bề mặt khác biệt về động cơ vốn luôn tồn tại nhưng trước đây không dễ nhìn thấy giữa các lập trình viên
- Nỗi buồn vì đánh mất niềm thỏa mãn mang tính thủ công của chính việc viết code, và nỗi buồn trước sự thay đổi của hệ sinh thái và môi trường nghề nghiệp xoay quanh code là hai dạng mất mát khác nhau
- Từ góc nhìn của một lập trình viên đã viết code từ thập niên 1980, AI coding là sự nối dài tự nhiên của các tầng trừu tượng, từ C64 BASIC sang assembly, từ hàm đến thiết kế hệ thống
- Kinh nghiệm đọc và review code suốt nhiều thập kỷ vẫn còn nguyên giá trị như trực giác và khả năng phán đoán để đánh giá chất lượng code do AI tạo ra
- Điều cốt lõi là nhận ra mình đang cảm thấy kiểu nỗi buồn nào; mất mát mang tính nghề thủ công và mất mát về bối cảnh đòi hỏi những cách ứng phó khác nhau
Khởi đầu của sự tiếc nuối
- James Randall là một lập trình viên bắt đầu lập trình từ khi 7 tuổi vào thập niên 1980, và ông mô tả trải nghiệm khám phá và kiên trì để tự tìm ra điều gì đó đã bị "nén lại"
- Không phải là nó biến mất hoàn toàn, nhưng đã có điều gì đó bị đánh mất trong quá trình nén này
- Nolan Lawson bày tỏ cảm giác mất mát một cách trực diện hơn trong bài viết "We Mourn Our Craft"
- Chúng ta sẽ nhớ cảm giác tự tay nặn ra code, những lần bắt bug bằng debugger lúc 2 giờ sáng, và niềm tự hào rằng "chính mình đã tạo ra nó"
- Những cảm xúc này là cảm xúc thật trước một mất mát có thật, nhưng khi đọc, vẫn liên tục có cảm giác rằng họ đang tiếc nuối những điều khác nhau
Bản chất của sự chia rẽ
- AI coding đang làm lộ ra sự chia rẽ vốn có nhưng ít thấy rõ hơn giữa các lập trình viên
- Trước thời AI, cả hai phía đều làm việc theo cùng một cách: dùng cùng editor, cùng ngôn ngữ, cùng quy trình pull request
- Lập trình viên thiên về tay nghề thủ công và lập trình viên thiên về kết quả ngồi cạnh nhau, cùng ship một sản phẩm mà gần như không thể phân biệt
- Động cơ của công việc là thứ vô hình, vì quy trình thì giống nhau
- Giờ đây xuất hiện một ngã rẽ: giao code cho máy và chỉ huy thứ cần tạo ra, hoặc tự tay viết code
- Chính tại khoảnh khắc lựa chọn này, lý do vì sao một người bắt đầu lập trình mới thật sự trở nên hữu hình
- Ngay từ thời đại học trong các lớp toán và khoa học máy tính cũng đã tồn tại kiểu chia rẽ đó: có người thích bản thân các chứng minh và định lý, còn có người chỉ thấy hứng thú khi áp dụng chúng vào thực tế
Nỗi buồn của tôi thì khác
- Trong 18–24 tháng qua, tôi thực sự đã trải qua một khoảng thời gian buồn bã và thích nghi
- Tôi từng sợ rằng mình sẽ không hiểu nổi các công cụ mới, nhưng thực tế là tôi vẫn hiểu được
- Tôi lo rằng mình sẽ mất khả năng đánh giá chất lượng code do AI tạo ra, nhưng kinh nghiệm đọc và review code suốt hàng chục năm không hề bay biến
- Khi có điều gì đó sai, tôi vẫn nhận ra được, và con mắt nghề ấy vẫn còn nguyên
- Tôi sợ rằng cảm giác giải một câu đố sẽ kết thúc, nhưng thực ra chỉ là tôi đã bước lên một tầng cao hơn
- Từ việc sắp byte trên C64 → viết hàm → thiết kế hệ thống, đây là cùng một kiểu chuyển đổi như mọi lần chuyển dịch trong sự nghiệp
- Giờ đây câu đố đã chuyển sang địa hạt của kiến trúc, cấu hình và điều phối assistant
- Phần lớn những nỗi sợ đã không đứng vững khi va vào thực tế, nhưng vẫn còn sót lại một vài nỗi buồn
Nỗi buồn còn ở lại
- Không phải nỗi buồn vì không còn tự tay viết HTML, mà là nỗi buồn dành cho chính hệ sinh thái web mở
- Việc AI học từ tài sản chung của cộng đồng, và sự tập trung hóa hơn nữa của những chủ thể định hình trải nghiệm internet của con người, là những mất mát có thật
- Đây là vấn đề không biến mất chỉ vì năng suất cá nhân tăng lên
- Nỗi buồn trước sự thay đổi của địa hình sự nghiệp
- Web development, thứ tôi đã làm hơn 30 năm, không còn là lĩnh vực nóng nhất nữa
- Mobile app đã lấy đi một phần, và AI engineering hiện đang giữ vị trí chủ đạo
- Tôi nghĩ mình đang chuyển đổi thành công, nhưng sự bất an là có thật và vẫn chưa kết thúc
- Trọng tâm của nỗi buồn này là: không phải tôi nhớ nhung hành động viết code tự thân
- Mà là nỗi buồn khi thế giới xung quanh code đang thay đổi
- Nỗi buồn của Randall và Lawson hướng đến chính tinh thần thủ công, còn nỗi buồn trong bài này là về bối cảnh và lý do
Không bên nào sai cả
- Kevin Lawver, trong bài viết phản hồi Lawson, cho rằng thay vì bám chặt vào quá khứ, ta nên định hướng lại tinh thần nghề thủ công và đam mê của mình
- Vượt qua cách đóng khung đơn giản kiểu hoài niệm đối đầu với chủ nghĩa thực dụng, điều thực sự hữu ích là nhận ra mình đang cảm thấy loại nỗi buồn nào
- Nếu đang tiếc nuối một mất mát mang tính nghề thủ công: câu "cứ thích nghi đi" sẽ không giải quyết được gì
- Có thể phải tìm cảm giác thỏa mãn đó ở nơi khác, hoặc chấp nhận rằng cảm nhận về công việc sẽ thay đổi
- Việc trước giờ có thể kiếm sống nhờ tinh thần nghề thủ công vốn dĩ đã là một sự may mắn
- Nếu đang tiếc nuối một mất mát về bối cảnh: ta có thể phản ứng theo cách khả thi hơn
- Có thể học công cụ mới, nỗ lực vì kiểu web mà mình mong muốn dù chỉ là web nhỏ, và vừa buồn vừa thích nghi cùng lúc
- Trích lời Nolan Lawson: "Tôi không ca ngợi thế giới mới, cũng không chống lại nó. Mặt trời mọc rồi lặn, và tôi bất lực quay theo quỹ đạo của nó; sự phản đối của tôi không thể ngăn nó lại"
- Nhưng việc thừa nhận rằng giữa nỗi buồn và nỗi sợ vẫn có chút hứng khởi là một sự thành thật
Khiến máy tính làm việc
- Kể từ khi bắt đầu lập trình vào thập niên 1980, mọi ngôn ngữ tôi học đều chỉ là phương tiện để đạt mục đích
- Một cách mới để khiến máy tính làm điều mình muốn
- AI coding là bước mới nhất trong đường nối dài đó, không phải một sự đứt đoạn mà là nấc tiếp theo trên chiếc thang
- Chỉ có điều chính chiếc thang này đang thay đổi, và cả tòa nhà mà nó đang dựa vào cũng đổi khác, nên ta không thể biết chính xác nó dẫn tới đâu
- Điều chắc chắn là: cảm giác thỏa mãn khi thứ mình suy nghĩ ra thật sự hoạt động sau hơn 40 năm vẫn không thay đổi
- Con đường để đi tới đoạn code đó có thể đã khác, nhưng khoảnh khắc nó vận hành thì vẫn vậy
7 bình luận
Làm quá lên rồi.
Tôi cho rằng việc để AI làm mấy thứ như lập trình web là điều quá tốt.
Có vẻ như những kiểu lập trình khác có thứ gì đó mang giá trị cao quý nhỉ.
Đôi khi tôi cũng có cảm giác độ tuổi trung bình trên HN khá cao và giống như nhiều người đang bị tụt lại phía sau.
Vì thế tôi thường lướt qua và không đọc những bài viết tiêu cực kiểu này (không phải mang tính phê bình).
Tham khảo thêm thì thỉnh thoảng cũng không phải là không có lúc tôi nhớ lại niềm vui tự tay viết code,
nhưng vì tôi làm phía web nên có lẽ điều đó khả thi hơn chăng,
dù sao thì tôi cũng đã hơn 3 tháng không gõ code rồi.
Trên hết, cách phát triển như thế này quá vui nên tôi lại thường xuyên tự nguyện làm thêm giờ như hồi còn trẻ.
Nếu vì AI mà phải bận tâm đến thế thì cứ không dùng là xong chứ nhỉ
Tôi tò mò không biết mọi người đã phản ứng như thế nào khi các công cụ RAD xuất hiện.
Ý kiến trên Hacker News
Mục tiêu của một lập trình viên giỏi là tự khiến mình trở nên không còn cần thiết. Trước đây từng có thời phải đếm chu kỳ và nhồi bit bằng hợp ngữ, nhưng rồi việc dùng compiler trở thành điều hiển nhiên. Cũng từng có thời người ta tự viết app CRUD, nhưng giờ framework làm thay. Quản lý bộ nhớ, hệ thống kiểu, ngôn ngữ bậc cao, no-code/low-code đều là một phần của tiến bộ. Suy cho cùng, mục đích của lập trình là để máy tính giúp chúng ta khỏi phải tự làm những việc đó Tôi nghĩ sự chia rẽ thật sự là khác biệt trong tư duy giữa những người xem phần mềm là thứ có thể cải thiện và có thể hiểu được, với những người xem nó là chướng ngại vật khó hiểu do kẻ khác tạo ra
Chế độ làm việc 8 tiếng không phải do công nghệ mang lại mà là kết quả của đấu tranh chính trị
Dù vậy, nếu “người khác” là con người thì ta vẫn có thể chia sẻ công lao thông qua cố vấn hay tạo môi trường làm việc
Bài viết của Kellan “Code has always been the easy part” cũng cùng mạch suy nghĩ đó. Thế hệ chúng ta lao vào công nghệ vì nghiện cảm giác có quyền chủ động mà web mang lại
unlessgiúp diễn đạt luồng xử lý rất tự nhiên. Chỉ là khi nó ngừng tiến hóa, mọi người mở rộng theo những cách khác nhau và tạo ra codebase mong manhAI coding chỉ nâng năng suất chừng 10%. Nút thắt thật sự là quá trình hiểu xem nên làm gì và thuyết phục người khác. Viết code chỉ là phương tiện để hiểu điều đó
Nhưng dù sao cũng phải thử phản kháng