Cover image
NGOC PHAM HUU
NGOC PHAM HUU
Software Engineer

Khi còn quota, tôi là Senior. Khi hết quota, tôi là Fresher

02/09/2026
113 views

9

Bạn đã từng thấy tình huống này chưa? Mình ngồi cạnh một bạn Fresher và chứng kiến một màn khá khó xử. Bạn ấy bị anh Senior chỉ ra một lỗi logic, nhưng không sửa ngay. Bạn ấy mở laptop, dán câu hỏi vào Claude Code rồi quay màn hình lại: "Anh xem nè, AI nó bảo cách em làm đúng mà."
Anh Senior cười cười, bảo "ừ để lát tao xem". Không khí lúc đó hơi kỳ. Mình ngồi cạnh, không biết nên thấy buồn cười hay thấy lo.
Hôm đó về rồi mà mình vẫn nghĩ mãi về chuyện này. Không phải vì bạn Fresher hỗn hay gì — bạn ấy còn trẻ, tự tin, cũng bình thường thôi. Mà vì cái cách bạn ấy coi câu trả lời của AI là bằng chứng để chốt hạ. Càng nghĩ càng thấy nó không đơn giản là "ai đúng ai sai".

Trước tiên, AI giúp Fresher thật, cái đó khỏi bàn
Mình từng là đứa bảo thủ, thấy gì mới cũng gân cổ cãi, trả giá kha khá rồi nên giờ mình cố không phủ nhận sạch trơn.
Nhiều bạn Fresher bây giờ làm nhanh và sạch hơn tụi mình hồi xưa nhiều. Ít lỗi cú pháp vặt, không còn ngồi cả buổi mò một dấu ngoặc thiếu. Dựng khung project, viết CRUD, config CI/CD cơ bản, AI làm loáng cái xong. Quăng file cả ngàn dòng vào nó cũng tóm tắt được luồng chạy, thứ hồi trước tụi mình dò tay mất mấy ngày. Cái này là thật, mình mừng cho tụi nó.
Nhưng tốc độ đó đôi khi giấu đi một lỗ hổng.
Cái bẫy "chạy được là xong"
Kiểu mình hay thấy: AI đẻ ra một đoạn, chạy thử thấy được, không đỏ, merge. Không đọc lại, không hỏi sao nó viết vậy, không rõ nó xử lý case biên ra sao.
Cái đáng sợ là nhìn bên ngoài thì hai trường hợp này chẳng khác gì nhau. Code đều chạy, test đều xanh, PR đều merge. Chỉ tới lúc có chuyện mới biết người viết có thật sự hiểu nó hay không. Mà hậu quả thì không tới ngay, nó nằm im tới hôm gặp đúng cái case không ai ngờ. Lúc mở ra tìm nguyên nhân, cả team ngồi nhìn nhau, không ai giải thích nổi tại sao nó lại được viết như vậy — vì người viết là AI, người merge chỉ thấy nó chạy.
Cái mình sợ: tới lúc cần thì không có AI
Chỗ này mình phải nói thật, mình chưa gặp một ca hết-token-giữa-lúc-prod-sập nào đúng nguyên xi. Nhưng mình hình dung ra được, và mình sợ cái viễn cảnh đó.
Một bạn quen dựa hẳn vào AI. Bug hỏi AI, log dán cho AI đọc, query khôi phục dữ liệu cũng nhờ AI. Nhìn vào tưởng làm được hết. Rồi một hôm cần gấp mà AI không xài được — hết quota, mạng công ty chặn, hay bên kia sập server, gì cũng được — thì lấy gì ra chống đỡ?
Cái mình sợ không phải bug khó. Mình sợ cảnh một người chưa từng tự tay debug mà không có ai cầm tay, tới lúc phải làm một mình thì không biết bắt đầu từ đâu. Năng lực mà cả team tưởng bạn ấy có, hóa ra nằm trong cái ô chat chứ không nằm trong đầu bạn ấy.
Nói cho gọn: tới lúc không có AI bên cạnh mới biết mình thực sự biết làm đến đâu. Mình dùng AI fix bug suốt, không bài xích. Nhưng dùng cho nhanh với dùng để khỏi phải biết là hai chuyện khác nhau.
Chỗ rối nhất: khi Fresher cãi Senior mà AI lại đúng
Quay lại buổi review. Mình nói thẳng luôn: dùng AI phản biện Senior chẳng có gì sai. Và nhiều khi AI đúng thật, Senior sai thật.
Chuyện đó xảy ra chứ. Người làm lâu năm đôi khi quen tay với cách cũ, chưa cập nhật chuẩn mới, hoặc nhớ nhầm. AI có thể tìm ra một cách làm mới, hoặc một API, một documentation mà ông Senior chưa kịp đọc tới. Có lúc nó đúng thật, Fresher mang ra, về lý thuyết là chuẩn.
Nhưng đúng lý thuyết chưa chắc đúng trong hoàn cảnh này. Cái này mình phải mất mấy năm mới thấm.
Mình từng thấy một ca như vậy. Bạn Fresher chỉ ra một cách viết mới gọn hơn, "chuẩn" hơn theo tài liệu, AI cũng hậu thuẫn bạn ấy. Anh Senior nghe xong mới thủng thẳng: cách cũ xấu hơn thật, nhưng nó viết vậy vì service này đang chạy trên phiên bản hạ tầng cũ, cái thư viện mà chuẩn mới cần thì bên deploy chưa hỗ trợ, đổi sang là gãy nguyên luồng lúc lên prod. Bạn Fresher không biết, AI càng không — nó có bao giờ nhìn thấy cái server thật của tụi mình đâu.
Cái khác nhau nằm đúng chỗ đó. AI thường chỉ thấy phần context mình đưa cho nó: hạ tầng ra sao, đang xài thư viện bản nào, hệ thống từng thay đổi những gì... mình không nói thì nó không biết. Còn ông Senior sống trong hệ thống thật, đã chạy mấy năm, vá chằng vá đụp, mỗi dòng code xấu đều có một lý do mà không ở đó đủ lâu thì không biết.
Hồi làm công ty cũ, mình từng nghe một anh QC nói về HICCUPPS, có hai chữ History với Conversations. Hồi đó nghe thì biết vậy thôi. Giờ nghĩ lại mới thấy nó đúng với chuyện này: một hệ thống không chỉ có code hiện tại, nó còn có cả đống quyết định cũ và những thứ team từng thống nhất với nhau. Ông Senior giữ trong đầu cái đó, còn AI thì không có mặt trong mấy buổi họp đó để mà biết. Cái quyết định "thôi tạm viết vầy, sau refactor" trong một buổi họp gấp năm nào đó — AI làm sao biết. Nó chỉ thấy dòng code xấu và bảo nên viết lại.
Nên bài học không phải "Fresher đừng cãi" hay "AI luôn sai". Lúc đó nếu bạn ấy chỉ hỏi thêm một câu, kiểu "Anh viết vậy vì có constraint gì à?", thì có lẽ cả buổi review đã đi theo hướng khác — bạn ấy học được cái AI không dạy được, mà không khí cũng đỡ căng. Post content image aca83253-4a39-4492-bd55-43aefdc248a9.png 2.02 MB
Vài câu với Fresher
Hồi mới vào nghề mình cũng đầy tật, cũng tự cao, cũng cãi cố, nên mình không đứng ở thế dạy đời. Chỉ là mấy thứ mình ước có ai nói với mình sớm hơn.
Trước khi merge, ráng tự trả lời được "vì sao đoạn này đúng", kể cả khi AI viết. Không trả lời được thì khoan merge. Đơn giản vậy thôi mà cứu mình được nhiều lần.
Còn khi AI với Senior mâu thuẫn, đừng vội chọn phe. AI có thể đúng chuẩn mới, Senior có thể đúng hoàn cảnh thật, hai cái đó sống chung được. Hỏi thêm một câu bao giờ cũng đỡ mệt hơn cãi một buổi.
Cuối cùng thì khoảng cách Fresher với Senior không bị AI xóa, nó dời chỗ thôi. Hồi xưa hơn nhau ở chỗ ai gõ nhanh và đúng hơn.
Giờ AI gõ giùm cả hai rồi, nên nó dời sang chỗ khó thấy hơn: ai hiểu sâu hơn, ai đoán được lúc nào AI đang chém, ai nắm được cái hoàn cảnh thật mà AI không nhìn thấy. Tới lúc prod sập lúc hai giờ sáng thì AI vẫn có thể ngồi viết code với mình. Nhưng người phải hiểu chuyện gì đang xảy ra, quyết định rollback hay không, rồi đứng ra nhận trách nhiệm cuối cùng, vẫn là mình.
9