28 điểm bởi GN⁺ 2025-10-12 | 3 bình luận | Chia sẻ qua WhatsApp
  • Gần đây, trong môi trường giáo dục lập trình, “địa ngục vibe coding” đang nổi lên như một vấn đề mới thay cho “địa ngục tutorial”
  • Nếu địa ngục tutorial là trạng thái "không thể làm ra bất cứ thứ gì nếu không có tutorial", thì địa ngục vibe coding có nghĩa là "không thể code nếu không có AI, và không hiểu đoạn mã do AI tạo ra hoạt động như thế nào"
  • Việc lạm dụng công cụ AI làm suy giảm động lực học tập, đồng thời đang xuất hiện một nghịch lý là những người có mức độ hiểu biết về AI thấp lại sử dụng AI nhiều hơn
  • Công cụ AI, nếu được sử dụng đúng cách, có thể hỗ trợ học tập rất hiệu quả, nhưng kiểu dùng chỉ để “lấy đáp án” một cách máy móc sẽ cản trở việc hình thành hiểu biết mang tính xây dựng
  • Cốt lõi là nỗ lực tự suy nghĩ và tự giải quyết trong quá trình học, và điều quan trọng là xây dựng thái độ tích lũy kinh nghiệm giải quyết vấn đề mà không phụ thuộc vào tutorial hay hỗ trợ AI

Bối cảnh của vấn đề: từ địa ngục tutorial đến địa ngục vibe coding

  • Vào năm 2019, vấn đề lớn của giáo dục lập trình là "địa ngục tutorial"
    • Làm theo tutorial thì thành công, nhưng một mình thì không thể tạo ra bất cứ thứ gì
    • Dành nhiều thời gian xem video về lập trình hơn là lập trình thực sự, và không hiểu được các khái niệm cốt lõi
    • Kết quả là chỉ tích lũy kiến thức hời hợt, không hiểu nguyên lý vận hành bên trong, nên ngoài thực tế không thể tự viết mã
  • Để giải quyết điều này, Boot.dev tập trung vào ba điểm
    • Chương trình học chuyên sâu: nhấn mạnh sự cần thiết phải học nền tảng CS cả ngoài môi trường đại học truyền thống
    • Phương pháp lấy thực hành làm trung tâm: học khái niệm nào cũng đi kèm với việc trực tiếp viết mã
    • Tăng cường rich text thay vì video: video có nguy cơ chỉ dẫn đến tiêu thụ thụ động
  • Những bài giảng YouTube dài từng đạt hàng triệu lượt xem vào năm 2019 nay còn khó đạt nổi 50.000 lượt xem
    • Các kênh như FreeCodeCamp, Traversy Media, Web Dev Simplified đang cho thấy xu hướng này
  • Tuy vậy, dữ liệu Google Trends cho "learn to code" vẫn duy trì mức độ quan tâm cao
  • Khoảng 1.300 người dùng mới đăng ký Boot.dev mỗi ngày, và trong 18 tháng gần đây, những lời phàn nàn về địa ngục tutorial đã giảm đi, nhưng một dạng khó khăn mới đang xuất hiện

Định nghĩa của địa ngục vibe coding

  • Đặc trưng của địa ngục tutorial
    • "Không thể làm được gì nếu không có tutorial"
    • "Không hiểu tài liệu nên cần video"
    • "Ngay cả việc đơn giản cũng cần framework phức tạp"
  • Đặc trưng của địa ngục vibe coding
    • "Không làm được gì nếu không có sự giúp đỡ của Cursor"
    • "Tôi đã làm ra một game thủ thành cực ngầu. Đây là link http://localhost:3000";
    • "Tôi không biết vì sao Claude lại thêm 6.379 dòng chỉ để lazy-load hình ảnh"
  • Hiện nay, những người tự học đang tạo ra rất nhiều thứ, nhưng lại xây dựng các dự án mà không phát triển được mô hình tư duy về cách phần mềm vận hành
  • Họ vật lộn với hiện tượng hallucination của AI, loay hoay với các bot chỉ chăm chăm làm cho test pass, và mù quáng tin vào mã do AI sinh ra thay vì thực sự giải quyết vấn đề

Tương lai và thực tế của AI coding

  • Tác giả khá lạc quan rằng trong ngắn hạn AI sẽ không hoàn toàn thay thế lập trình viên
    • Đã 3 năm trôi qua kể từ khi người ta nói "chỉ còn 6 tháng nữa là AI cướp việc", nhưng các công ty vẫn đang tuyển lập trình viên
  • GPT-5 đã ra mắt nhưng chỉ là cải thiện dần dần so với GPT-4, và điều này được xem là bằng chứng cho thấy AGI sẽ không đến ngay trong tương lai gần
  • Tác giả dùng công cụ AI mỗi ngày nhưng không chắc năng suất thực tế có tăng lên bao nhiêu
    • Không rõ AI khiến ta làm việc hiệu quả hơn hay lười hơn
  • Kết quả nghiên cứu năm 2025: các lập trình viên giả định AI sẽ giúp tăng năng suất 20-25%, nhưng trên thực tế lại chậm hơn 19%
    • Một kết quả đáng thất vọng so với khoản đầu tư 7 nghìn tỷ USD

Rủi ro AI làm suy giảm động lực học tập

  • Văn hóa sử dụng AI có thể tác động tiêu cực đến động lực của người học
  • Điều đáng lo nhất trong cơn sốt AI (bong bóng?) là sự xuất hiện của một thế hệ có thái độ "Tại sao phải học? AI biết hết rồi mà"
  • Nếu AI trên thực tế không thể thay thế mọi công việc white-collar, thì chúng ta không chỉ phải đối mặt với bong bóng thị trường chứng khoán mà còn cả sự khan hiếm nhân lực có học vấn
  • Các nhà đầu tư không có nền tảng kỹ thuật thì hiểu lầm rằng “AI đã thay thế toàn bộ việc coding”, còn các lập trình viên senior thì vẫn chưa tìm ra cách hữu ích để tích hợp công cụ AI vào công việc hằng ngày
  • Có xu hướng người càng thiếu hiểu biết về AI lại càng dùng AI nhiều hơn, điều này đáng lo ngại
    • Nó hoạt động như cái bẫy ‘Dunning-Kruger’ tối hậu: người thiếu kiến thức lại tưởng rằng mình hiểu rất rõ
    • Người học đi đến kết luận rằng tự phát triển bản thân là vô nghĩa vì "AI đã biết hết rồi"

AI có hữu ích cho việc học không?

  • Mối quan tâm xã hội đối với việc học code vẫn rất cao
  • AI có thể có ích cho việc học, nhưng tồn tại hai vấn đề mang tính cấu trúc
  • Thứ nhất: vấn đề nịnh ý (sycophant)

    • Chatbot AI có xu hướng đồng tình quá mức với quan điểm của người hỏi
    • Nếu thử trò chuyện “về ROAS”, với cùng một bộ dữ liệu, tùy theo hướng đặt câu hỏi mà nó có thể đưa ra kết luận hoàn toàn trái ngược nhau, nhưng vẫn trả lời với giọng điệu tự tin như chuyên gia
    • Điều này tước đi của người học cơ hội được trải nghiệm việc kiểm chứng, tư duy phản biện và bị chỉ ra lỗi sai
      • Ta tìm đến chuyên gia là vì muốn họ nói cho ta biết khi ta sai
      • IRC chat hay Stack Overflow từng làm điều này rất tốt (có lẽ là quá tốt)
      • Chatbot LLM (mô hình ngôn ngữ lớn) có xu hướng mạnh là không sửa được những hiểu lầm nền tảng vốn có của người học
      • Sinh viên ngày nay trò chuyện thoải mái với LLM và nghe được điều họ muốn nghe, chứ không phải điều họ cần nghe
  • Vấn đề thứ hai: người học muốn một ‘ý kiến’ thực chất

    • AI đưa ra lập trường cân bằng quá mức
      • "Một số người nghĩ X, một số người nghĩ Y"
      • Điều đó khiến người học càng khó quyết định mình đồng ý với bên nào
    • Tác giả đã thử prompt để nó đóng vai "người theo chủ nghĩa tư bản" hoặc "nhà cách mạng Marxist", nhưng không nhận được kết quả thỏa đáng
    • Người học muốn nghe ý kiến và bình luận đến từ trải nghiệm thực tế
      • DHH về lý do loại bỏ TypeScript khỏi Turbo
      • Anders Hejlsberg về những gì TypeScript giải quyết cho lập trình viên JavaScript
      • Chính qua những ý kiến thực với thiên kiến và bối cảnh rõ ràng của từng tác giả mà mô hình tư duy tinh tế mới được hình thành
    • Kiểu trả lời trung lập và dè dặt đặc trưng của LLM cản trở việc nội tại hóa tri thức thực sự

Khi nào AI thực sự giúp ích cho việc học

  • AI, nếu dùng đúng cách, là một công cụ tuyệt vời cho việc học
  • Chưa từng có thời điểm nào việc học code lại dễ đến thế
  • Trường hợp Boots của Boot.dev (công cụ hỗ trợ học tập bằng AI)
    • Sinh viên dùng để trò chuyện với AI tutor (Boots) nhiều gần gấp 4 lần so với việc xem instructor solution (đáp án lý tưởng)
    • Không giống chatbot thông thường, Boots giúp việc học theo các cách sau
      • Được prompt sẵn để không trực tiếp nói ra đáp án
      • Sử dụng phương pháp Socrates để dẫn dắt sinh viên suy nghĩ sâu hơn về vấn đề
      • Có thể truy cập lời giải của giảng viên nên xác suất hallucination về đáp án thấp hơn nhiều
      • Có tính cách vui nhộn (một chú gấu pháp sư)

Cách thoát khỏi địa ngục vibe coding

  • Kết luận lại, dù là địa ngục tutorial hay địa ngục vibe, trải nghiệm “đừng giao cho người khác, hãy tự mình làm thử” là cực kỳ quan trọng
    • Địa ngục tutorial: tắt video và tự tay viết mã để tích lũy trải nghiệm
    • Địa ngục vibe: tắt AI autocomplete như Copilot, rồi tự mình tích lũy kinh nghiệm giải quyết vấn đề
  • Những thứ nên tránh:
    • AI autocomplete trong editor
    • Xử lý dự án bằng agent mode và các công cụ tự động hóa AI
  • Những thứ có thể tận dụng:
    • Chatbot trả lời câu hỏi, giải thích khái niệm và cung cấp ví dụ
    • Dùng system prompt hướng nó hỏi theo phương pháp Socrates để thúc đẩy suy nghĩ sâu
    • Dùng system prompt yêu cầu trích nguồn và gắn link tài liệu khi đưa ra khẳng định để tăng độ tin cậy thông tin

Nguyên tắc cốt lõi

  • Việc học nhất định phải có sự khó chịu
    • Địa ngục tutorial cho phép ta né tránh cảm giác khó chịu bằng cách xem người khác code
    • Địa ngục vibe coding cho phép ta né tránh cảm giác khó chịu bằng cách để AI viết mã
  • Học thật sự xảy ra khi ta bị mắc kẹt, thất vọng và quan trọng nhất là bị buộc phải giải quyết vấn đề
    • Đó là cách mạng lưới thần kinh của con người được tái kết nối
  • Nếu phóng đại quá mức khái niệm "học phải khó" thì nó có thể trở thành cái cớ cho thiết kế giáo dục tồi
    • Tác giả không ủng hộ điều đó
    • Dù một khái niệm được giải thích theo cách tốt nhất đi nữa, sinh viên vẫn phải vật lộn với nó và tự mình dùng nó trong bối cảnh mới thì mới thực sự hiểu được
  • Học thật sự được hoàn thiện trong quá trình tự mắc kẹt, tự thất vọng và tự dùng sức mình để vượt qua

3 bình luận

 
aer0700 2025-10-12

Dù hơi khác ngữ cảnh một chút, nhưng việc “địa ngục tutorial” xảy ra cũng một phần là vì tutorial về framework vốn không được dùng như tài liệu giáo dục CS cơ bản.
Một người mới xem tutorial Django và làm thử ứng dụng poll thì không thể tự mình làm blog, bởi vì tutorial Django là bài viết nhằm giải thích Django cho những người đã biết sẵn HTTP là gì, template là gì, WS là gì, DB là gì, v.v., chứ không phải bài viết giải thích về web. Có rất nhiều ngữ cảnh đã bị lược bỏ trong tutorial Django, và tôi nghĩ đó chẳng phải là nguyên nhân tạo ra “địa ngục tutorial” hay sao.
Thử viết lại tutorial Django cho những người hôm nay mới lập trình lần đầu cũng có vẻ là một bài toán khá hay. Chẳng hạn như trước hết giải thích cấu trúc của HTTP, rồi giải thích Django đang xử lý từng thành phần như thế nào.

 
gudrb963 2025-10-15

Ý kiến hay quá!

 
GN⁺ 2025-10-12
Ý kiến trên Hacker News
  • Cụm từ "Tutorial Hell" quá đúng luôn; xem một khóa học 6 tiếng rồi code theo thì được, nhưng đến lúc bảo tự làm một thứ gì đó từ đầu thì tay cứng đờ, đó đúng là kiểu tutorial hell điển hình. Vì vậy mà xét về mặt lịch sử, mô hình học việc (apprenticeship) từng là cách học hiệu quả nhất: junior đi theo senior, phía trên có một bậc thầy dẫn dắt tổng thể, vừa quản lý vừa hướng dẫn dự án. Thật tiếc là cộng đồng lập trình viên của chúng ta đã không vận hành theo kiểu nghiệp đoàn trong một thời gian dài; tôi nghĩ lẽ ra từ cuối thập niên 1980 đã không nên như vậy. Nếu có nghiệp đoàn, có lẽ số lượng lập trình viên sẽ ít hơn rất nhiều và cả quá trình phát triển của ngành cũng có thể đã rẽ sang hướng khác.

    • Không chỉ người mới mà cả lập trình viên có kinh nghiệm cũng thấy khó nếu bị yêu cầu khởi động một dự án từ con số 0. Phần lớn mọi người làm việc trên codebase có sẵn, và ngay cả khi cần một ứng dụng mới cũng thường bắt đầu từ template hoặc copy & paste. Trường hợp thật sự tạo ra thứ hoàn toàn mới từ đầu không hề phổ biến. Cũng như thợ điện hiếm khi phải tự mình thiết lập mọi thứ hoàn toàn từ đầu trong một tòa nhà mới, lập trình viên trong công ty cũng hiếm khi làm vậy. Mô hình học việc về cơ bản cũng không thay đổi cấu trúc đó bao nhiêu.

    • Theo trải nghiệm của tôi, các trường đại học tốt đào tạo sinh viên bằng những bài tập tăng dần độ khó và sát thực tế. Ban đầu là cấu trúc dữ liệu, thuật toán, câu đố đơn giản; rồi dần dần đến mức tự làm OS, database, cấu trúc dữ liệu bền vững, compiler, CPU, mô phỏng, thậm chí cả mô hình machine learning. Từ một hàm nhỏ mà dần tự tay xây nên những thứ lớn hơn, và tôi thật sự biết ơn kiểu rèn luyện đó. Xem liên kết liên quan.

    • Tôi dùng LLM để học code theo kiểu quan hệ thầy - trò. LLM chỉ tiến lên khi tôi bảo, nó chỉ giải thích và hướng dẫn còn phần viết thì tôi tự làm. Cách này tốt hơn nhiều so với việc đi tìm khóa học hay tutorial mới. Thực ra tutorial hell là hiện tượng do những người tự cho mình là giáo viên tạo ra. Vô số sách và bài giảng rốt cuộc cũng không thật sự dạy được điều gì có tính thực chất. Tôi cho rằng mô hình giáo dục lập trình hiện nay hoàn toàn sai. Dạo này tôi thích dùng LLM để tóm tắt tài liệu mới nhất của ngôn ngữ hoặc thư viện mới, hoặc tự mình lập kế hoạch học. Chỉ có điều tôi không chắc LLM có đang hallucinate hay không nên vẫn hơi bực.

    • Tôi bỏ học từ rất sớm vì chán và vì cách dạy cũ kỹ, rồi lao vào hiện trường như một học việc phần mềm; chương trình ở trường hoàn toàn vô dụng. Cuối thập niên 1990 là chuỗi ngày sai lầm và thử - sai liên tục, và từ tôi đến sư phụ của tôi rồi cả sư phụ của ông ấy đều học bằng cách tự va vào thực tế. Chúng tôi dùng Linux làm router ISDN, dựng server website, đụng vào HTML, Perl, PHP và trải nghiệm DevOps lẫn kỹ thuật thực thụ dù hồi đó còn chưa có những cái tên này. Đó là thời kỳ gần như không có tài liệu, chỉ với sức sáng tạo và tinh thần dám thử mà mở rộng ranh giới. Nó cũng có nét gì đó đồng điệu với vibe coding trong thời AI hiện nay; áp lực thì lớn hơn nhiều nhưng là những ký ức rất vui.

    • Trong ngành công nghệ, việc gatekeeping đối với nghề nghiệp bị nhìn nhận tiêu cực. Đó là do sự tự mãn trong ngành, và cũng vì giới tư bản muốn mở rộng cung lao động để hạ lương. Kết quả là các tiêu chuẩn nghề nghiệp đúng nghĩa biến mất, còn những buổi phỏng vấn nhục nhã kiểu leetcode lại trở thành cổng gác chẳng liên quan gì đến bản thân nghề này.

  • Là người dùng Zed Pro và GPT để code hằng ngày, tôi nghĩ sự phát triển của các công cụ này đang phơi bày tính kém hiệu quả của lập trình hiện đại. Web hiện đại vừa đáng kinh ngạc vừa khủng khiếp. Nếu quan liêu có nghĩa là bị trói buộc bởi các quy tắc phức tạp, thì phát triển phần mềm hiện đại đúng là đại diện tiêu biểu. Nếu ngay cả việc đơn giản nhất cũng phải cần công cụ tự động hóa xác suất dẫn đường thì thật hơi buồn. Trước đây tôi hay nói với đàn em rằng "điều quan trọng không phải là biết một ngôn ngữ cụ thể, mà là năng lực học cái mới liên tục". Một số xu hướng sẽ tồn tại lâu, nhưng cuối cùng ta vẫn phải không ngừng học công cụ và ngôn ngữ mới. Có thể là do tuổi tác, nhưng đến một lúc nào đó tôi cảm thấy sự phức tạp đã tràn ngập. Nếu trước đây lập trình quá giống điện kỹ thuật hay toán học, thì bây giờ lại chất chồng một kiểu phức tạp khác.

    • Tôi cũng đồng cảm với cảm giác này. Tôi từng muốn một môi trường tính toán kiểu phim khoa học viễn tưởng, nơi có thể hô "dồn năng lượng về phía trước!" rồi các linh kiện hay hệ thống sẽ luôn dễ dàng hoán đổi, tái sử dụng. Nhưng thực tế thì ngay cả việc thay camera của điện thoại Android sang iPhone cũng gần như là nhiệm vụ bất khả thi.

    • Tôi không chắc bạn đang muốn nói gì, nhưng cách dùng từ quan liêu ở đây có vẻ kỳ lạ. Trên thực tế, khả năng tìm kiếm mới là kỹ năng cốt lõi; ai tìm ra được thứ mình cần thì có thể làm được mọi việc. Công cụ tự động hóa rốt cuộc cũng không khác sách hay giáo viên về bản chất. Việc một số người thiếu năng lực này là chuyện cố hữu của con người, nên không thể trách công cụ tốt lên được.

    • Một vấn đề lớn là viết tài liệu cho tốt, rồi tìm kiếm và đọc tài liệu, đều thật sự rất khó. Vì thế việc học vốn đã khó, nhưng nhờ AI mà việc học cũng dễ hơn. Ví dụ như Unreal Engine, AI hiểu nó tốt đến mức đáng kinh ngạc.

    • Nhiều vấn đề mà chúng ta đang gánh đều là độ phức tạp ngẫu sinh như Brooks nói trong 'No Silver Bullet'. LLM đang đóng vai trò xuyên thủng kiểu phức tạp này và phá vỡ cả những silo tri thức tích tụ theo từng ngôn ngữ và framework.

    • Nếu ngành mang tính đầu cơ như hiện nay còn kéo dài thêm một chút nữa, có thể sẽ đến một thế giới mà bản thân việc lập trình cũng biến mất.

  • Bây giờ ai cũng có thể viết code, nên ở cấp độ tổ chức thì lượng code tăng khoảng 10 lần. Nhưng số reviewer vẫn vậy nên không gánh nổi. Nếu còn không dùng được LLM để sanity check code thì thật sự chẳng biết phải làm sao. Hôm qua thực sự đã có một người không chuyên dùng Codex làm một thuật toán tối ưu hóa, rồi nhờ tôi cải thiện nó. Vấn đề là đoạn code đó hoàn toàn hỗn loạn: vét cạn trên hàng nghìn tổ hợp số nguyên, lại còn không giữ được ràng buộc cho đúng, thành ra kết quả không đáng tin. Cuối cùng tôi phải dành cả ngày để xem xét code, rồi còn phải thuyết trình trước lãnh đạo rằng thứ này về bản chất là vô dụng.

    • Câu trả lời cho "LLM code sanity check" là unit test. LLM tạo test code và code có thể test được cũng rất giỏi nếu bạn yêu cầu. Nếu test thật sự gọi code và kiểm tra kỹ cả edge case thì sẽ nhanh hơn code review rất nhiều. Có thể gồm cả test hiệu năng. Sau này chúng ta có thể chuyển sang làm việc xoay quanh definition và test, còn cách cài đặt bên trong hàm sẽ ngày càng bớt quan trọng; đó sẽ là một sự chuyển đổi góc nhìn rất lớn.

    • Cứ nhìn vào thảm họa lập trình bằng Excel là hiểu. Ban đầu ai cũng phớt lờ, đến lúc nó bùng nổ thì lại cuống cuồng đổ hàng chục triệu won vào để cứu vãn trước khi công ty sụp đổ.

    • Về ý "số reviewer vẫn vậy", LLM cũng có thể giúp review code. Ngay cả GPT-5 cũng khá giỏi trong việc phát hiện lỗi cục bộ như off-by-one hay thiếu giá trị trả về. Dù vậy, với những vấn đề đòi hỏi hiểu cấu trúc tổng thể ở mức cao hơn thì nó vẫn còn giới hạn. Trong tương lai có lẽ ta sẽ thấy cách làm như định kỳ fine-tune LLM trên codebase lớn của công ty, rồi dùng nó như reviewer vòng 1 cho mọi thay đổi.

    • Các bài toán OR (tối ưu tổ hợp) thường nảy sinh vì những người code theo kiểu ứng biến không nhận ra rằng mình đã bước vào một lĩnh vực thuật toán đặc thù về bản chất. Thậm chí khi được chỉ ra, họ cũng thường không hiểu lý thuyết toán học nên cứ muốn thử tiếp theo cách của mình.

    • Trong tình huống như vậy, gần như cách phản ứng duy nhất là làm một bài trình bày kỹ thuật cho lãnh đạo công ty để họ nhận thức chính xác về thực trạng.

  • Tôi tưởng lại sẽ là bài kiểu "AI đang phá hỏng junior developer nên sẽ dẫn tới khủng hoảng thiếu người thay thế senior", và bài này gián tiếp cũng có ý đó nên nhìn chung tôi đồng ý. Nhưng phần nói về sự nịnh nọt (sycophancy) đặc biệt gây ấn tượng với tôi. Trước đây tôi nghĩ giao diện như ChatGPT có ích cho học tập, nhưng ví dụ về ROAS trên YouTube khiến tôi thấy rất mạnh. Nếu cấu trúc của nó cho phép học viên bóp méo kết luận của giáo viên chỉ bằng cách đặt câu hỏi theo một kiểu nào đó, thì vô số lập trình viên mới sẽ khó tránh khỏi bị dẫn sai hướng. Thậm chí tôi còn không biết các kiểu prompting được áp vào AI "Boot" đã đủ hay chưa. Rốt cuộc, ngay cả trong thời AI thì để trưởng thành, tôi vẫn cần "ai đó" lặp đi lặp lại từ chối PR của mình. Và "ai đó" ấy vẫn chưa thể là AI.

    • Theo kinh nghiệm của tôi, kể cả khi yêu cầu một lời phê bình cay nghiệt, AI vẫn lẫn vào đó thái độ muốn làm tôi hài lòng. Từ các bản GPT cũ đến mới nhất đều khá giống nhau. Nó để lại một cảm giác mơ hồ. Cuối cùng, công cụ này vẫn chỉ được tận dụng tốt nhất bởi những người biết mình muốn được giúp điều gì và nhận thức được các vấn đề đặc thù của LLM.

    • Để tránh hiện tượng nịnh nọt, tôi luôn thêm thiên hướng phản biện và hỏi hai lần. Nhưng tôi không biết liệu AI có đang củng cố cả những thiên kiến ẩn mà tôi vốn mang theo hay không.

  • Tôi không phải người mới, nhưng vì liên tục học framework, ngôn ngữ và thuật toán mới nên tôi không nghĩ AI autocomplete là điều xấu. IntelliSense hay ReSharper autocomplete ngày xưa cũng giúp tôi rất nhiều khi học thư viện mới hoặc tính năng ngôn ngữ mới. ReSharper thường gợi ý tính năng mới khi tôi code theo kiểu cũ, và tôi đã học được khá nhiều từ đó. AI-based autocomplete cho cảm giác như phiên bản tiến hóa hơn nhiều: nó gợi ý mọi thứ một cách tự nhiên, và mình có thể dùng hoặc không dùng, nên cũng hỗ trợ học tập. Cuối cùng, chỉ cần có thái độ tò mò, chịu đọc và hiểu các gợi ý thì nhờ AI việc học sẽ dễ hơn. Ngày xưa thì chỉ đơn giản là copy paste từ Stack Overflow.

    • Autocomplete truyền thống hiển thị tất cả method, biến, hằng số... trong scope hiện tại và còn liên kết cả tài liệu. Tôi có thể tự đánh giá mình có những lựa chọn nào, nên điều đó thực sự tốt cho việc học. AI autocomplete thì thực chất giống như dán luôn câu trả lời trên Stack Overflow mà không kèm giải thích ngữ cảnh. Nếu đang học, có lẽ tự tìm trên Stack Overflow hoặc nếu cần thì prompt chatbot để nghe giải thích vì sao đoạn code lại như thế sẽ còn tốt hơn.

    • Theo tôi thì có khác biệt đôi chút. Nếu đã có ít nhiều kinh nghiệm thì dùng autocomplete ở một ngôn ngữ mới là chuyện tự nhiên. Nhưng một người mới hoàn toàn không có nền tảng mà học ngay từ vòng for đầu tiên thì lại là chuyện khác.

    • Tôi thích lập trình agentic bằng AI. Việc tạo ra thứ gì đó làm tôi vui, và đó là một phần của quá trình thử nghiệm ý tưởng. Tôi không deploy code lên production nên cũng không quá bận tâm người khác nghĩ gì. Muốn nói chuyện với những đồng nghiệp giỏi về mặt kỹ thuật thì vẫn cần tự mình thử và tự học. Tôi đã thích lập trình từ năm 10 tuổi nhưng chưa bao giờ là lập trình viên chuyên nghiệp. Khi thời AI đến, tình yêu với code và thử nghiệm của tôi lại sống dậy. Công nghệ web tương lai như WASM, nhiều hệ thống khác nhau, việc săn bug, rồi làm mọi thứ theo cách riêng của mình đều rất vui. Những công cụ như Cursor AI còn tự động hóa cả thiết lập git cho tôi, đẩy qua ssh cũng tiện. Tất nhiên tôi có thể tự làm, nhưng tôi để AI làm. Tôi có những thói quen cố hữu từ hồi bắt đầu với cú pháp C, nhưng vẫn thấy rất vui khi đụng vào backend python, web server flask và frontend JavaScript. WASM Python vẫn còn thiếu nhiều nhưng tôi vẫn đang tiếp tục thử nghiệm. Tôi thích củng cố nền tảng và học theo cách riêng của mình. Tôi cũng thường cảm thấy các kỹ sư có xu hướng làm mọi thứ phức tạp hơn mức cần thiết.

    • AI autocomplete là công cụ tuyệt vời nhất. Nó gợi ý đoạn code mình muốn mà không cần tài liệu, chỉ vài dòng nên cũng dễ rà lại, lại không tự động tạo ra những khối lớn nên cũng không gây hại cho việc học.

  • Tôi không phải người mới, nhưng Copilot thực sự khiến việc học Rust dễ hơn hẳn. Kết hợp với Intellisense thì gánh nặng cú pháp giảm đi, nên tôi có thể tập trung học những phần quan trọng của ngôn ngữ. Chỉ trong một tuần từ lúc mở sách Rust ra, tôi đã làm được một công cụ chạy được. Tất nhiên điều đó không khiến tôi thành senior engineer, nhưng nó rõ ràng hạ thấp rào cản từ '0 lên 1'. Tôi không ra lệnh cho Copilot viết code; tôi chỉ nhận gợi ý như một dạng autocomplete tốt hơn và tự quyết định có chấp nhận hay không.

    • Chủ đề lặp đi lặp lại ở đây là: senior nhiều kinh nghiệm dù không biết ngôn ngữ mới vẫn biết "cách code", nên họ rút được giá trị từ các công cụ này. Dù ngôn ngữ có đổi thì code smell vẫn như nhau. Còn người mới thì thậm chí còn không thật sự biết khái niệm "code smell" là gì.

    • Trước đây tôi cũng từng nghĩ Copilot giúp học Rust rất nhiều, nhưng khi tự code mà không có AI thì tôi thấy nó thật sự khó. Chỉ khi tắt AI đi để học thì tôi mới thoát khỏi ảo giác rằng mình đã thật sự hiểu.

  • Những đường tắt giáo dục khác nhau cũng gặp cùng một vấn đề. Ví dụ học sinh nhờ gia sư làm hộ bài tập, hoặc nghe giải thích xong rồi tưởng mình sẽ làm bài thi tốt. Thực ra lúc nghe giải thích thì thấy đơn giản, nhưng tự mình làm được lại là một năng lực hoàn toàn khác.

  • Nếu AI thật sự không thay thế toàn bộ công việc cổ cồn trắng trong vài năm tới, thì có lẽ chúng ta sẽ không chỉ đối mặt với bong bóng thị trường chứng khoán mà còn cả nạn thiếu hụt lao động có học. Với tôi, cảm giác đó giống như đang chứng kiến "những bộ óc xuất sắc nhất của thế hệ mình bị phân tán đi".

  • Tôi đã cố tìm một cụm đại diện dùng được cho tiêu đề bài viết nhưng không tìm ra cái nào thật sự phù hợp, nên đành làm hết sức. Nếu có gợi ý tiêu đề nào chính xác và trung lập hơn thì cứ đổi, xem hướng dẫn liên quan.

  • Tôi rất đồng cảm với đoạn "đã hiểu, nhưng bảo viết từ đầu thì hoàn toàn tắc". Trước đây, phần đau đớn và khó nhất với tôi là cứ bám theo tutorial rồi đến khi thử làm thứ gì đó tương tự thì lại bị mắc kẹt. Nhưng chính quá trình đau đớn đó lại là trải nghiệm học có mật độ hiệu quả cao nhất. Sau này tôi học những thứ phức tạp và đa dạng hơn, nhưng chưa từng trải lại kiểu học dày đặc như thế. Nó hơi giống cảm giác đau đầu và căng thẳng tôi từng có với toán trung học. Tôi cũng nghĩ đây không hẳn là trải nghiệm phổ biến với tất cả mọi người.