- Các công cụ AI đang chỉ tạo ra năng lực hời hợt cho lập trình viên junior; chúng xuất mã rất nhanh nhưng thường không thể giải thích vì sao lại chọn cách tiếp cận đó
- Giá trị thực sự của lập trình viên senior không nằm ở tốc độ viết mã, mà ở khả năng nhận diện mẫu thất bại được tích lũy qua nhiều năm thất bại
- Dù dùng AI, quá trình vật lộn có chủ đích như tự phân tích lỗi, lần theo mã và đặt giả thuyết vẫn là điều bắt buộc
- Với mọi đoạn mã được commit, bạn phải có thể tự giải thích lý do chọn thư viện, pattern và các đánh đổi; nếu không thì chưa sẵn sàng để phát hành
- Cần chuyển từ việc dùng AI như một công cụ tạo đáp án đơn thuần sang dùng như gia sư, để học ưu và nhược điểm của nhiều cách tiếp cận khác nhau
Bản chất của vấn đề: năng lực hời hợt do AI tạo ra
- Việc sử dụng LLM giúp triển khai và phát hành tính năng nhanh chóng, nhưng lại dẫn đến tình huống không thể giải thích vì sao chọn đoạn mã đó
- Hiện tượng năng lực hời hợt (shallow competence) đang lan rộng khi không trả lời được các câu hỏi về cách tiếp cận trong code review
- Mẫu hành vi chấp nhận nguyên xi mã do AI đề xuất lặp đi lặp lại
- Bề ngoài thì năng suất có vẻ cao, nhưng thực chất lại thiếu hiểu biết về ý đồ thiết kế và các đánh đổi
- Vấn đề này theo thời gian có thể dẫn tới suy giảm niềm tin
Vì sao lập trình viên senior có giá trị
- Lý do các lập trình viên nhiều kinh nghiệm có mức giá cao không phải vì họ viết mã nhanh, mà vì họ đã mất rất nhiều thời gian để thấm nhuần những điều không nên làm
- Khả năng nhận diện mẫu thất bại có được từ những trải nghiệm như từng đưa ra quyết định kiến trúc sai lầm rồi sống cùng hậu quả của nó, hay từng bị gọi dậy lúc 2 giờ sáng vì sự cố, chính là thứ doanh nghiệp thực sự đang trả tiền
- Hiện nay, nhiều lập trình viên junior đang bỏ qua quá trình đó khi làm việc với AI
5 chiến lược
-
1. Học nền tảng cho đúng
- Bạn phải biết thế nào là mã tốt thì mới có thể đánh giá kết quả AI tạo ra; nếu không, bạn sẽ mù quáng chấp nhận đầu ra của AI
- Sách được khuyên đọc: Head First Design Patterns (để hiểu các pattern lập trình và lý do lựa chọn) và Designing Data-Intensive Applications (nguyên lý thiết kế hệ thống dữ liệu chuyên sâu)
-
2. Nghiên cứu các ca sự cố
- Nên đọc các tài liệu post-mortem chi tiết được công bố khi các dịch vụ lớn như Cloudflare, AWS, Azure, Google gặp sự cố
- Chúng bao gồm nguyên nhân, phân tích nguyên nhân gốc rễ, cách khắc phục và biện pháp ngăn tái diễn
- Ở Amazon có COE (Correction of Errors), và tại Facebook cùng hầu hết các công ty công nghệ lớn cũng có những tài liệu nội bộ tương tự
- Hiểu được một hệ thống phức tạp đã sụp đổ như thế nào sẽ đọng lại trong trí nhớ mạnh hơn nhiều so với chỉ đọc tài liệu
-
3. Chủ động tạo ra sự vật lộn
- Trước thời AI, việc tự mình giải quyết vấn đề không phải là lựa chọn mà là mặc định; còn bây giờ luôn có một lối thoát sẵn sàng 24/7
- Trước khi dán lỗi vào AI, hãy đọc stack trace, lần theo mã, kiểm tra log và tự đặt giả thuyết xem điều gì đang sai
- Đó là cách xây dựng cảm giác debug thực sự
- Sau đó vẫn có thể dùng AI
- Tham gia on-call và nhận những ticket không ai muốn đụng tới là cách hiệu quả nhất để học cách hệ thống vận hành
-
4. Tuyệt đối đừng phát hành mã mà bạn không hiểu
- Nếu trong code review, khi bị hỏi vì sao chọn cách tiếp cận đó mà bạn trả lời "AI đề xuất vậy", bạn sẽ mất uy tín ngay lập tức
- Vấn đề không phải là bạn dùng AI, mà là bạn đã không nỗ lực để hiểu đoạn mã mình gửi lên
- Bạn phải có thể giải thích với mọi dòng mã mình commit: vì sao dùng thư viện này, vì sao dùng pattern này, và đánh đổi là gì
- Dù phải chậm lại, sự hiểu biết vẫn phải đi trước; danh tiếng là người chỉ biết sao chép-dán là thứ rất khó phục hồi
-
5. Đừng prompt để hỏi đáp án, hãy hỏi "vì sao"
- Thay vì chỉ yêu cầu AI giải bài toán, hãy yêu cầu nó giải thích nhiều cách tiếp cận và ưu nhược điểm của từng cách
- Cách này tạo ra hai hiệu ứng:
- Bạn thực sự học được về các đánh đổi
- Khi AI đi qua quá trình suy luận, bản thân khuyến nghị cũng có thể thay đổi, giúp đưa ra câu trả lời tốt hơn
Lời khuyên thực tế trước áp lực tốc độ: cân bằng giữa năng suất và học tập
- Nỗi lo rằng chậm lại sẽ bị bỏ lại phía sau là có thật, nhưng không có nghĩa là bạn phải dừng công việc hoàn toàn
- Hãy dành thời gian rảnh, dự án phụ hoặc những ticket ít cạnh tranh để thực hiện việc học có chủ đích và không thoải mái
- Cần phân biệt một cách có ý thức giữa thời gian đang xây dựng kỹ năng thật và thời gian chỉ đang tạo đầu ra
Hãy dùng AI như một gia sư
- Hiện nay bạn đang có một gia sư AI có thể giải thích mọi thứ ở độ sâu bạn muốn, điều mà thế hệ lập trình viên trước đây không có
- Đừng chỉ giao việc cho AI; hãy dùng nó theo cách yêu cầu giải thích và để nó dạy bạn
- Giá trị của lập trình viên không nằm ở khả năng tạo ra mã, mà ở khả năng nhìn vào bất kỳ đoạn mã nào và đánh giá được nó có tốt hay không
- Bất kể mã có do AI tạo ra hay không, khả năng phân biệt tốt - xấu mới là năng lực cốt lõi
- Chỉ có học tập có chủ đích và tích lũy trải nghiệm thất bại mới có thể tạo nên năng lực cạnh tranh dài hạn
20 bình luận
Nếu đã đọc dù chỉ là văn bản do AI tạo ra thì đã không thành ra nông nỗi này.
Vấn đề không phải chỉ là junior, mà là kiểu junior chỉ biết copy-paste rồi bấm cho xong.
Thật ra chuyện này đã có từ trước cả AI rồi.
Chỉ là Stack Overflow giờ bị thay bằng AI thôi.
Tôi vẫn chưa biết khi nào AI thực sự sẽ thay thế lập trình viên, hay liệu điều đó có thật sự khả thi hay không, nên có lẽ cũng không cần phải ca tụng nó một cách mù quáng. Thực tế, ngay cả trên Reddit cũng có khá nhiều bài viết của những người tạo ra thứ gì đó rồi có người dùng vào sử dụng, nhưng lại không biết điều gì trong chính dịch vụ của mình là rủi ro và lên bài xin giúp đỡ.
Ngày xưa khi làm đồ thủ công thì người ta đào tạo theo kiểu thầy truyền nghề trò nối nghiệp, rồi sau Cách mạng Công nghiệp lại chuyển thành lao động đơn giản.
Giờ con người chỉ chăm chăm nhìn vào đống mã được tuôn ra từ dây chuyền 4 line như những linh kiện chạy qua băng chuyền.
Nếu hỏi một người chỉ làm kiểm tra linh kiện rằng "Tại sao cái này lại được thiết kế như vậy?" thì dù làm 10 năm họ cũng chẳng có câu trả lời nào ngoài "Máy nó làm thế đấy."
???: "Hãy cân nhắc cẩn thận về những gì không nên làm"
kkkkkk đúng vậy kkkkk
kkk
hahahaha
Cuối cùng, khi khả năng suy luận và ghi nhớ của AI tăng lên thì tất cả những cuộc tranh luận kiểu này sẽ trở nên vô nghĩa. Dù sao thì rồi ngay cả senior cũng sẽ không còn cần thiết nữa.
Cuối cùng, có lẽ điều quan trọng là người sử dụng suy nghĩ và tận dụng nó như thế nào.
Tuy đúng là đã xuất hiện môi trường chỉ giao phó mọi thứ mà không suy nghĩ, khiến nguy cơ bị cuốn theo một cách vô thức cao hơn, nhưng nếu biết tận dụng tốt thì việc học và phát triển có thể nhanh hơn và chính xác hơn rất nhiều so với trước đây.
Dù vậy, tôi hy vọng sớm có một hệ thống và phương pháp học tập kiểu mẫu mới, khác với cách học và tích lũy kinh nghiệm truyền thống, để có thể hướng dẫn tốt cho những người mới bắt đầu học.
Nhưng có vẻ như những gì senior đã tích lũy qua trải nghiệm thì junior sẽ học được với tốc độ nhanh hơn đấy chứ?
Dù sao thì kiểu junior developer chỉ biết sao chép rồi dán đơn giản như tác giả nói cũng đã vô dụng ngay từ thời Stack Overflow rồi.
Chỉ là đến thời AI, thói quen copy-paste code từ Stack Overflow
đã chuyển sang copy câu trả lời của AI thôi.
Dù sao thì nếu là một junior developer trước đây vốn chăm chỉ học hành,
thì trong thời đại AI sẽ trưởng thành thành developer cấp senior với tốc độ nhanh hơn nhiều.
Giờ nếu coi như chẳng cần nhìn cả low-level nữa và cũng "học" nhanh bằng AI, thì ai lại đi tuyển một junior người Hàn tốt nghiệp đại học 4 năm với mức lương đắt đỏ?
Họ sẽ tuyển rẻ hơn những người như anh Rahul Singh bên Ấn Độ (24 tuổi, thạc sĩ IIT) hay anh Zhang Wei (26 tuổi, thủ khoa Thanh Hoa), rồi dùng AI agent như thứ nước thần chữa bách bệnh để tuyển dụng, onboarding bằng AI và dịch thuật bằng AI.
Đặc biệt là với nam giới, nếu tính cả việc chậm hơn 2 tuổi khi bước vào xã hội vì nghĩa vụ quân sự, thì tôi thật sự rất lo cho các bạn junior hiện nay.
Nếu chủ yếu dùng AI thì sẽ không có cơ hội trải qua thất bại, nên sẽ không rút ra được những bài học kỹ thuật. Những gì không được diễn đạt thành sách vở hay bài viết thì AI cũng không thể bao quát được.
Vì AI cũng có thể thất bại, nên chẳng phải chúng ta sẽ trở thành những người "cùng thất bại với AI và cùng vượt qua" hay sao.
Theo nội dung bạn trả lời, nếu AI là bên thất bại thì ai sẽ là người vượt qua chuyện đó? Một junior mới tốt nghiệp đại học?
Tôi để lại một bình luận lịch sự và ôn hòa.
Tôi cũng nghĩ vậy. Là cùng nhau tìm kiếm và cùng nhau giải quyết vấn đề. Có lẽ bạn chưa thử làm như vậy mà đã đưa ra như một đáp án đúng quá mạnh mẽ thì phải. Tôi cũng sẽ cố gắng để lại bình luận một cách thân thiện và nhã nhặn nhất có thể~^^
Cuối cùng thì 10 năm nữa sẽ trở thành junior có 10 năm kinh nghiệm (được AI hỗ trợ).
Nhìn vào tốc độ cải thiện của các mô hình AI, đến lúc các lập trình viên junior hiện nay trở thành senior thì có vẻ như ngay cả senior cũng sẽ đang bị thay thế.
Ý là AI đang thay thế các junior vốn sẽ trở thành senior. AI vạn tuế, vạn tuế, vạn vạn tuế
Đây chính là đáp án.
Ý kiến Hacker News
Tôi nghĩ trong tương lai, giai đoạn học không có AI sẽ là điều bắt buộc
Với mọi kỹ năng, cốt lõi vẫn là ‘luyện tập lặp đi lặp lại bằng chính đôi tay của mình’
Tôi cho rằng quá trình học sẽ phát triển theo hướng “hình thành trực giác không có AI → dần sử dụng AI để hiểu các giới hạn → chuyên gia AI-native”
Nhưng vẫn chưa rõ làm sao để triển khai điều này ở quy mô lớn
Trớ trêu là AI hữu ích như một gia sư cá nhân hóa, nhưng đồng thời cũng là cám dỗ khiến người ta né tránh thực hành
Hệ thống giáo dục hiện tại vốn nặng thi cử lại càng củng cố sự phụ thuộc vào AI
Vì vậy tôi từng dự đoán rằng chế độ học việc sẽ quay trở lại, và xem đề xuất preceptorship của Microsoft là tín hiệu cho điều đó
Thật đáng khích lệ khi các tập đoàn lớn đã nhận ra vấn đề và đưa ra giải pháp
Những công cụ đó giúp tôi hiểu mình sai ở đâu, nhưng rốt cuộc việc luyện bằng tay mới là cốt lõi
Nhưng việc dùng AI hiện nay không đơn thuần là học lý thuyết, mà giống như bắt nô lệ làm việc thay mình
Trong lịch sử, cách đó chưa bao giờ tạo ra tay nghề thực sự
Đã có vô số người không kiểm soát nổi nghiện mạng xã hội
Bài nói chuyện Simple Made Easy của Rich Hickey đã ảnh hưởng rất lớn đến sự nghiệp của tôi
AI không có ‘gu’, và vận hành theo hướng làm tăng lượng code
Kỹ thuật thực sự là nghệ thuật tạo ra chức năng có tác động lớn nhất với ít code nhất
Trước đây, lập trình viên junior tồn tại vì mục đích học hỏi hơn là năng suất
Đó là lý do senior cố ý giao những việc họ làm trong vài giờ thành nhiệm vụ kéo dài cả tuần
Giờ đây các công ty đang muốn né tránh cái ‘chi phí đào tạo’ đó
Ai cũng chỉ nhìn vào lợi ích ngắn hạn và gây ra sự sụp đổ dài hạn
Không có junior thì rồi cũng không còn senior, và cuối cùng cả ngành sẽ suy sụp
Junior cũng cần thiết để cắt giảm chi phí và giữ cân bằng trong cấu trúc thăng tiến
Nhưng với sự xuất hiện của AI, giờ đây ngay cả lập trình viên mid-level cũng có thể bị thay thế
Nếu nhìn từ góc độ hoàn thành mục tiêu ngắn hạn thì “junior là năng suất âm”
Lý do họ chậm không phải vì năng lực mà là do quy trình tổ chức kém hiệu quả
Tôi luôn nói với sinh viên rằng — “junior phải tự tay viết code”
Như bài viết của htmx, senior phải tạo điều kiện để junior có thể viết code
Vì senior cũng đi lên từ junior
Mọi thứ chuyển thành kiểu “nếu cần senior thì cứ tuyển senior”
Điều này có thể sẽ lặp lại thế hệ COBOL
Khoảng cách giữa senior và junior đã lớn hơn, còn kinh nghiệm va chạm thực tế bằng tay thì đang biến mất
Những người như tôi, với 30 năm kinh nghiệm, hiện đang nhận mức đơn giá hợp đồng rất cao
Nếu coding là nghệ thuật, thì cuối cùng có lẽ chúng ta sẽ phải cạnh tranh sinh tồn như nghệ sĩ
Nếu tất cả đều từ bỏ việc đào tạo junior, rốt cuộc sẽ dẫn đến sự sụp đổ nguồn cung senior
Nhưng vì lợi ích ngắn hạn, động cơ phá vỡ quy tắc là rất lớn
Thực ra nhiều lập trình viên senior cũng không hề xuất sắc
Chất lượng dự án luôn đi xuống sau một thời điểm nhất định
Phần lớn chỉ senior trên danh nghĩa, còn tôi cũng chỉ là senior cái tên, thực chất ở mức trung bình
Quản lý, tuyển dụng, lập trình viên, tất cả đều chỉ ‘giả vờ đang làm việc’, còn giá trị thực sự đến từ một số rất ít người giỏi thật
Kịch bản tôi sợ là chúng ta sẽ bị biến thành người quản lý prompt
Một tương lai nơi ta không thực sự hiểu codebase mà chỉ tin vào đoạn code AI đã sửa
Cảm giác sướng khi giải quyết vấn đề sâu vẫn còn nguyên
Chỉ là tôi thấy hạnh phúc vì không phải trực tiếp đụng vào các stack như React hay NextJS nữa
Những ai đã xây nền tảng cơ bản vững chắc trước thời AI đúng là rất may mắn
Nó chỉ là bước tiếp theo của ‘văn hóa left-pad’ mà thôi
Nhờ vậy AI cũng hoạt động tốt hơn, và kiến thức miền của con người mới phát huy được giá trị
Tôi cũng có cùng nỗi bất an
Hầu như không có review, và các cân nhắc kiến trúc dài hạn đã biến mất
Có cảm giác như toàn xã hội đang chấp nhận sự đi xuống về chất lượng
Dạo này tôi thấy junior hữu ích hơn senior
Hỏi senior thì họ chỉ nói “AI trả lời thế này”
Trong khi junior có nhiệt huyết học hỏi, còn những người cấp staff vẫn là mentor rất tuyệt
Ngược lại, một số mid-level thì không làm được gì nếu không có AI
Họ không hiểu vấn đề, và khi AI giải quyết thay thì lại càng mất cảm giác về sự bất lực của chính mình
Việc lạm dụng LLM sẽ dẫn đến sự thoái hóa nhận thức
Tôi định chỉ tuyển những người chưa bị LLM làm ô nhiễm
Chính bài viết này cũng tạo cảm giác như do LLM viết ra
Văn phong kiểu “It’s not X, but Y” quá điển hình
Nghĩ đến việc phần lớn nội dung trên web giờ có lẽ đều do AI tạo ra thấy thật u ám
Rốt cuộc chúng ta đang tiến tới một thế giới không còn phân biệt thật giả
Vì thế tôi còn nghĩ hay là đi học hàn cho xong
Bài này cũng cùng một kiểu
Căn nguyên vấn đề nằm ở senior
Họ chỉ giao cho junior những việc lặt vặt vô nghĩa, mà không cho cơ hội tận dụng công cụ mới
Giờ đây nên giao những bài như “xây dịch vụ tự động hóa quy trình nội bộ” thay vì chỉ “sửa template email”
Junior khó học trong khi còn chưa biết mình không biết gì, còn senior cũng khó dạy hơn
Nhờ AI mà tôi đã có thể tuyển một junior thậm chí còn không biết HTML
Trước đây chuyện đó là không thể, nhưng giờ chỉ cần có chút kiên trì là cũng có thể bước vào nghề
Cuối cùng, nếu chọn con đường dễ thì sẽ nhận về kết quả tương ứng
Thật tò mò không hiểu một junior như thế đã được tuyển bằng cách nào
Nếu chỉ chọn đường dễ thì chiều sâu của đời sống sẽ biến mất
Tôi cũng chưa từng học khóa nào như thế
Cuối cùng AI có nguy cơ làm cạn kiệt nguồn sáng tạo
Nếu con người không đưa ra ý tưởng mới, AI sẽ chỉ tự sao chép chính nó
Vòng lặp như vậy sẽ dẫn đến sự trì trệ và lệ thuộc về công nghệ
Học không giám sát có thể vượt qua được những giới hạn này
Khi lập trình viên giỏi biến mất, ngay cả AI tệ cũng trở nên hữu ích