Back to blog

Junior Developer Đã Tuyệt Chủng

aicareersoftware-engineeringopinionjunior-developer
Junior Developer Đã Tuyệt Chủng

Mỗi senior developer mà bạn ngưỡng mộ đều học nghề theo cùng một cách: bằng việc viết unit test mà không ai muốn viết, chuyển đổi schema mà không ai muốn chuyển, và debug lỗi mà không ai muốn debug.

Những công việc nhàm chán đó không phải là việc vặt — đó là sân tập luyện.

Và chúng ta đang tự động hóa nó đi.

Bài viết này lấy cảm hứng từ bài viết đáng suy ngẫm của NorthernDev "The Junior Developer is Extinct (And we are creating a disaster)", bài viết lập luận rằng việc áp dụng AI đang tạo ra khoảng trống nguy hiểm trong cách các developer phát triển.

Bạn Sẽ Học Được

✅ Tại sao vai trò junior developer truyền thống đang biến mất
✅ AI đang phá vỡ quy trình chuyển giao kiến thức developer như thế nào
✅ Vấn đề "phân phối tạ đôi" trong các đội kỹ thuật
✅ Tại sao "vibe coding" tạo ra lực lượng lao động mong manh
✅ Chiến lược thực tế cho công ty và junior developer để thích ứng

Công Việc Đã Biến Bạn Thành Senior

Hãy nghĩ về những task đã định hình bạn trở thành developer:

  • Viết unit test cho legacy code mà bạn không viết
  • Chuyển đổi database schema giữa các định dạng
  • Debug lỗi production lúc 2 giờ sáng với log không đầy đủ
  • Review pull request và hỏi "tại sao họ lại làm thế này?"
  • Refactor code chạy được nhưng không thể bảo trì

Không task nào trong số đó là hào nhoáng. Phần lớn là nhàm chán. Nhưng mỗi task đều dạy bạn điều gì đó mà không tutorial, bootcamp, hay AI prompt nào có thể dạy:

Tư duy hệ thống — hiểu cách các phần kết nối, tại sao những quyết định nhất định được đưa ra, và điều gì sẽ hỏng khi bạn thay đổi thứ gì đó.

Như NorthernDev viết:

"Một Senior Developer không chỉ là người biết cú pháp... Bạn học được điều đó bằng cách làm những công việc cơ bản mà chúng ta đang tự động hóa đi."

Điều Gì Đang Thực Sự Xảy Ra

Đây là sự chuyển đổi đang diễn ra trong các đội kỹ thuật hiện nay:

Trước AI (2020)

Manager giao task → Junior developer viết code → Senior review →
Junior học từ feedback → Junior phát triển → Cuối cùng trở thành senior

Sau AI (2026)

Manager giao task → Senior developer prompt AI → AI tạo code →
Senior review output AI → Xong. Không có junior nào tham gia.

Vòng feedback tạo ra senior developer đã bị phá vỡ.

Khi một senior developer giao unit test cho AI assistant thay vì junior developer, công việc được hoàn thành nhanh hơn. Test thậm chí có thể tốt hơn. Nhưng không ai học được gì trong quá trình đó.

Khi AI chuyển đổi database schema thay vì junior, việc chuyển đổi là tức thì. Nhưng junior không bao giờ học được tại sao một số data type nhất định được chọn, tại sao nullability quan trọng, hay điều gì xảy ra khi bạn thay đổi kiểu column trên bảng có 10 triệu dòng.

Vấn Đề "Phân Phối Tạ Đôi"

NorthernDev xác định một pattern đáng lo ngại đang hình thành trong ngành — phân phối tạ đôi (barbell distribution) về kỹ năng developer:

Một đầu: Super-senior developer đã học nghề trước AI và giờ dùng nó như lực nhân. Họ hiểu AI tạo ra gì vì họ có thể tự viết được.

Đầu kia: Người thành thạo prompt có thể tạo code nhưng thiếu hiểu biết cơ bản để debug, tối ưu, hoặc biết khi nào AI sai.

Tầng giữa — nơi developer phát triển từ junior lên mid lên senior — đang biến mất.

Điều này tạo ra quả bom hẹn giờ. Khi các super-senior hôm nay nghỉ hưu hoặc chuyển đi, ai thay thế họ? Bạn không thể nhảy từ "prompt engineer" lên "systems architect" cũng như không thể nhảy từ sinh viên y khoa lên bác sĩ phẫu thuật.

Vấn Đề "Vibe Coding"

Có một văn hóa đang phát triển gọi là "vibe coding" — viết prompt thay vì hiểu code. Nó hoạt động tốt đáng ngạc nhiên cho prototype và tính năng đơn giản. Nhưng nó sụp đổ vào những lúc tệ nhất:

Khi bạn đang debug production lúc 3 giờ sáng, AI không biết kiến trúc hệ thống của bạn, quy ước của team, hay tại sao microservice đó giao tiếp với database đó thông qua queue đó.

Khi bạn cần hiểu lỗ hổng bảo mật, AI có thể tạo code trông đúng nhưng gây ra lỗi tinh vi — SQL injection qua parameterization không đúng, race condition trong thao tác đồng thời, hoặc bypass xác thực qua default không an toàn.

Khi bạn cần đưa ra quyết định kiến trúc, prompting không dạy bạn về trade-off. Nên dùng message queue hay gọi API trực tiếp? Khi nào eventual consistency chấp nhận được? Ý nghĩa thực tế của việc chọn PostgreSQL thay vì MongoDB cho use case cụ thể này là gì?

Vấn đề với vibe coding không phải code tệ — mà là chuyển giao kiến thức dừng lại.

Khi senior review pull request của junior, cả hai đều học được điều gì đó. Khi senior re-prompt AI, không ai học được gì.

Khủng Hoảng Chuyển Giao Kiến Thức

Kỹ thuật phần mềm luôn có mô hình học nghề, dù chúng ta không gọi như vậy:

Lộ Trình Truyền ThốngĐiều Đã Học Được
Viết unit testCách hệ thống hoạt động, edge case, failure mode
Sửa bugKỹ năng debug, đọc code người khác, tư duy hệ thống
Code review (nhận)Best practice, pattern, quy ước team
Code review (cho)Kỹ năng dạy, nhìn các cách tiếp cận khác nhau
Trực on-callHệ thống production, monitoring, xử lý sự cố
Schema migrationThiết kế database, toàn vẹn dữ liệu, an toàn deployment

Mỗi hoạt động này phục vụ mục đích kép: hoàn thành công việc VÀ đào tạo thế hệ tiếp theo.

AI loại bỏ mục đích đầu tiên (hoàn thành công việc) hiệu quả đến mức chúng ta vô tình loại bỏ luôn mục đích thứ hai (đào tạo).

Khoảng Trống Mentorship

Có một chi phí ẩn khác: senior mất cơ hội mentorship.

Dạy một junior developer buộc bạn phải diễn đạt kiến thức, đặt câu hỏi về giả định, và nhìn codebase qua con mắt mới. Khi bạn giải thích tại sao một pattern nhất định tồn tại, bạn thường nhận ra mình không hoàn toàn hiểu nó — và nhận thức đó khiến bạn giỏi hơn.

Không có junior để hướng dẫn, senior trì trệ. Họ ngừng đặt câu hỏi về cách tiếp cận. Họ mất đi góc nhìn mới mẻ thách thức "chúng ta luôn làm thế này."

Công Ty Nên Làm Gì

NorthernDev đề xuất nhiều giải pháp thực tế, và tôi muốn mở rộng chúng:

1. Thuê Junior Để Kiểm Tra Code Do AI Tạo

Thay vì loại bỏ vai trò junior, định nghĩa lại chúng. Junior developer nên được thuê để:

  • Review và hiểu code do AI tạo
  • Viết test xác minh output AI là đúng
  • Tài liệu hóa code do AI tạo thực sự làm gì
  • Xác định pattern mà AI liên tục mắc lỗi

Điều này tạo ra kỹ năng mới: forensic coding — khả năng đọc, hiểu, và xác nhận code mà bạn không viết.

2. Tạo Chương Trình Học Có Cấu Trúc Xung Quanh AI

Đừng để junior học trong môi trường chân không. Xây dựng chương trình bao gồm:

  • Pair programming với AI hỗ trợ: Junior viết bản nháp đầu, dùng AI cải thiện, rồi thảo luận cả hai phiên bản với senior
  • Bài tập "Giải thích code này": Đưa cho junior code do AI tạo và yêu cầu họ giải thích từng dòng
  • Tìm bug trong output AI: Cố tình sử dụng code AI tạo có lỗi và để junior tìm ra
  • Thảo luận kiến trúc: Đưa junior vào các quyết định thiết kế, không chỉ implementation

3. Bảo Vệ Vòng Feedback

Điều quan trọng nhất công ty có thể làm là cố ý bảo toàn chu trình học tập:

AI nên là công cụ trong vòng lặp này, không phải thay thế cho bất kỳ người tham gia nào.

4. Đánh Giá Sự Hiểu Biết Hơn Là Sản Lượng

Ngừng đo lường developer thuần túy bằng dòng code hay số ticket đóng. Bắt đầu đo lường:

  • Họ có thể giải thích tại sao code hoạt động, không chỉ rằng nó hoạt động?
  • Họ có thể debug mà không cần AI hỗ trợ?
  • Họ có thể nhận ra khi code do AI tạo bị sai một cách tinh vi?
  • Họ có thể đưa ra quyết định kiến trúc với phân tích trade-off?

Junior Developer Nên Làm Gì

Nếu bạn đang bước vào ngành lúc này, cảnh quan khó khăn hơn bao giờ hết. Nhưng có những chiến lược hiệu quả:

Học Nền Tảng Trước

Trước khi sử dụng công cụ AI, xây dựng nền tảng:

  • Học debug thủ công. Dùng print statement, debugger, và phân tích log. Hiểu control flow là không thể thương lượng.
  • Đọc code người khác. Dự án open-source là lớp học tốt nhất. Đọc source code của thư viện bạn sử dụng.
  • Xây dựng mọi thứ từ đầu ít nhất một lần. Viết web server. Implement linked list. Xây dựng authentication. Rồi mới dùng framework.
  • Hiểu cách máy tính hoạt động. Memory, networking, hệ điều hành — các abstraction mà AI hoạt động trên đó.

Dùng AI Như Bộ Tăng Tốc Học Tập, Không Phải Nạng

Cách tốt nhất để sử dụng AI như junior developer:

  1. Thử tự giải quyết trước (dù mất nhiều thời gian hơn)
  2. So sánh solution của bạn với AI (học từ sự khác biệt)
  3. Hỏi AI giải thích lý do (không chỉ tạo code)
  4. Cố tình phá code AI tạo (hiểu failure mode)

Xây Dựng Portfolio Về Sự Hiểu Biết

Các công ty ngày càng muốn developer có thể:

  • Giải thích trade-off trong quyết định kỹ thuật
  • Debug code không quen thuộc dưới áp lực thời gian
  • Nhận diện lỗ hổng bảo mật trong code được tạo tự động
  • Thiết kế hệ thống, không chỉ implement tính năng

Xây dựng dự án thể hiện tư duy, không chỉ coding.

Tìm Mentor

Tìm kiếm senior developer sẵn sàng dạy. Điều này có thể có nghĩa là:

  • Đóng góp cho dự án open-source có văn hóa code review tích cực
  • Tham gia cộng đồng developer nơi có thảo luận kiến trúc
  • Tìm công ty đầu tư rõ ràng vào sự phát triển developer
  • Pair programming với developer có kinh nghiệm (kể cả không chính thức)

Bức Tranh Lớn Hơn

Đây không chỉ về junior developer. Đây là về tính bền vững của toàn bộ ngành.

Mọi nghề nghiệp bỏ qua giai đoạn học nghề cuối cùng đều phải đối mặt với khủng hoảng chất lượng. Y tế không cho phép người ta bỏ qua nội trú. Luật không cho phép người ta bỏ qua thực tập. Kỹ thuật không cho phép người ta bỏ qua internship.

Phát triển phần mềm đang cố gắng bỏ qua bước tương đương — và hậu quả sẽ không đến ngay lập tức. Chúng sẽ đến trong 5-10 năm khi chúng ta cần architect, tech lead, và principal engineer, rồi phát hiện rằng chúng ta chưa bao giờ đào tạo họ.

Những developer học code trước AI có nghĩa vụ truyền đạt kiến thức đó. Và ngành có nghĩa vụ tạo ra lộ trình vẫn hoạt động.

Kết Luận

Junior developer không thực sự tuyệt chủng — nhưng lộ trình truyền thống để trở thành senior developer đang bị đe dọa. AI đã loại bỏ công việc cơ bản từng đào tạo mọi developer có kinh nghiệm ngày nay.

Giải pháp không phải từ chối AI hay giả vờ sự thay đổi không xảy ra. Mà là cố tình thiết kế lại cách chúng ta phát triển developer:

  • Công ty: Thuê junior, định nghĩa lại vai trò xung quanh kiểm tra AI và hiểu biết, bảo vệ vòng feedback mentorship
  • Senior: Tiếp tục mentoring, tiếp tục dạy, tiếp tục đưa junior vào quyết định kiến trúc
  • Junior: Học nền tảng, dùng AI như công cụ học không phải nạng, xây dựng hiểu biết không chỉ sản lượng
  • Ngành: Nhận ra đào tạo developer là cơ sở hạ tầng, không phải chi phí overhead

Công việc cơ bản chưa bao giờ chỉ là công việc cơ bản. Đó là nền tảng sự nghiệp của mọi developer giỏi. Chúng ta cần tìm cách mới để xây dựng nền tảng đó — trước khi phát hiện, quá muộn, rằng chúng ta đã quên.


Bài viết này là tóm tắt và mở rộng từ bài viết của NorthernDev "The Junior Developer is Extinct (And we are creating a disaster)". Nếu chủ đề này gợi lên suy nghĩ cho bạn, tôi khuyên bạn đọc bài gốc và phần thảo luận cộng đồng.

Đọc thêm: Senior Developer Là Entry Level Mới khám phá mặt kia của đồng xu này — cách kỳ vọng entry-level đã leo thang lên yêu cầu senior-level.

📬 Đăng ký nhận bản tin

Nhận những bài viết mới nhất qua email mỗi tuần. Không spam, hủy đăng ký bất cứ lúc nào.

Chúng tôi tôn trọng quyền riêng tư của bạn. Hủy đăng ký bất cứ lúc nào.

💬 Comments

Đăng nhập để bình luận

Chúng tôi sẽ không đăng bất cứ điều gì mà không có sự cho phép của bạn.