1 điểm bởi GN⁺ 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Viết bằng AI là một cám dỗ rất lớn trong việc soạn bài báo, viết mã và tài liệu, nhưng lại làm tăng nỗi bất an rằng khả năng tự viết và tự suy nghĩ đang suy giảm
  • Khi đọc lại kết quả do AI tạo ra, cảm giác thường là “đúng là đồ AI”, và nó không truyền tải đúng giọng văn hay ý đồ của bản thân
  • Trong 1~2 năm qua, tôi đã phụ thuộc rất nhiều vào AI khi lập trình, gần như chỉ viết prompt, và cảm giác mất mát vì dường như đã quên cách tự viết mã ngày càng lớn
  • Giờ đây tôi đang cố học lại cách lập trình bằng tay, và cho rằng những người biết đọc và viết mã vẫn sẽ tiếp tục cần thiết ngay cả sau thời AI
  • Chính sự thôi thúc muốn dán bài viết vào Claude để kiểm tra lại là một dạng tự nghi ngờ, và AI trở thành thứ phải đối đầu vì nó sống dựa vào sự bất an đó

Nỗi bất an rằng việc dùng AI làm suy yếu năng lực viết và lập trình

  • Viết bằng AI là một cám dỗ rất lớn trong việc soạn bài báo, viết mã và tài liệu, nhưng lại tạo cảm giác rằng khả năng tự viết đang bị giảm sút
  • Trước đây, dù không xem mình là người xuất sắc trong viết lách hay phát triển phần mềm, tôi vẫn nghĩ mình có năng lực ở mức nào đó; nhưng càng dùng AI nhiều, cảm giác kỹ năng bản thân càng tệ đi càng lớn
  • Khi đọc lại kết quả viết bằng AI, nó tạo ấn tượng “đúng là đồ AI”, không khớp với giọng văn hay chủ ý của bản thân, và không diễn đạt đúng điều mình muốn nói
  • Nỗi bất an này làm tăng sự tự nghi ngờ và hội chứng kẻ mạo danh, đến mức khiến người ta nghi ngờ cả việc liệu mình có thực sự tự tạo ra được kết quả đó hay không

Lý do muốn học lại cách lập trình bằng tay

  • Trong 1~2 năm qua, tôi đã hoàn toàn dùng AI cho việc lập trình, gần như chỉ viết prompt, và cảm giác như mình không tự viết lấy nổi dù chỉ một dòng mã
  • Kết quả là tôi có cảm giác như đã quên gần hết cách lập trình, và việc đánh mất thứ từng là trung tâm của cuộc sống khiến tôi buồn và chán nản
  • Giờ đây tôi đang tự học lại cách lập trình bằng tay
  • Tôi cho rằng ngay cả khi có AI, năng lực phát triển phần mềm cũng sẽ không biến mất hoàn toàn
    • Những người biết đọc và viết mã vẫn sẽ tiếp tục cần thiết
    • Số lượng người cần đến có thể giảm, nhưng bản thân kiểu người đó vẫn cần thiết
  • Tôi cũng hy vọng AI có thể đảo ngược xu hướng cầu vượt cung đối với lập trình viên phần mềm đã kéo dài suốt 20~30 năm qua
    • Như trong các bài giảng của Robert Martin (Uncle Bob), trước khi khoa học máy tính trở thành một nghề nghiệp, việc lập trình do các chuyên gia như nhà vật lý, nhà toán học và học giả đảm nhiệm
    • Khi nhu cầu với lập trình viên phần mềm tăng vọt, tính chuyên môn theo đó bị mờ nhạt đi
  • Dù đây là bài viết được viết không có AI, tôi vẫn lo rằng liệu có chỗ nào kỳ quặc hoặc bị thiếu không, và nảy sinh thôi thúc muốn dán vào Claude để kiểm tra
  • Chính thôi thúc đó là sự tự nghi ngờ mà AI sống dựa vào, và vẫn là thứ cần phải chống lại

1 bình luận

 
Ý kiến trên Hacker News
  • Tôi không thực sự đồng cảm lắm với lập luận này. Mỗi lần dùng AI để viết code, tôi luôn phải đấu tranh với cảm giác lấn cấn rằng mình cần rà lại toàn bộ những gì AI đã làm rồi bổ sung hoặc sửa lại bằng code của chính mình
    Có dopamine khi nhận được một ứng dụng chạy được chỉ sau vài phút vibe coding, nhưng cảm giác lấn cấn đó triệt tiêu hết, và có lẽ sẽ chưa biến mất sớm đâu
    Tuy vậy, chắc là vì tôi đã có kinh nghiệm; nếu là một dev junior hoặc mid-level thì rất có thể tôi cũng đã sa vào rồi. Nếu không có những vết sẹo từ đầu sự nghiệp do bị các mentor có chuyên môn soi code review kỹ càng, có lẽ tôi cũng không có cảm giác đó

    • Theo trải nghiệm của tôi thì Claude chỉ biết phun ra code. Đưa cho nó vấn đề gì, nó cũng dịch thành “viết thêm code” thay vì “giảm bớt code”
      Những gì Claude tạo ra phải được review code thật kỹ, nếu không codebase sẽ cứ phình ra và tiệm cận 100% nợ kỹ thuật
      Tôi review toàn bộ đầu ra của Claude, và khoảng 90~95% trường hợp là kiểu “ồ, chạy đấy. Nhưng code nhiều quá. Giờ cùng ngồi 3 tiếng cắt gọt cho đến khi không còn gì để bớt nữa nhé”
    • Đừng làm kiểu “vibe coding vài phút”. Ban đầu đó là một câu đùa ngẫu hứng của ai đó, nhưng ngành này lại không coi là đùa, và một số người nghĩ đó là cách phát triển thực sự khả thi, nhưng không phải vậy
      Cần tìm cách cộng tác tốt hơn với agent. Nếu con người review những phần quan trọng cần người nhìn vào, rồi “thuê ngoài” phần còn lại, thì có thể đi đến code và thiết kế hoạt động giống như khi tự lập trình, nhưng nhanh hơn
      Tôi cũng review khoảng 90% code do agent viết, nhưng việc chỉ viết hoặc nói vài prompt vẫn dễ chịu hơn nhiều so với tự tay gõ hàng chục nghìn ký tự và liên tục nhảy qua lại giữa các file. Có lẽ đơn giản là tôi đã chán gõ phím
    • Hoàn toàn đồng ý. Tôi dùng AI như công cụ hỗ trợ cho phát triển game. Muốn làm thứ gì mới hoặc thú vị thì phải tự viết code, nếu không sẽ chuốc khổ vào thân
      Nhưng với những việc lặt vặt vừa tốn thời gian vừa nhàm chán, tôi thiết kế kiến trúc rõ ràng trước rồi giao phần triển khai cho AI. Dù vậy sau đó vẫn phải kiểm tra lại xem nó có làm ra thứ vớ vẩn gì không
      Ví dụ hay gần đây là trong game tôi làm bằng Godot, Codex đã định tự triển khai lại từ đầu hành vi mà Area2D vốn đã cung cấp sẵn
      Giao cho AI việc gì có ý nghĩa là sẽ dẫm phải đầy mìn và những lựa chọn kỳ quặc. Có thể nếu đốt vài trăm đô token thì sẽ khác, nhưng với người chỉ tiêu 10 đô một tháng như tôi thì chẳng đáng để đau đầu
      Hơn nữa dự án của tôi chỉ là sở thích, và code vẫn còn vui. Tôi chỉ giao cho AI những phần chán ngắt như lưu/tải, parse file dữ liệu, menu cài đặt; còn những phần cần phán đoán của con người thì để nó tránh xa
    • Lúc này kinh nghiệm thực sự rất có giá trị. Có thể dẫn dắt agent cực tốt, nhưng như đã nói, tôi lo cho các junior
      Tôi muốn tin rằng nếu là mình thì sẽ dùng agent để đào sâu hơn và học nhanh hơn. Ngày xưa việc chắp nối giải pháp từ Stack Overflow, đủ loại kênh IRC, Reddit các kiểu khá vất vả
      Nhưng hồi đại học tôi cũng từng chép bài tập và không kiểm tra câu trả lời cho tử tế, nên tôi không dám chắc. Dù sao thì tôi học lập trình vì hứng thú chứ không chỉ để lấy bằng, nên có thể đã khác
      Dù thế nào thì tôi vẫn mừng vì đã tích lũy được nhiều kinh nghiệm và thất bại trước khi bước vào thời đại LLM
    • Code do LLM tạo ra theo tiêu chuẩn của tôi thì chỉ ở mức trung bình. Tôi không tự nhận là bậc thầy clean code, nhưng tôi nhìn ra được code có cấu trúc tốt hay không
      Code tôi tự viết lúc nào cũng tốt hơn Claude hay GPT
      Có lần tôi trích specification từ một dự án đã viết sẵn, đưa cho LLM chỉ đọc spec đó rồi bảo nó triển khai lại để so code; bản của LLM nhìn như bãi nôn
  • Với tư cách lập trình viên, tất cả chuyện này phần nào lại giống như sự ổn định việc làm
    Tôi dùng LLM được một thời gian rồi, thấy khá ổn và cũng thích dùng. Tôi đã vibe coding vài ứng dụng, cảm giác ý tưởng được hiện thực hóa ngay lập tức tạo dopamine rất mạnh
    Nhưng theo trải nghiệm của tôi, nếu mù quáng tin vào nó thì chắc chắn sẽ bị cắn. Ngay cả trong các dự án vibe coding, nó cũng liên tục thêm các “tính năng” mà tôi không hề yêu cầu
    Nếu là dự án cá nhân thì tôi không quá bận tâm miễn kết quả cuối cùng đúng như mong muốn, nhưng công ty sẽ không linh hoạt như vậy. Khách hàng chắc cũng không thích việc tính năng bị thay đổi hay tự dưng mọc thêm mỗi lần sửa hoặc cập nhật
    Tóm lại tình hình hiện tại là nhiều công ty đang đi theo hướng này, và nếu không có kỹ nghệ phần mềm tử tế thì AI sẽ viết nhiều code hơn và vô tình làm ứng dụng chệch khỏi ý định ban đầu
    Vì nỗi sợ AI và việc tuyển dụng giảm, số kỹ sư junior gia nhập thị trường sẽ ít đi
    Khi mức độ sử dụng AI đạt tới ngưỡng tới hạn, sẽ có những thay đổi khổng lồ và những người “prompt” nó có thể bắt đầu bị quá tải
    Số lượng tính năng phải giữ trong đầu sẽ còn nhiều hơn. Vì không thể tin LLM 100%, dev vẫn phải biết chính xác ứng dụng đang làm gì
    Cuối cùng bug sẽ xuất hiện dày đặc, và các dev sẽ lại than phiền rằng cần thêm người. Rồi việc tuyển dụng sẽ quay trở lại
    Lúc này vị trí khó nhất là dev mới vào nghề, còn vị trí tốt nhất có vẻ là những người đã ở trong thị trường rồi

    • Có nhiều điểm giống với làn sóng outsourcing 10~20 năm trước. Các công ty nhỏ và rẻ nhận ra rằng họ có thể thuê cả một đội dev ở nước khác với chi phí thấp hơn một dev ở Mỹ, rồi lao vào với kỳ vọng cao và quy trình thấp
      Họ gần như chẳng chuẩn bị gì để làm cho nó thành công, chỉ mù quáng thuê lựa chọn rẻ nhất, ném cho họ các yêu cầu mơ hồ, rồi gần như không có review kỹ thuật hay giám sát liên tục nào
      Diễn biến cũng gần giống như bạn nói. Ban đầu trông như thành công vì prototype được đẩy ra rất nhanh với thứ code bẩn nhất có thể tưởng tượng, nhưng theo thời gian nợ kỹ thuật và các quyết định tồi trở thành lực cản ngày càng lớn, làm tiến độ chậm dần rồi cuối cùng dự án đứng lại hoặc chết hẳn
      Lần này có thể sẽ khác, nhưng phần lớn công việc đầu sự nghiệp của tôi là đi dọn dẹp những dự án theo đúng mô thức đó. Tôi mong các dev mới đi lên cũng sẽ có cùng loại cơ hội đó
    • Tôi chỉ mong mình trụ được đến lúc bug xuất hiện dày đặc và các dev bắt đầu than cần thêm người
    • Tôi cũng đi đến gần như cùng một kết luận. Tôi đang rất cố gắng dạy các intern đi theo con đường chính thống
    • Tôi đồng ý với cảm giác chung rằng các giải pháp tùy biến phân tán sẽ bùng nổ, cần bảo trì, và kết quả là tuyển dụng có thể tăng lên. Nhưng tôi vẫn còn ngần ngại chưa dám hoàn toàn tin đây là kịch bản có khả năng cao nhất, vì tôi đã thấy quá nhiều thứ
      Trước hết, mức tăng hiệu suất là cực lớn. Lớn hơn bất kỳ công cụ nào ở bất kỳ mức giá nào. Sản phẩm chính của công ty tôi là web app, và vài năm qua chúng tôi đã làm việc viết lại sản phẩm chủ lực
      Chỉ trong một buổi chiều, tôi có thể tạo một dự án mới với stack mong muốn, rồi trong vài giờ vibe coding ra một MVP của sản phẩm mà chúng tôi đã mất nhiều năm để làm
      Nó chưa hoàn hảo, nhưng tôi yêu cầu từng chức năng một bằng các prompt nhỏ, mỗi cái mất 5~10 phút. Trông khá chuyên nghiệp và theo mọi tiêu chuẩn thì là “đủ tốt”
      Nếu có thêm chút thời gian, tôi có cảm giác mình có thể một mình phát hành và duy trì thứ mà trước đây cần cả một đội nhỏ làm trong nhiều năm. Đáng buồn là đây giống một “công cụ thay cả đội ngũ” giá rẻ hơn là công cụ tăng hiệu quả
      Còn có cả cơn sốt AI của các CEO không có nền tảng kỹ thuật. CEO và ban điều hành của chúng tôi đã hoàn toàn chấp nhận bộ công cụ agent của Claude, ngày nào cũng dựng mockup, app và chuỗi công cụ
      Nhìn là thấy họ bị nghiện, và họ đang trực tiếp cảm nhận lợi ích. Chuyện đó chưa xảy ra, nhưng nếu CEO sa thải phần lớn đội dev rồi cùng vài dev giỏi vibe coding toàn bộ ứng dụng thì tôi cũng không ngạc nhiên
      Hiện tại họ nói kiểu “AI không phải thứ thay thế mà là số nhân!” nhưng ngay trong cùng câu lại bảo “nếu nhờ cái này mà vài năm tới khỏi cần tuyển thêm thì quá thắng rồi!”
      Tôi từng bị hỏi thẳng tại sao không thể vibe coding toàn bộ ứng dụng, mà thật sự tôi không có câu trả lời sắc bén. Tôi có vài ý hợp lý như “rồi sẽ không biết cách bảo trì ứng dụng”, nhưng Claude vẫn có thể làm được khá nhiều chỉ với một dev ngồi điều khiển
      Cũng có chuyện “AI có thể vô tình làm ứng dụng đổi khác và chèn bug”, nhưng với observability phù hợp, test, và vài prompt bổ sung, thường có thể sửa trong vài phút đến vài giờ
      Thành thật mà nói, việc công ty tiếp tục duy trì cả một đội dev dường như ngày càng kém hợp lý. Dù có khởi động bao nhiêu dự án hay sáng kiến đi nữa, backlog vẫn giảm rất nhanh còn năng suất của từng dev thì tăng đến mức phi lý
      Các CEO phi kỹ thuật không quan tâm đến nợ kỹ thuật, nợ nhận thức, các thực hành thiết kế phần mềm tệ, việc học code, việc giữ cho dev sắc bén, niềm vui giải quyết vấn đề, hay tính nghệ thuật của thuật toán và kiến trúc tốt
      Điều họ muốn là sản phẩm chạy tạm ổn, tạo ra giá trị, có người trả tiền, và được tung ra với mức đầu tư rẻ nhất có thể. Đáng buồn là AI gần như đáp ứng điều đó trên mọi phương diện
      Tôi hy vọng khối lượng phần mềm mới được tạo ra sẽ kéo theo nhu cầu tăng lên, nhưng lo rằng vẫn không đủ để bù lại mức tăng năng lực sản xuất khổng lồ mà AI đem lại
  • Tháng sau tôi đã để trống thời gian để học TypeScript. Tôi không định loại bỏ AI hoàn toàn trong quá trình đó
    Kế hoạch là đọc một cuốn sách từ đầu đến cuối, rồi sau đó mới viết code. Hình như tôi nghe Mitchell Hashimoto nói về cách này trong một podcast nào đó
    Vì tôi đã dành rất nhiều thời gian cho kiểu prompt coding như trong bài gốc, nên vừa háo hức vừa sợ

  • Không thể vì không tự tay viết code mà trở nên kém thông minh hơn được. Nếu điều đó có thể xảy ra thì mỗi lần đi nghỉ phép ta phải ngu đi mới đúng
    Trò chuyện với chatbot không làm các kết nối thần kinh trong não chết đi
    Điều thực sự xảy ra chỉ là bạn tạm ngưng sử dụng một kỹ năng có tính kỹ thuật cao. Bất kỳ ai trên Trái Đất này nếu không dùng một kỹ năng trong một thời gian thì cũng sẽ “quên” đi một phần của nó
    Nhưng thông tin không biến mất; chỉ là nó bị đẩy xuống ưu tiên thấp hơn bởi những thông tin liên quan hơn. Ôn lại một chút là quay về ngay
    Ngay cả trước thời AI, tôi cũng có những quãng vài tháng không viết trọn vẹn một chương trình bằng một trong nhiều ngôn ngữ. Tôi quên cả thứ đơn giản như bắt đầu định nghĩa hàm thế nào
    Nhưng tôi không thật sự quên; chỉ cần liếc qua một hàm cũ là tôi nhớ lại toàn bộ các cú pháp khác có thể dùng trong phần định nghĩa hàm. Không cần hoảng, não bạn vẫn đang hoạt động bình thường

  • Ở trường người ta nói rất nhiều về rủi ro của AI, nhưng cùng kiểu rủi ro đó áp dụng cho bất kỳ môi trường học tập nào
    Gần đây tôi bắt đầu một công việc mới, và AI đang khiến việc onboarding khó hơn rất nhiều. Tôi thích nghi với vai trò chậm hơn hẳn so với các đồng nghiệp ít dùng AI hơn
    Tôi đang code bằng một ngôn ngữ không quen, nên sức cám dỗ của vibe coding còn mạnh hơn. Dù vậy tôi vẫn đủ trình để nhận ra khi Claude trả lời vô lý hoặc dài dòng không cần thiết
    Nhưng càng dành nhiều thời gian bảo Claude viết code hộ, tôi càng ít cảm thấy mình đang phát triển các năng lực mà công việc này đòi hỏi. Khi mở PR, tôi cũng không có đủ tự tin vào phần việc của mình nên thấy rất khó chịu
    Thành thật mà nói, còn một chuyện nữa là tôi đang bảo Claude tìm trong Slack và tài liệu những thứ đáng lẽ tôi nên hỏi con người
    AI đang nuôi dưỡng chứng lo âu xã hội của tôi, cám dỗ tôi né tránh sự tiếp xúc giữa người với người, thứ vốn tốt cho việc hiểu vấn đề và cũng cần thiết cho tương tác xã hội cơ bản
    Nghe thì có vẻ như trốn tránh trách nhiệm, nhưng cần phải chỉ ra rằng một số công nghệ có thể đặc biệt gây nghiện với một kiểu người nào đó và nhốt họ trong vòng lặp hành vi tiêu cực
    Nếu tôi trì hoãn sự phụ thuộc vào AI bây giờ, thì sau này có lẽ tôi sẽ phát triển đủ năng lực để dễ xác minh kết quả và giao cho AI những việc lặp đi lặp lại. Khó nhưng cần thiết

    • Tôi khuyên bạn nên chuyển sang bảo Claude dạy bạn thứ bạn cần. Ví dụ: làm sao để đổi chuỗi này thành chữ hoa? Nên tiếp cận vấn đề này như thế nào? Có cách làm chuẩn cho việc này không?
      Như vậy bạn sẽ học được trong quá trình đó. Không cần dùng nó như công cụ tìm kiếm; chỉ cần hỏi những gì bạn cần biết ngay lúc đó, nó sẽ rung lắc chuỗi token và đưa ra thứ gì đó đặc biệt hữu ích cho người mới với ngôn ngữ đó
      Cách này giúp bạn thực hiện kế hoạch là xây kỹ năng trước rồi mới bắt đầu ủy quyền sau
      Tôi làm vậy từ trước đến giờ, và với tôi đó là một sự cân bằng tốt. Bảo Claude viết ra đoạn code mà mình không biết đánh giá thì có vẻ như điên rồ, nhưng hình như quan điểm này lại là thiểu số
    • Hiện tại là thời điểm tệ nhất cho đào tạo kiểu học việc, tức thực tập. Ai cũng kỳ vọng AI giúp tung sản phẩm ra nhanh và tốt, nhưng với tốc độ lặp nhanh như vậy thì gần như không còn thời gian để trau dồi kỹ năng
    • LLM khá hữu ích để tóm tắt codebase và nắm bắt nhanh
      Thật ra đó là một trong số rất ít use case thực sự hữu ích mà tôi từng trải nghiệm ngoài vibe coding
  • Tôi không dùng AI để thay thế tư duy, mà để thoát khỏi việc viết những đoạn code lặp đi lặp lại và nhàm chán. Sau khi prototype đã được triển khai, AI đủ năng lực để viết code
    Tôi tự viết bản prototype thô sơ ban đầu cho proof of concept. Không chú thích, hardcode biến kiểu vậy. Sau đó AI sẽ mài giũa nó lên mức sản phẩm
    Nhờ thế tôi có thể chỉ huy một đội agent thay vì phải quản lý những con người có đạo đức làm việc, năng lực và khả năng giữ chất lượng code cao rất khác nhau
    AI cũng thường khá giỏi trong việc giữ theo các pattern sẵn có của codebase hoặc bám theo best practice trong ngành
    Khi dùng AI, bạn sẽ không còn viết nhiều bằng ngôn ngữ lập trình nữa. Dù là tiếng Anh hay ngôn ngữ dùng để trò chuyện với LLM, đó sẽ trở thành ngôn ngữ chính của bạn

    • “Sau khi prototype đã được triển khai, AI hoàn toàn đủ năng lực để viết code” à, hoàn toàn ư? Chắc chắn là còn rất xa mới tới mức hoàn toàn
      Phần lớn mỗi ngày của tôi giờ đây là sửa những thứ không hoàn chỉnh mà robot sinh code tạo ra
      Tất nhiên tôi không đang mài prototype, mà đang bảo trì, phát triển và hiện đại hóa một sản phẩm quan trọng đã hơn 8 năm tuổi
    • Rốt cuộc thì code lặp đi lặp lại và nhàm chán là cái gì?
      Thành thật mà nói, trong một dự án thì mấy thứ code lặp nhàm chán đó thực sự chiếm bao nhiêu?
    • Phần lớn thời gian là dùng LLM để lập kế hoạch công việc và phác ra prototype. Nếu không thì mọi thứ sẽ thành một mớ hỗn độn kinh khủng
      Cần prompt được trau chuốt kỹ, nên bạn phải thực sự hiểu framework nền và ngôn ngữ. Nếu không thì mọi thứ sẽ thành một mớ hỗn độn kinh khủng
      Tôi cũng không hiểu quản lý nhiều agent kiểu gì, vì thường chúng kết thúc khá nhanh. Giữa các lần chạy bạn cũng chẳng làm được gì. Nó cứ ở trạng thái “chỉ thêm 1 phút nữa là xong” liên tục
      Xong rồi thì bạn phải đánh giá đầu ra. Thành ra trong lúc “làm việc” cũng không thể suy nghĩ sâu. Cảm giác này rất giống mạng xã hội: chú ý liên tục, phần thưởng gần như tức thì
      Cuối cùng khả năng tập trung của bạn cứ thế bị phá hỏng, mà là phá hỏng thật
      Vấn đề là các kế hoạch kiểu này tan biến chỉ sau vài giờ, rồi sau đó bạn phải phân tích đầu ra và lặp lại để lọc ra những phần ngu ngốc
      Xử lý đầu ra của nhiều agent là chuyển đổi ngữ cảnh liên miên. Chúc bạn làm tốt điều đó về lâu dài
      Nếu để agent chạy nhảy tự do muốn làm gì thì làm, đầu ra gần như chắc chắn sẽ là một mớ hỗn độn kinh khủng. Hết
  • Trong dự án hiện tại tôi code bằng Java, Ruby và JavaScript mỗi ngày. Tôi đang tốn rất nhiều token chỉ để xác nhận các khác biệt giữa ngôn ngữ mà trước đây tìm Google đơn giản là ra
    Tôi cứ hay nhầm giữa toán tử null-safe của Ruby và JavaScript, hay câu lệnh continue/break của Ruby và Java
    Chắc Claude sẽ khá thất vọng vì việc phức tạp nhất tôi bắt nó làm chỉ là refactor các vòng lặp Java cũ sang stream hiện đại hơn. Loại code đó có thể gần như không thể để con người viết ngay tại chỗ

    • “Gần như không thể để con người viết” nghe buồn thật. Những refactor như vậy phạm vi hẹp, dễ kiểm tra tính đúng đắn, và giống như mấy câu đố nhỏ, nên lại là loại việc tôi thích nhất
      Tự viết collector hoặc dùng những phần hơi obscure hơn của thư viện chuẩn thì càng được cộng điểm
    • Google bị hỏng cũng chẳng giúp ích gì. Thứ trước đây chỉ cần một cú tìm Google đơn giản, giờ bằng cách nào đó đã trở thành trải nghiệm tích hợp xuống cấp có AI chen vào rồi
  • Cũng có ví dụ theo hướng ngược lại. Việc trao đổi ý tưởng với AI ở chế độ /plan, trong lúc tôi bắt lỗi các giả định sai của AI, và khi cần thì AI diễn giải rõ các lỗ hổng kiến thức, thật ra khá kích thích về mặt trí tuệ và có vẻ khiến tôi thành kỹ sư tốt hơn
    Điều cốt lõi là phải tiếp cận AI theo kiểu Socrates, suy nghĩ cẩn thận về mọi đề xuất của nó, và đừng để bị thôi miên bởi giọng điệu đầy tự tin cùng logic được cấu trúc hoàn hảo

  • Tôi lại có trải nghiệm hoàn toàn ngược lại. Có lẽ vì trong lĩnh vực tôi làm, code/phần mềm không phải sản phẩm mà là công cụ
    Tôi đang học nhanh hơn và nhiều hơn rất nhiều. Ví dụ hiện giờ tôi làm việc với phần cứng quang phổ như Raman, NMR, và tôi để Claude viết code để giao tiếp với thiết bị ở cấp độ thiết bị/phần cứng
    Thay vì tự lục datasheet và viết cả đống wrapper code, Claude làm việc đó giúp tôi
    Tôi có thể thảo luận nhiều kỹ thuật với Claude, triển khai rồi kiểm thử, nên tiến nhanh hơn rất nhiều. Trước đây vòng lặp này hẳn sẽ lâu hơn 5~10 lần
    Tôi không còn phải tiêu tốn nỗ lực tinh thần vào việc viết mấy đoạn code tủn mủn chỉ để xem kết quả, nên đang học được nhiều hơn hẳn về thiết bị, kỹ thuật và dữ liệu này
    Tôi đã làm dev hơn 10 năm. Giờ tôi thấy vui vì cuối cùng cũng đang tiến vào một thế giới nơi có thể dùng code như công cụ thay vì cứ phải nghĩ đến chuyện biến code thành sản phẩm

    • Việc code là công cụ chứ không phải sản phẩm có thể chỉ là chuyện riêng của bạn thôi. Code như một công cụ vốn luôn tồn tại
  • Tôi nghĩ sẽ không có nhiều người còn được hưởng đặc quyền có thời gian ngồi viết code bằng tay
    Nếu nhìn vào loại code chúng ta thực sự viết, thì ít nhất với tôi phần lớn không phải thứ gì mới mẻ hay ngầu; mà chỉ là kiểu “làm backend cho X”, sửa bug đơn giản, những việc lặt vặt cho lập trình viên từ mid tới senior
    Những việc khó hơn thường nằm ở các quyết định kiến trúc bên trên code, và tôi cũng đang nghĩ xem có thể xây hệ thống thế nào để LLM không chệch khỏi việc triển khai tính năng
    Điều tôi muốn nói là hiện tại việc tự tay viết code có thể còn ổn, nhưng về sau cổ đông hoặc cấp trên sẽ muốn phát hành tính năng và sửa bug nhanh hơn nhờ có LLM hỗ trợ
    Nếu bạn không đạt được tốc độ đó thì hiệu suất sẽ bị đánh giá thấp. Cuối cùng điều quan trọng không phải là ta muốn gì mà là cổ đông muốn gì
    Tất nhiên nếu bạn không kiệt sức thì vẫn có thể tự viết code bằng tay trong thời gian rảnh. Tôi không muốn nghe như một kẻ bi quan, nhưng tôi nghĩ sớm thôi điều này sẽ khá thực tế

    • Vấn đề ngay từ đầu không phải là tốc độ. Tiến triển nhanh phần lớn không đến từ việc viết cùng những thành phần nguyên thủy nhanh hơn, mà từ việc thiết kế hệ thống tốt hơn và tạo ra các abstraction vững chắc
    • Ai cũng có thời gian để tự tay viết code. Vì AI thực tế không tạo ra mức tăng năng suất