Tại sao lập trình viên lúc nào trông cũng hạnh phúc? Câu trả lời đơn giản và hơi gây sốc: vì họ làm công việc mình yêu thích và họ có rất nhiều tiền.
Chào mừng đến với thế giới của lập trình viên.
Mức lương của lập trình viên
Tôi muốn nói về mức lương của lập trình viên. Thực tế mức lương như thế nào, nên đi làm ở đâu, và nơi nào — không nên. Nếu bạn không phải là lập trình viên và tự tìm hiểu chủ đề này, bạn có thể nhận về một bộ dữ liệu rất mâu thuẫn.
Mấu chốt là yếu tố ảnh hưởng lớn nhất đến lương của lập trình viên không phải là trình độ, mà là nơi làm việc. Đôi khi, với năng lực ngang nhau, chênh lệch giữa nơi tốt và xấu có thể đạt 2–10 lần(!)
Tại bất kỳ thời điểm nào, trình độ của bạn là cố định. Bạn không thể trong một tháng trở nên giàu kinh nghiệm gấp đôi và nhận lương gấp đôi. Nhưng đổi việc trong một tháng và nhận lương gấp đôi — hoàn toàn có thể. Hãy cùng xem nên làm ở đâu là tốt nhất.
Dưới đây là ba yếu tố ảnh hưởng mạnh đến mức lương trong các công ty:
1) Liệu phát triển phần mềm có phải là hoạt động kinh doanh chính của công ty hay không.
2) Công ty định hướng thị trường quốc tế hay nội địa.
3) Chủ sở hữu là công ty phương Tây hay trong nước.
Lưu ý rằng thành phố bạn đang sống không đóng vai trò quyết định. Tức là nếu bạn nhận ít hơn 10 lần khi sống ở Dresden so với người quen ở New York, nghĩa là các yếu tố kể trên đã phát huy tác dụng.
Con số cụ thể
Khó có thể đưa ra con số chung cho toàn thế giới. Hãy mô tả tình hình ở Đông Âu, điều này nhìn chung đúng với các quốc gia có IT outsource/outstaff phát triển ở mức vừa phải.
Đây là mức mà một Java Senior Developer với năm năm kinh nghiệm có thể kiếm được, tùy theo cấp độ công ty nơi làm việc:
| Cấp độ | Lương mỗi tháng | Mô tả |
|---|---|---|
| 1 | $200 — $500 | Ở dưới cùng là các công ty mà IT là mảng không cốt lõi trong kinh doanh, khách hàng là thị trường nội địa, còn chủ sở hữu là nhà nước. Ví dụ, phòng IT ở cơ quan thuế hoặc tổ chức nhà nước khác. |
| 2 | $500 — $1500 | Dưới trung bình là các phòng IT của các tổ chức phi nhà nước: ngân hàng, v.v. |
| 3 | $1,000 — $2,500 | Mức trung bình — các công ty phát triển phần mềm. |
| 4 | $3,000 — $4,000 | Trên trung bình — các công ty phát triển phần mềm, và khách hàng của họ đến từ phương Tây. |
| 5 | $4,000 — $5,000 | Cao nhất — các công ty phát triển phần mềm, khách hàng của họ đến từ phương Tây, và chủ sở hữu cũng vậy. Số này ít. Vị trí mở không thường xuyên và vào đó không dễ. Nhưng chúng tồn tại. |
Điều kỳ lạ nhất trong tình hình hiện tại là gì?
Một nửa tất cả lập trình viên làm ở các công ty cấp 1 và 2.
Muốn biết cái bẫy ở đâu không?
Có hàng trăm vị trí tuyển dụng mở ở các công ty cấp 3 và 4. Những công ty này sẵn sàng trả lương cao hơn và thường — điều kiện làm việc tốt hơn nhiều.
Tình huống đời thực: có hai Java Junior. Một người đi làm với $100/tháng (công ty cấp 1), còn người kia — $1,000/tháng (cấp 4). Tại sao phải nhận ít hơn?
Bạn có thể đạt được gì nếu không trì trệ
Nếu bạn liên tục tự phát triển trong lĩnh vực lập trình, từ hôm nay mức lương của bạn sẽ thay đổi đại khái như sau (+/- vài trăm đô la tùy thành phố nơi bạn làm việc):
Kế hoạch
0-3 tháng (Học viên)
Bạn biết rất ít về lập trình. Có thể đã học ở trường và/hoặc đại học, nhưng rất hời hợt.
Nhiệm vụ của bạn — học lập trình và học Java.
Mục tiêu của bạn — kiếm được công việc Java Junior ở công ty không dưới cấp 3.
Ba tháng đầu trong kế hoạch bạn chưa kiếm được gì, vì chỉ học lập trình. Trong tương lai, khi bạn có gia đình và nhiều khoản vay, đổi chuyên môn sẽ khó hơn nhiều. Để sửa sai, bạn sẽ cần để dành tiền cho một năm sống bình thường. Đừng mắc sai lầm ngớ ngẩn.
3-15 tháng (Java Junior Developer)
Bạn đã đi làm lập trình viên, và kinh nghiệm của bạn tăng lên từng ngày. Đừng lơ là. Bạn còn nhiều việc phải làm trước khi có thể ngủ quên trên chiến thắng.
Nhiệm vụ của bạn — học các công nghệ bạn sẽ cần với vai trò Middle. Những công nghệ nào cụ thể? Thế giới thay đổi. Hôm nay chúng tôi khuyên thế này, ngày mai cuộc đời thay đổi hết. Hãy tìm trên Internet vài tin tuyển dụng và xem họ yêu cầu gì. Nhất định hãy đọc cuốn “Thinking in Java” của Bruce Eckel.
Mục tiêu của bạn trong năm đầu làm Java Junior — vươn lên mức Java Middle. Không ai nói là rất dễ, nhưng hoàn toàn khả thi với người có mục tiêu. Điều này sẽ giúp mức lương nhảy vọt lên khoảng 1.500 USD.
Năm thứ 2 làm lập trình viên (Java Middle Developer, level 1)
Bạn đã làm việc chăm chỉ trong năm qua, và bây giờ bạn là Java Middle Developer. Với mức lương khoảng một nghìn rưỡi, bạn có thể sống ổn. Ở nơi làm việc, bạn được giao nhiệm vụ nghiêm túc, và kinh nghiệm của bạn tăng nhanh như thổi. Bạn sẽ vươn tới Java Senior Developer trong hai đến ba năm. Không có ý nghĩa gì khi cố tăng tốc quá trình này. Bạn cũng sẽ không nhận được mức tăng lương mạnh.
Nhiệm vụ của bạn — học các mẫu thiết kế (design patterns), đọc “Code Complete” của McConnell. Cải thiện chất lượng mã và kỹ năng làm việc nhóm. Có thể đặt mục tiêu mỗi tuần đọc một cuốn sách về IT. Khi đó sau một năm bạn sẽ hơn người khác khoảng 50 cuốn sách. Đừng để việc này sang sau: thời gian rảnh của bạn sẽ không nhiều hơn. Rất có thể bạn sẽ lập gia đình, hoặc gia đình sẽ thêm thành viên nếu đã có.
Mục tiêu của bạn — chọn vài công nghệ mà bạn sẽ chuyên sâu với vai trò Senior. Bạn không thể học hết mọi thứ. Trở thành guru trong một lĩnh vực nhỏ là lựa chọn tốt.
Năm thứ 3 làm lập trình viên (Java Middle Developer, level 2)
Bạn đã là Middle dày dạn và đang nghĩ đến việc trở thành Senior Developer. Điều đó dễ chịu và uy tín. Lương của bạn vượt 2.000 USD (số liệu cho Kyiv). Từ lúc này, nhu cầu dành cho những người chuyên nghiệp như bạn vượt nguồn cung. Bạn luôn có thể tìm việc trong vài ngày, và khó có khả năng nhận ít hơn bây giờ. Tất nhiên, miễn là bạn không làm điều dại dột.
Nhiệm vụ của bạn — tiếp tục học những công nghệ đã chọn. Làm việc tốt hơn. Không phải vì nhà tuyển dụng, mà vì chính bạn. Hãy xin vào các dự án với công nghệ có tiềm năng (chẳng hạn Big Data tại thời điểm viết bài này). Dù sao bạn cũng sẽ ở văn phòng 8 giờ mỗi ngày, vậy tại sao không kiếm thêm chút tiền và, quan trọng hơn nhiều, kinh nghiệm quý giá mà bạn sẽ cần.
Mục tiêu của bạn — đổi việc. Môi trường tốt ở đâu cũng có. Bạn sẽ gặp những dự án và công nghệ mới. Đừng gắn chặt quá sớm. Nếu bạn vẫn làm ở công ty cấp ba, hãy nghĩ đến việc chuyển sang cấp bốn. Cấp năm, dù rất hấp dẫn, hiện vẫn chưa thể với tới.
Năm thứ 4 làm lập trình viên (Java Senior Developer, level 1)
Bạn đã trở thành Senior Developer. Chúc mừng. Có thể bạn đạt được điều đó chưa thật xứng đáng, và bạn cảm thấy vậy. Dù sao cũng xin chúc mừng. Không quan trọng hiện tại bạn có xứng với chức danh hay không, điều quan trọng là trong tương lai bạn sẽ xứng đáng với nó. Thừa nhận đi, tốt hơn là nhận một công việc tốt trước, rồi một năm sau vươn lên xứng với nó, còn hơn là vươn lên rồi phải chờ vị trí tốt thêm một năm.
Hy vọng bạn không quên lời khuyên của tôi và đã đọc mỗi tuần một cuốn sách — bây giờ khả năng của bạn khiến bất kỳ sinh viên nào cũng phải ghen tị. Thật ra, họ sẵn sàng cầu nguyện để có được chúng. Hãy nghĩ xem: bạn có mức lương đáng kể, gần chạm 3.000 USD. Rất có thể bạn vẫn còn trẻ. Cả thế giới nằm dưới chân bạn.
Nhiệm vụ của bạn — xem lại các công nghệ bạn đã chọn. Có thể bạn cần đổi chuyên môn. Thế giới đã thay đổi, công nghệ đã thay đổi, và kiến thức của bạn trong hai năm qua cũng tăng lên. Thứ bạn quyết định dừng lại bây giờ sẽ trở thành lựa chọn cho vài năm tới. Đây là lúc chọn những công nghệ bạn yêu thích.
Mục tiêu của bạn — chọn hướng mà bạn có thể phát triển tiếp. Có rất nhiều; không ai liệt kê hết, nhưng bạn cần quyết định ngay bây giờ. Hôm nay bạn thay đổi hiện tại một chút, điều đó sẽ dẫn đến những thay đổi lớn trong tương lai.
Năm thứ 5 làm lập trình viên (Java Senior Developer, level 2)
Bạn đã xác định tương lai và đang hiện thực hóa ước mơ của mình. Hướng đi đúng cộng với khát khao tiến về phía trước — và kết quả sẽ không để bạn chờ lâu. Chúc mừng. Chúng tôi vui vì lại có thêm một người hạnh phúc.
Có một chân lý khôn ngoan. Con người thường đánh giá quá cao những gì có thể đạt trong một năm, và đánh giá thấp những gì có thể đạt trong năm năm. Hãy nhìn lại năm năm trước. Đúng là như vậy.
Nhiệm vụ của bạn — đừng đưa ra quyết định dại dột và đừng chiều theo sự lười biếng.
Mục tiêu của bạn — chọn hướng và tiếp tục tiến lên. Bạn nghĩ đây là kết thúc ư? Hãy nhớ lớp cuối cấp của bạn. Đây không phải là kết thúc, đây chỉ là khởi đầu.
Chuyên môn trong tương lai
Bạn có thể phát triển như chuyên gia kỹ thuật (nhánh trên), như nhà quản lý (nhánh dưới) hoặc như chuyên gia làm thuê/cố vấn độc lập (nhánh giữa). Tất cả phụ thuộc vào sở thích của bạn.
Sự nghiệp của lập trình viên
Nghề lập trình khác với các nghề khác. Ở đây không cần làm sự nghiệp quản lý để kiếm nhiều tiền. Không hiếm trường hợp senior developer kiếm nhiều hơn cấp trên-quản lý của mình. Càng tích lũy kinh nghiệm, mối quan hệ của bạn với cấp trên càng dịch chuyển từ điểm “sếp — nhân viên” sang dạng “ngôi sao điện ảnh và người quản lý của họ”. Những lập trình viên biết rõ giá trị bản thân thì kén chọn cả dự án lẫn việc làm. Cùng mừng cho chúng ta.
Vậy cần gì để trở thành một lập trình viên đẳng cấp cao và được săn đón trên toàn cầu? Bạn phải có kinh nghiệm lớn với những công nghệ mới nhất và có nhu cầu cao. Làm sao đạt được điều đó? Câu trả lời ở dưới.
Sau khi bạn lần đầu đi làm lập trình viên, có hai điều bắt đầu xảy ra với bạn, và lạ là không phải lúc nào cũng thấy rõ.
1. Bạn bắt đầu nhanh chóng tích lũy kinh nghiệm trong các dự án thực. Một năm kinh nghiệm làm lập trình viên có thể mang lại cho bạn nhiều kiến thức và kỹ năng trong chuyên môn hơn 5 năm đại học. Kinh nghiệm là chỉ số quan trọng đến mức trong các tin tuyển dụng IT người ta thường viết “cần Java developer với ba năm kinh nghiệm”.
2. Mỗi ngày bạn dành 8 giờ để học công nghệ mới, và bạn còn được trả hậu hĩnh vì điều đó. Tầm quan trọng của yếu tố này khó có thể đánh giá hết. Trong một số trường hợp, kỹ năng nhận được quý đến mức để có được chúng có thể sẵn sàng làm miễn phí, thậm chí trả thêm. Nếu bạn chọn dự án một cách khôn ngoan, bạn sẽ có một sự nghiệp lập trình viên thăng tiến chóng mặt.
Nhưng, rốt cuộc nên chọn gì?
Thường thì, nếu bạn không biết công nghệ nào sẽ hữu ích, bạn bắt đầu chọn theo nguyên tắc “thích/không thích” hoặc “hợp mốt/không hợp mốt”. Khi đó chỉ còn trông vào may mắn. Vậy nên tốt hơn là biết trước bạn muốn đến đâu.
Có rất nhiều con đường phát triển cho lập trình viên, nên để đơn giản, chúng ta tách một vài lộ trình và mô tả cách nhìn của mình về tình hình. Đừng coi sơ đồ này là lập trường cứng nhắc, mà là cái nhìn giản lược nhằm mang lại chút rõ ràng.
Lập trình viên 200 tuổi.
Nếu điều bạn thích nhất là lập trình, con đường của bạn — Senior Developer, sau đó Tech Lead Developer và kiến trúc sư phần mềm. Bạn cũng có thể đơn giản làm lập trình viên 50 năm. Thường thì lương của senior và tech lead còn cao hơn lương của quản lý họ. Đừng bỏ lỡ.
Quản lý. Bạn may mắn, bạn không giống mọi người.
Bạn đã sang “phe địch”. Đùa thôi. Nếu bạn có năng lực tổ chức xuất sắc, con đường của bạn — Team Lead, sau đó Project Manager. Điều này cho bạn cơ hội trở thành giám đốc và giúp ích khi mở công ty riêng. Đó là điều bạn muốn, đúng chứ?
Ăn trộm máy kéo.
Nếu bạn đã có gia đình và con cái, có thể bạn muốn một cuộc sống yên bình và đầy đủ ở một quốc gia có nền kinh tế ổn định. Bạn nghĩ đến chuyện chuyển nơi ở/nhập cư sang Canada, Mỹ, Thụy Sĩ hoặc thậm chí Australia. Bạn có kỹ năng tuyệt vời và một nghề nghiệp được săn đón. Bạn sẽ không phải bắt đầu từ chân rửa bát. Ví dụ, từ vị trí Senior Java Developer. Và, rất có thể, với mức lương lớn. Không tệ chút nào.
Đi khắp thế giới, trừ Paris, và không chết.
Bạn chưa có gia đình và muốn đi du lịch. Upwork — tất cả dành cho bạn. Hãy tìm khách hàng, thỏa thuận mức rate — từ $20/giờ, xách laptop lên và lên đường. Mức lương của bạn đủ để sống bình thường ở bất kỳ quốc gia nào. Tại sao không bắt tay vào thực hiện giấc mơ ngay bây giờ?
GO TO FULL VERSION