story
9 Bug Tư Duy Mà Sinh Viên IT Nào Cũng Dính – Code Toàn Bug

9 Bug Tư Duy Mà Sinh Viên IT Nào Cũng Dính – Kể Cả Bạn

Bạn nghĩ dân IT thì logic lắm hả? Nghĩ vậy là sai rồi. Cái não người không chạy trên thuật toán tối ưu đâu – nó chạy trên một đống legacy code từ thời tiến hóa, đầy bug mà không ai thèm fix. Và đây là 9 cái bug kinh điển mà mình thấy sinh viên IT nào cũng dính, kể cả mình 🙂
BUG #01

Bug “Miễn Phí” – Cái bẫy cost = 0

Udemy sale 99% còn 29k? Mua. Khóa học free trên YouTube dài 47 tiếng? Lưu playlist. Ebook free 2000 trang? Tải hết.

Rồi sao? Rồi không học gì cả.

Cái chữ “FREE” nó hack não bạn ở tầng sâu hơn cả root access. Khi thấy “miễn phí”, não bạn tắt hết mọi đánh giá – nó không so sánh chất lượng, không tính thời gian cơ hội, không cân nhắc gì hết. Nó chỉ biết: free = lấy đi.

Trước khi nhấn “Enroll” hay “Download”, hỏi: “Nếu cái này giá 500k, mình có mua không?” Nếu không – thì nó cũng không đáng cái thời gian free của bạn. Thời gian không free đâu bạn ơi 🙂


BUG #02

Bug “Mỏ Neo” – Lương Đầu Tiên Neo Cả Đời

Sinh viên mới ra trường, công ty đầu tiên trả 8 triệu. Bạn chấp nhận vì “mới ra trường mà”. Hai năm sau nhảy việc, đòi 15 triệu – thấy tăng gần gấp đôi, sướng quá.

Nhưng khoan. Nếu bạn cùng khóa của bạn cùng trình độ mà công ty đầu tiên trả 12 triệu, hai năm sau đòi 22 triệu. Cùng tốc độ tăng, nhưng con số tuyệt đối khác nhau một trời.

Cái lương đầu tiên nó giống cái initialValue trong reduce() vậy – nhỏ hay lớn thì kết quả cuối cùng phụ thuộc vào nó hết.

Đừng bao giờ chấp nhận lời mời đầu tiên vì “biết ơn được nhận”. Tìm hiểu kỹ mức lương thị trường. Cái mỏ neo ban đầu mà sai, bạn sẽ mất vài năm để căn chỉnh lại.


BUG #03

Bug “So Sánh Tương Đối” – Cái Bẫy compareTo()

Bạn không biết iPhone 16 đắt hay rẻ – cho đến khi thấy nó đặt cạnh iPhone 16 Pro Max. Bỗng nhiên cái thường trông “hợp lý” hẳn.

Sinh viên IT cũng vậy. Bạn không đánh giá bản thân theo năng lực thật – bạn đánh giá bằng cách so với người ngồi cạnh. Bạn ấy biết Docker mà bạn không biết? Hoảng. Bạn biết Vim mà bạn ấy không biết? Tự hào.

Nhưng cả hai cái đánh giá đó đều vô nghĩa. Bạn đang tối ưu cho chỉ số sai.

So sánh với chính bạn của 6 tháng trước. Nếu bạn hôm nay deploy được cái mà bạn 6 tháng trước không hiểu – đó mới là tiến bộ thật.


BUG #04

Bug “Kỳ Vọng” – expectations ghi đè reality

Cùng một đoạn code, nếu mình nói “cái này viết bởi senior engineer 10 năm kinh nghiệm” thì bạn sẽ đọc khác. Bạn sẽ thấy nó “clean”, “có ý đồ”, “chắc có lý do”. Nhưng nếu mình nói “fresher viết” thì bạn sẽ tìm bug ngay.

Cùng một thực tế, kỳ vọng khác nhau → trải nghiệm khác nhau.

Ứng dụng thực tế: Khi đi phỏng vấn, cái cách bạn định vị bản thân quan trọng không kém năng lực thật. Nếu bạn mở đầu bằng “em mới ra trường, em chưa biết nhiều” thì người phỏng vấn sẽ thật sự thấy bạn kém hơn – dù code bạn viết y chang người tự tin ngồi cạnh.

Kỳ vọng là một biến ẩn ảnh hưởng mọi thứ. Khi đánh giá code, sản phẩm, hay con người – tách cái bạn thấy ra khỏi cái bạn mong đợi sẽ thấy.


BUG #05

Bug “Giữ Cửa” – while(true) { giữHếtLựaChọn() }

Bạn muốn học Frontend. Nhưng cũng muốn giữ lựa chọn Backend. À mà Data Science cũng hot. AI thì khỏi nói. DevOps lương cao. Blockchain biết đâu quay lại…

Kết quả? Bạn biết tất cả ở mức “Hello World” và không giỏi cái gì cả.

Cái bản năng “giữ mọi cánh cửa mở” nó nghe có vẻ thông minh, nhưng thực tế nó là memory leak – bạn cấp phát sự chú ý cho mọi thứ mà không giải phóng cái nào, cho đến khi hệ thống sập.

Chọn một stack chính. Commit vào nó ít nhất 6 tháng. Các “cánh cửa” khác không biến mất đâu – nhưng nếu bạn cứ đứng ở hành lang thì bạn chẳng vào phòng nào cả 🙂

git commit -m “chọn một thứ và làm cho tử tế đi”

BUG #06

Bug “Sở Hữu” – this.myCode > otherCode (Luôn Luôn)

Bạn viết một cái function. Nó chạy. Bạn yêu nó. Reviewer góp ý “nên refactor lại” – bạn phòng thủ ngay.

Đây không phải vì code bạn tốt. Đây là vì nó của bạn. Con người đánh giá thứ mình sở hữu cao hơn giá trị thật của nó – luôn luôn. Bạn bỏ 3 tiếng viết cái function đó, nên não bạn tự gán thêm “giá trị tình cảm” vào. Nhưng reviewer không có sự gắn bó đó – họ chỉ thấy code.

Trước code review, tưởng tượng đoạn code đó do người khác viết. Bạn có approve không? Nếu không thì tự refactor trước khi bị người ta chỉ ra 🙂


BUG #07

Bug “Trì Hoãn” – setTimeout(làmViệc, Infinity)

“Tối nay về làm.” “Cuối tuần làm.” “Tuần sau bắt đầu.” “Tháng sau chắc rảnh hơn.”

Mình biết bạn biết lý thuyết: deadline quan trọng, phải bắt đầu sớm, chia nhỏ task. Bạn biết hết. Nhưng biếtlàm là hai process chạy trên hai thread khác nhau, và cái thread “làm” luôn bị CPU của Netflix, TikTok, và “nghỉ thêm 5 phút” chiếm hết.

Vấn đề không phải bạn lười. Vấn đề là cái “bạn của hiện tại” luôn đẩy việc khó cho “bạn của tương lai” – một phiên bản mà bạn tưởng tượng là siêu nhân, nhưng thực ra cũng y chang bạn bây giờ, cũng muốn lướt TikTok.

Đặt deadline giả trước deadline thật 3 ngày. Hoặc tốt hơn – tìm một người bạn commit cùng: “Nếu mình không push code trước thứ 5, mình mất 200k.” Ràng buộc bên ngoài mạnh hơn ý chí bên trong.

git commit -m “đừng tin phiên bản tương lai của chính mình”

BUG #08

Bug “Chuẩn Xã Hội vs. Chuẩn Thị Trường” – Khi Tiền Phá Hỏng Mọi Thứ

Bạn đang contribute open source vì đam mê, vì muốn học, vì cộng đồng. Vui vẻ. Rồi ai đó nói: “Mình trả bạn 200k cho cái PR này.”

Bỗng nhiên, mọi thứ thay đổi. Bạn bắt đầu tính: 200k cho PR này có đáng không? Thời gian bỏ ra bao lâu? Tính ra tiền theo giờ là bao nhiêu? Cái niềm vui lúc trước – biến mất.

Có hai hệ quy chiếu vận hành song song: chuẩn xã hội (tình cảm, đam mê, giúp đỡ) và chuẩn thị trường (tiền, giá, thỏa thuận). Khi bạn kéo thị trường vào một mối quan hệ xã hội, rất khó quay lại.

Phân biệt rõ: Cái gì bạn làm vì đam mê – giữ nó ở chuẩn xã hội. Cái gì bạn làm vì tiền – thương lượng đàng hoàng, đừng ngại đòi đúng giá. Đừng trộn lẫn hai thứ, không thì mất cả hai.


BUG #09

Bug “Chi Phí Chìm” – Không chịu git reset --hard

Bạn đã học Java 2 năm. Bạn phát hiện bạn thích Python hơn, phù hợp hơn, thị trường cần hơn. Nhưng bạn nghĩ: “Mình đã bỏ 2 năm cho Java rồi, bỏ bây giờ phí quá.”

2 năm đó đã mất rồi bạn ơi. Bạn có học tiếp Java hay không, 2 năm đó cũng không quay lại.

Quyết định đúng phải dựa trên tương lai, không phải trên những gì đã chi. Nhưng não bạn không chịu. Nó cứ bám vào chi phí chìm như bám vào cái branch đã conflict 500 file mà vẫn không chịu bỏ.

Mỗi 6 tháng, tự hỏi: “Nếu hôm nay mình bắt đầu lại từ đầu, mình có chọn con đường này không?” Nếu không – thì git reset --hard và chuyển hướng. Đau 1 lần còn hơn kéo lê cả đời.

git commit -m “quá khứ là read-only, đừng cố write vào nó”

Lời kết

Bạn là sinh viên IT. Bạn giỏi debug code. Nhưng cái khó nhất không phải debug chương trình – mà là debug chính cái đầu bạn.

Não người là một hệ thống legacy, chạy production từ hàng triệu năm trước, không có documentation, không ai maintain, và đầy những “feature” mà thực ra là bug. Bạn không fix được nó hoàn toàn – nhưng bạn có thể nhận ra khi nó đang chạy sai.

Và nhận ra – đôi khi đã là đủ.

git commit -m “biết mình ngu ở đâu cũng là một dạng thông minh”

Nếu bạn đọc đến đây mà thấy đúng ít nhất 3 cái – chúc mừng, bạn là người bình thường. Giờ đi code đi. 🙂

Code Toàn Bug

Code nhiều bug nhưng biết cách giấu!

Leave a Reply

Your email address will not be published. Required fields are marked *