30 điểm bởi GN⁺ 2025-04-04 | 16 bình luận | Chia sẻ qua WhatsApp
  • Lúc mới dùng các công cụ viết mã AI, tôi đã kinh ngạc trước sự hiệu quả và cảm giác mới lạ mà chúng mang lại
  • Đặc biệt, chúng giúp phân tích lỗi biên dịch C++ rất tốt, đến mức gần như có cảm giác như phép màu
  • Khi dùng GitHub Copilot và nhiều công cụ tích hợp trình soạn thảo dựa trên LLM khác nhau, chúng dần trở thành một phần trong quy trình phát triển của tôi
  • Nhưng đến cuối năm 2024, tôi đã gỡ bỏ mọi tính năng tích hợp LLM khỏi trình chỉnh sửa mã
  • Tôi vẫn thỉnh thoảng dùng AI, nhưng không còn đưa nó vào quy trình làm việc chính

Trải nghiệm tương tự với Tesla FSD

  • Trong giai đoạn 2019~2021, tôi thường xuyên dùng FSD khi lái xe Tesla
  • Khi dùng FSD trên đường cao tốc, mức độ tập trung vào việc lái xe của tôi dần giảm đi
  • Việc phụ thuộc vào FSD khiến khả năng tự lái xe của tôi bị suy yếu
  • Khi quay lại lái một chiếc xe thông thường, tôi mất khá nhiều thời gian mới lấy lại được sự tập trung

Trải nghiệm dùng trình chỉnh sửa mã AI

  • Càng dùng công cụ AI, tốc độ làm việc càng nhanh nhưng năng lực nền tảng của tôi lại yếu đi
  • Trong các dự án phụ, khi không thể dùng công cụ AI, tôi cảm thấy rất bất tiện và mất tự tin
  • Tôi thấy khó khăn ngay cả với những việc cơ bản như định nghĩa hàm hay viết mã kiểm thử
  • Khi phụ thuộc vào AI, tôi dần mất tự tin trong việc tự mình đưa ra các quyết định triển khai
  • Cuối cùng, tôi nhận ra rằng năng lực của mình đã yếu đi trong các công việc phức tạp

Sự mất mát của cảm giác trực giác

  • Từ tiếng Đức Fingerspitzengefühl chỉ năng lực phán đoán trực giác mà người có kinh nghiệm sở hữu
  • Trong việc viết mã, đây cũng là thứ hình thành khi ta ngày càng quen với ngôn ngữ và framework
  • Cảm giác này rất quan trọng trong những lựa chọn kỹ thuật chi tiết như dùng con trỏ, chọn thư viện chuẩn hay dùng assert
  • Các công cụ AI làm suy yếu cảm giác đó
  • Khi xét đến chất lượng mã và khả năng bảo trì, trực giác của con người là vô cùng quan trọng

Phát triển phần mềm vẫn có thể làm được nếu không có công cụ AI

  • Nỗi sợ rằng không có công cụ AI thì sẽ không làm việc được là điều bị phóng đại
  • Trên thực tế, AI không hữu ích đến vậy trong các dự án quy mô lớn hoặc hệ thống legacy
  • Với các dự án dùng công cụ nội bộ, framework và DSL nội bộ, LLM hầu như không giúp được gì
  • Không nên giao mã liên quan đến bảo mật như JWT, RBAC cho AI
  • Bảo mật là lĩnh vực mà bạn phải tự hiểu và tự chịu trách nhiệm
  • Nếu để AI đảm nhiệm từ viết mã, review PR đến triển khai, các vấn đề bảo mật sẽ tăng mạnh

Thiết lập điểm chuẩn cho việc dùng AI

  • AI hữu ích, nhưng tôi tránh cách dùng tích hợp trực tiếp vào trình soạn thảo
  • Tôi tự nhập ngữ cảnh và chỉ nhận phần mã cần thiết rồi áp dụng thủ công
  • Ví dụ: chuyển đổi test, chuyển đổi phép tính SIMD, giải mã dữ liệu nén
  • Cách này khiến tôi cảm thấy có trách nhiệm hơn với mã, đồng thời cũng tiết kiệm chi phí
  • Dùng AI cho mục đích học tập thì rất có ích: đặc biệt hữu dụng khi yêu cầu giải thích về mã assembly, shader, mã mạng, v.v.
  • Trên blog cá nhân, tôi không dùng nội dung do AI tạo ra và vẫn ưu tiên sáng tạo của con người

Tiếp tục làm điều mình yêu thích

  • Ngoài hiệu quả và năng suất, việc tiếp tục làm điều mình yêu thích cũng rất quan trọng
  • Giống như cờ vua, dù AI có thể chiến thắng, con người vẫn tiếp tục tận hưởng hoạt động đó; lập trình cũng có thể được duy trì như một niềm vui
  • Điều quan trọng không chỉ là làm tốt hơn, mà là tiếp tục lập trình vì bản thân bạn thật sự thích nó

Lời khuyên dành cho lập trình viên mới vào nghề

  • Đừng trở thành một “junior vĩnh viễn” chỉ vì phụ thuộc vào AI
  • Hãy rèn luyện năng lực tự viết mã và hiểu sâu nguyên lý vận hành của hệ thống
  • Điều quan trọng là nâng cao năng lực bằng cách học cấu trúc vận hành ở tầng bên dưới
  • AI chỉ là công cụ, không phải một giải pháp hoàn chỉnh tự thân
  • Đôi khi cũng cần luyện tập làm việc mà không có AI
  • Chỉ “vibe coding” thì không thể trở thành một lập trình viên giỏi
  • Nếu bạn không thể viết code khi không có AI, thì đó không phải là viết code thật sự

Kết luận

  • AI là sự đánh đổi kiến thức để lấy tốc độ
  • Đôi khi sự đánh đổi này đáng giá, nhưng việc rèn luyện nền tảng cơ bản là điều bắt buộc
  • Những lập trình viên giỏi luôn lặp đi lặp lại việc luyện tập các kỹ năng nền tảng
  • AI vẫn còn rất xa mới có thể thay thế nghề nghiệp, và các công ty phần lớn đang tạo ra FOMO để thu hút đầu tư
  • AI chỉ là công cụ, không phải vật thay thế cho tư duy
  • Điều quan trọng là luôn giữ sự tò mò và tiếp tục học hỏi

16 bình luận

 
supermaxi 2025-04-28

Cái được gọi là nền tảng cơ bản của một lập trình viên giỏi chẳng phải vẫn không thay đổi kể từ khi máy tính được phát minh ra sao?

 
space0403 2025-04-05

Tôi cũng lúc chuẩn bị cho bài test coding cứ theo thói quen mở Cursor, đến mức bấm Tab còn nhiều hơn gõ phím... haha. Cuối cùng với một tâm thế nhẹ nhõm, tôi quay lại vscode.

 
ahwjdekf 2025-04-05

Có lẽ ngay cả những người làm ra các công cụ AI cũng đều biết vấn đề này. Chỉ là họ đang im lặng về nó thôi

 
potatium 2025-04-05

Nếu phụ thuộc vào AI một cách vô thức, có khi bạn sẽ trở nên về mặt khái niệm y hệt một người quản lý bất tài: không hiểu cả kiến trúc lẫn không tự viết nổi một dòng code, chỉ biết giao việc cho cấp dưới, không nhận ra những rủi ro tiềm ẩn trong code, và đến khi có vấn đề cũng không tìm ra cách giải quyết. Chỉ là công cụ được dùng đổi từ trí thông minh của con người sang trí tuệ nhân tạo mà thôi.

 
aqqnucs 2025-04-04

Mấy việc code tay cực kỳ lặp đi lặp lại thì đúng là không gì bằng cái này...

 
dbs0829 2025-04-04

Tôi nhìn chung khá đồng cảm. Tôi nghĩ hiện tại vẫn có những lĩnh vực cần đến kiểu cảm giác như vậy, và tôi cho rằng sự khác biệt giữa việc nhận thức được và không nhận thức được là khá lớn. Nên dùng như một công cụ, nhưng cũng cần phải nhận thức đầy đủ về điều đó.

 
dudghks5722 2025-04-04

Trải nghiệm sử dụng trình soạn thảo mã AI, sự mất đi cảm giác trực quan, và lời khuyên dành cho lập trình viên mới là 3 nội dung khiến tôi đồng cảm rất nhiều.

 
reagea0 2025-04-04

Thế thì khỏi dùng cả máy tính luôn cho rồi..

 
plumpmath 2025-04-06

Haha, hoàn toàn đồng ý.

 
plumpmath 2025-04-06

Hahahahahahahahahaha

 
ifmkl 2025-04-04

Bản năm 2025 của anh Kim, đừng dùng Pangsion... có lẽ vậy chăng h

 
dbs0829 2025-04-04

Xem bài viết thì có vẻ không phải là nói đừng dùng vào việc tay chân lặp lại, mà là đừng phó mặc việc suy nghĩ cho AI.

 
hhkkkk 2025-04-04

Haha +1 luôn.

 
tujuc 2025-04-04

Càng ngày... lại xuất hiện những tình huống cần sự rèn luyện có chủ đích nhỉ... :)

 
kandk 2025-04-04

???: "cứ tiếp tục dùng putty và vi"

 
GN⁺ 2025-04-04
Ý kiến trên Hacker News
  • Tin rằng có hai loại kỹ năng: kỹ năng độc lập và kỹ năng nền tảng

    • Trong lịch sử, con người đã mất đi và có được nhiều kỹ năng độc lập
    • Logic, suy luận, khả năng diễn thuyết và sự hiểu biết về các nguyên lý cơ khí, kỹ thuật nền tảng hẳn đã hữu ích từ thời Hy Lạp cổ đại hay nước Pháp thế kỷ 18
    • AI phù hợp để dùng cho các kỹ năng độc lập trong lập trình
    • Nếu giao kiến trúc nền tảng của dự án cho AI, khả năng giải quyết vấn đề cốt lõi và thiết kế phần mềm có thể bị suy yếu
    • AI hữu ích với kỹ năng độc lập, nhưng vẫn còn hạn chế với kỹ năng nền tảng
    • Các trình soạn thảo mã dựa trên AI hữu ích mà không gây rủi ro suy giảm kỹ năng dài hạn
  • Giờ không còn dùng các công cụ AI ở cấp độ trình soạn thảo như Cursor, mà giải quyết vấn đề bằng hoàn thành văn bản nội tuyến và chat

    • Cảm thấy não mình đang bị thui chột vì phụ thuộc vào AI quá nhiều
    • Trong tương lai, khoảng cách giữa những người phụ thuộc quá mức vào AI và những người không như vậy sẽ còn lớn hơn
  • Vẫn viết phần lớn mã bằng tay, nhưng dùng LLM cho tìm kiếm ngữ nghĩa để làm phong phú quá trình nghiên cứu

    • Không giao cho LLM viết toàn bộ tệp
    • Có một câu trích rất hay về thị trường công cụ AI: nhiều công ty đang dùng FOMO như một chiến lược bán hàng
  • Đã tắt tính năng hoàn thành mã, vì việc đọc các gợi ý tạo ra gánh nặng tinh thần lớn

    • Chỉ dùng chat khi thực sự cần
  • Sách của Nicholas Carr giải thích về cơ chế khiến kỹ năng bị mai một khi càng phụ thuộc vào tự động hóa

    • Đã tắt Copilot và dùng chat ít hơn
    • Quyết định đó được đưa ra vì hai lý do: kỹ năng đi xuống và việc viết mã trở nên kém vui hơn
    • Thích tự mình suy nghĩ và tận hưởng việc cải thiện kỹ năng
    • Quay lại tự viết mã một mình thì chậm hơn nhưng là trải nghiệm thú vị hơn
  • Tương tự như các bài kiểu "Vì sao mọi lập trình viên nên học Assembly"

    • Năng lực viết mã của AI sẽ tiếp tục cải thiện và sẽ đưa ra các giải pháp đạt 90%, đủ để ra thị trường
    • Có thể chưa được tối ưu hoặc chưa hoàn toàn an toàn, nhưng cũng không khác quá nhiều so với phần lớn các dự án phần mềm ngoài đời thực
  • Chỉ dùng AI hoàn thành dòng đi kèm với Rider

    • Đây là sự pha trộn hợp lý giữa tự động hoàn thành mã kiểu cổ điển và một chút thông minh bổ sung
  • Công cụ AI làm cuộc sống trở nên tiện lợi hơn

    • Vẫn có thể lái xe số sàn, nhưng hộp số tự động tiện hơn
    • Trong lập trình cũng vậy, muốn tập trung vào vấn đề thực tế
    • Công nghệ tồn tại để làm cho cuộc sống thuận tiện hơn
  • Việc mất kỹ năng diễn ra theo cả hai chiều

    • Có thể bỏ lỡ kỹ năng ban đầu cần có để sử dụng LLM hiệu quả
    • LLM có thể sẽ làm thay đổi các ngôn ngữ lập trình
  • Dùng nó thay cho tìm kiếm Google khi cần tìm một vấn đề cụ thể

    • Vẫn thích Google hơn vì kết quả từ AI quá dài và lan man, nhưng Google cũng đang ngày càng kém hữu dụng