Nghề Lập trình phần mềm: Ảo tưởng lương 3.000 USD, làn sóng layoff và áp lực tuổi 35
Chia sẻ thực tế từ kỹ sư phần mềm 6 năm kinh nghiệm: từ outsource sang product, sự thật về mức lương nghìn đô, phỏng vấn LeetCode, áp lực AI và bài toán đào thải tuổi 35.
Trên diễn đàn VOZ, chuyên mục Lập trình / CNTT (f80) và box Chuyện trò linh tinh (f17) luôn tràn ngập những câu chuyện nửa đùa nửa thật: "vua của mọi nghề", "lương 350 triệu/tháng", "ngồi nhà làm Remote nhận lương đô la". Suốt một thập kỷ vừa qua, ngành Công nghệ thông tin (IT) đã trở thành thỏi nam châm thu hút hàng triệu học sinh, sinh viên và cả những người từ các ngành khác nhảy việc (chuyển ngành).
Tôi là một cựu sinh viên ngành Khoa học Máy tính Đại học Bách khoa Hà Nội, đã có 6 năm làm việc trong ngành: bắt đầu từ lập trình viên gia công (Outsourcing) cho thị trường Nhật và Mỹ, sau đó chuyển sang làm Kỹ sư phần mềm cao cấp (Senior Backend Engineer) cho một công ty công nghệ sản phẩm (Product) tại Hà Nội. Chứng kiến cả giai đoạn hoàng kim nóng bỏng nhất (2020 - 2021) lẫn giai đoạn mùa đông công nghệ đóng băng tuyển dụng hiện tại, tôi muốn chia sẻ góc nhìn khách quan nhất về cái nghề tưởng như dễ hái ra tiền này.
Ảo tưởng về mức lương và thực tế phân hóa khắc nghiệt
Không thể phủ nhận IT là ngành có trần thu nhập cao so với mặt bằng chung của thị trường lao động Việt Nam. Tuy nhiên, sự phân hóa trong ngành là cực kỳ sâu sắc và tàn nhẫn:
- Giai đoạn Fresher (Mới ra trường): Thời kỳ "chỉ cần biết code cơ bản là có công ty rước với lương 10 - 15 triệu" đã hoàn toàn chấm dứt. Hiện nay, hàng ngàn sinh viên mới ra trường và học viên các khóa bootcamp chuyển ngành đang phải cạnh tranh khốc liệt cho các vị trí Fresher với mức lương chỉ từ 6 đến 9 triệu đồng/tháng, thậm chí nhiều công ty chỉ nhận thực tập không lương hoặc phụ cấp 2-3 triệu.
- Giai đoạn Junior (1 - 3 năm kinh nghiệm): Mức lương trung bình dao động từ 12 đến 20 triệu đồng/tháng. Đây là giai đoạn bạn bắt đầu làm quen với quy trình Agile/Scrum, tự xử lý các tính năng độc lập, bảo trì mã nguồn và fix bug.
- Giai đoạn Middle / Senior (4 - 7 năm kinh nghiệm): Mức lương đạt từ 25 đến 45 triệu đồng/tháng tại các doanh nghiệp trong nước. Để chạm đến con số 2.000 - 3.500 USD/tháng (50 - 90 triệu đồng), bạn bắt buộc phải có tiếng Anh xuất sắc, làm việc cho các tập đoàn công nghệ đa quốc gia (Grab, Shopee, Sea, Viettel Telecom) hoặc các công ty Remote từ Singapore, Mỹ, Úc.
Con số 3.000 USD là có thật, nhưng nó là phần thưởng dành riêng cho top 5% những kỹ sư có tư duy giải thuật xuất sắc, khả năng thiết kế kiến trúc hệ thống phân tán (Distributed Systems) chịu tải hàng triệu người dùng, và năng lực giao tiếp kỹ thuật bằng tiếng Anh trôi chảy — chứ không dành cho người chỉ biết gõ CRUD (Create - Read - Update - Delete) đơn giản.
Outsource vs. Product: Hai thế giới tư duy đối lập
Một kỹ sư phần mềm ở Việt Nam thường đứng trước hai lựa chọn môi trường:
1. Công ty gia công phần mềm (Outsourcing)
Bản chất: Công ty bán giờ công kỹ sư (Man-month) cho khách hàng nước ngoài. Bạn làm việc theo từng dự án (Project), công nghệ thay đổi liên tục theo yêu cầu của khách hàng (lúc làm Java/Spring Boot, lúc làm NodeJS, lúc sang .NET).
Thực tế trải nghiệm: Bạn được tiếp xúc với nhiều dự án và quy trình làm việc chuẩn mực. Tuy nhiên, mục tiêu tối thượng của outsource là hoàn thành dự án kịp tiến độ và bàn giao để lấy tiền. Bạn ít có cơ hội đi sâu vào tối ưu hiệu năng hệ thống lâu dài, không hiểu sâu về hành vi người dùng thật, và mã nguồn thường là "chắp vá" để kịp nghiệm thu.
2. Công ty sản phẩm công nghệ (Product)
Bản chất: Doanh nghiệp tự xây dựng, vận hành và kiếm tiền từ sản phẩm của chính mình (ví dụ ứng dụng ngân hàng số, ví điện tử, sàn thương mại điện tử, SaaS).
Thực tế trải nghiệm: Bạn gắn bó với một hệ thống trong nhiều năm, phải giải quyết các bài toán "hóc búa" về cơ sở dữ liệu lớn (Big Data), đồng bộ dữ liệu (CDC), bộ nhớ đệm (Redis), hàng đợi tin nhắn (Kafka, RabbitMQ) và chịu trách nhiệm trực tiếp khi hệ thống bị sập (downtime). Áp lực trực chiến (On-call) vào ban đêm hay dịp khuyến mãi cao điểm là rất lớn, nhưng đây là môi trường rèn giũa kỹ sư trưởng thành nhanh nhất về mặt kỹ thuật.
Cuộc chiến LeetCode và áp lực tự học không ngừng
Không nghề nào mà kiến thức lại mất giá nhanh như IT. Một công nghệ đình đám cách đây 4 năm có thể trở nên lỗi thời vào ngày hôm nay. Nếu bạn ngừng học trong 6 tháng, bạn sẽ lập tức tụt lại phía sau.
Để vượt qua các vòng phỏng vấn kỹ thuật của các công ty công nghệ top đầu, các lập trình viên phải trải qua quy trình tuyển dụng khắc nghiệt:
- Vòng Coding: Giải các bài toán về Cấu trúc dữ liệu & Giải thuật (Algorithm & Data Structures) trên LeetCode / HackerRank ở mức độ Medium đến Hard (Quy hoạch động, Đồ thị, Cây nhị phân, Hai con trỏ).
- Vòng System Design (Thiết kế hệ thống): Thiết kế các hệ thống quy mô lớn như URL Shortener (TinyURL), Chat System (như Zalo/Slack), hoặc Hệ thống xếp hạng thời gian thực, đòi hỏi kiến thức sâu về Sharding database, Load balancing, Caching, CAP Theorem và Tính nhất quán dữ liệu.
Bóng ma "Đào thải tuổi 35" và làn sóng Trí tuệ nhân tạo (AI)
Nỗi ám ảnh lớn nhất thường được đem ra mổ xẻ trên các diễn đàn công nghệ là: Lập trình viên sau tuổi 35 sẽ đi đâu về đâu?
Khi bạn bước sang tuổi 35, bạn có gia đình, con cái và sức khỏe không còn cho phép bạn thức trắng đêm để fix bug hay "cày OT" như tuổi 23. Nếu mức lương của bạn đòi hỏi 40-50 triệu nhưng năng lực chỉ dừng lại ở mức viết code tính năng tương đương một bạn trẻ 25 tuổi có mức lương 18 triệu, bạn sẽ là đối tượng đầu tiên bị cắt giảm khi doanh nghiệp tái cấu trúc.
Bên cạnh đó, sự trỗi dậy của các công cụ hỗ trợ lập trình AI (GitHub Copilot, Cursor, Claude Code) đang tự động hóa một lượng lớn các tác vụ viết mã cơ bản, tạo boilerplate code và sinh unit test. Điều này đồng nghĩa với việc: các vị trí lập trình viên cấp thấp (Junior/Thợ gõ code) sẽ bị thu hẹp mạnh mẽ.
Để sống sót và vượt qua cột mốc 35 tuổi, kỹ sư phần mềm bắt buộc phải định hình hai lối đi:
- Con đường Kỹ thuật chuyên sâu (Individual Contributor - IC): Tiến lên vị trí Staff Engineer, Principal Engineer hoặc Software Architect — những người định hình kiến trúc toàn hệ sinh thái, giải quyết các nút thắt cổ chai về bảo mật, hiệu năng và công nghệ lõi.
- Con đường Quản trị (Management): Chuyển sang làm Engineering Manager (EM), Technical Lead, hoặc Giám đốc công nghệ (CTO) — người quản trị con người, phân bổ nguồn lực, kết nối mục tiêu kinh doanh với lộ trình phát triển kỹ thuật của sản phẩm.
Lời khuyên cho các bạn trẻ trước khi chọn ngành
Đừng chọn IT chỉ vì nghe đồn lương cao nếu bạn không có niềm đam mê tự nhiên với việc giải quyết vấn đề và ngồi hàng giờ trước màn hình máy tính để tìm ra một lỗi cú pháp.
Nếu bạn quyết tâm bước vào ngành này, hãy rèn luyện tư duy toán học và giải thuật thật chắc ngay từ trường đại học thay vì chỉ chạy theo các framework thời thượng. Học tiếng Anh như một ngôn ngữ thứ hai để đọc tài liệu chính thức từ AWS, Google Cloud, Microsoft. Và quan trọng hơn cả, hãy biến việc học công nghệ mới thành một thói quen mỗi ngày — bởi vì trong thế giới phần mềm, người ngừng tiến lên chính là người đang bước lùi.
