Các Nấc Thang Phát Triển Sự Ngiệp Cho Developer

Khi các bạn còn đang học trên ghế nhà trường hoặc mới ra trường sẽ khó hình dung được về những vị trí, chức danh trong ngành lập trình. Nay mình xin chia sẻ bài viết nhằm giải đáp những thắc mắc và định hình con đường nghề nghiệp cho các bạn. Câu hỏi khi mới bước chân vào nghề:

  • Mới đi làm em có chức danh gì, công việc như thế nào?
  • Làm coder một thời gian lâu thì sẽ lên được chức gì, lương cao không?
  • Em muốn theo nghề coder, không thích làm trưởng nhóm, thì em nên định hướng thế nào?

Những câu hỏi kiểu như trên rất phổ biến và nó hiện hữu ngay trong suy nghĩ của mỗi người dân IT. Để hiểu rõ con đường sự nghiệp của ngành developer, các bạn sẽ dễ định hình tương lai phát triển cho cá nhân, cũng như dồn sức vào con đường mình đã chọn một cách chuyên tâm nhất.

  • Nấc thang đầu tiên Fresher/Junior Developer

Ngay từ khi bạn là sinh viên đi thực tập hoặc mới ra trường thường được chức danh này. Số năm kinh nghiệm của Junior Developer thường vào khoảng 6 tháng – 1 năm. Mức lương thì tùy vào khả năng của mỗi bạn, thường là từ 6tr-10tr. Với tình trạng hiện nay do chưa có kinh nghiệm nên các fresher/junior khi bắt đầu đi làm thường được các công ty training một thời gian khoảng hay còn gọi là học một khóa fresher. Ở đây mình đang nói về tình trạng chung của các sinh viên mới ra trường hiện nay là thường sẽ pải qua một khóa training của các công ty trong ngành công nghệ thông, do đó khi phỏng vấn fresher các công ty thường chỉ xét khả năng suy nghĩ logic, khả năng lập trình, các kiến thức cơ bản của của ngôn ngữ lập trình mà mình chọn, tiềm năng lập trình của mỗi người. Cá nhân mình thấy chương trình đào tạo Fresher của Framgia cũng khá tốt, hiện tại Framgia đang có khóa học về Ruby 6thang trang bị nhiều kiến thức cho các bạn mới ra trường dạy nhiều thứ mà bạn sẽ tiếp xúc khi làm việc dự án thật (mặc dù lương fresher hơi thấp).

Đối với Junier khi được join vào dự án thật do chưa có kinh nghiệm, mọi người thường không đòi hỏi ở bạn quá cao. Công việc của 1 junior thường là tìm hiểu project hiện tại, code các module nhỏ, đơn giản, fix bugs, có thể có sự trợ giúp review của senior. Ở giai đoạn junior, các bạn hãy cố gắng tranh thủ học code, học cách thức làm việc, học hỏi kinh nghiệm của các bác senior đi trước. Học mọi thứ từ các code của các senier đến cách quản lý của các BRES, PM...vv

  • Developer

Code được 1 thời gian, khoảng 2-4 năm, các bạn sẽ được gọi là Developer (Nhiều bạn sẽ lên thẳng Team Leader hoặc Senior, tùy công ty). Ở giai đoạn này, bạn đã làm qua một số project vừa có kinh nghiệm và khá rành về 1 số công nghệ. Mức lương của developer vào khoảng 600-900$ tùy vào công ty. Màn phỏng vấn cho developer thường khó hơn. Người phỏng vấn sẽ hỏi bạn về những project đã làm, các khó khăn bạn đã gặp phải, cách giải quyết nó như thế nào? Ngoài ra, buổi phỏng vấn sẽ tập trung vào những công nghệ bạn đã ghi trong CV. Vì developer đã có kinh nghiệm, các bạn sẽ không còn “được” các anh senior kèm cặp nữa, và cũng khó mà lấy danh nghĩa junior để hỏi, nhờ vả hay mắc lỗi nữa. Thường phỏng vấn giai đoạn này sẽ đi sâu vào cách giải quyết vấn đề gặp pải, cách đánh giá mức độ của vấn đề. Ở giai đoạn này, bạn đã được code một số module phức tạp hơn, tham gia meeting, code review, thảo luận với khách hàng v…v. Đây là giai đoạn để bạn dồn nén kiến thức, kinh nghiệm, gây dựng danh tiếng để lên nấc tiếp theo trong bậc thang nghề nghiệp.

  • Quản lý hay kĩ thuật?

Ở giai đoạn sau, bạn đã có thể xác định con đường cho mình. Nếu muốn tập trung vào code và kĩ thuật, bạn có thể đi theo hướng technical: Senior Developer => Technical Lead => Software Architecture. Nếu muốn làm việc với quy trình và con người, bạn nên đi theo hướng quản lý: Team Lead => Project Manager => Manager. Ở giai đoạn đầu, lằn ranh giữa 2 con đường này khá mờ nhạt, nhưng càng lên cao lại càng trở nên rõ ràng. Các bạn có thể xem bảng tóm tắt sau:

Management Technical
Team Leader bạn trở thành leader của 1 team nho nhỏ, khoảng 3-6 thành viên. Ngoại trừ code ra, bạn còn phải họp hành với cấp trên, báo cáo với khách hàng, quản lý cấp dưới. Ở giai đoạn này, bạn sẽ dần học thêm 1 số kĩ năng lãnh đạo, kĩ năng quản lý v…v. Ở 1 số cty nhỏ, developer lâu năm, có kinh nghiệm sẽ lên team leader. Bạn vẫn còn khá nhiều thời gian code, code giỏi có thể sẽ làm thành viên trong team tôn trọng hơn. Mức lương cho team lead thường khoảng 1000-1500$ Senior Developer sau một thời gian làm việc, bạn nắm vững, hiểu sâu và rộng nhiều công nghệ và quy trình. Ở vị trí này, ngoại trừ khả năng code “thần thánh”, bạn còn phải biết đưa ra design và solution. Ngoài ra, bạn còn phải hướng dẫn chỉ bảo các em junior mới vào, cũng như tham gia code review v…v. Đôi khi senior dev cũng kiêm luôn vị trí team leader, do đó bạn cũng cần một chút kĩ năng diễn đạt và lãnh đạo. Mức lương cho Senior Developer cũng khoảng 1000-1500$(hoặc hơn)
Project Manager lên đến vị trí này, bạn sẽ có rất ít hoặc hầu như không có thời gian code. Đa phần thời gian của bạn dùng để đọc báo, lướt facebook, lướt web ….vv haha mình đùa chút, công việc chính của project manager bây giờ là báo cáo, quản lý, lãnh đạo, lâu lâu bạn còn bị bắt đi phỏng vấn 1 số ứng viên để tuyển thành viên cho dự án nữa. Bạn là người quyết định sự thành bại của 1 dự án, do đó nếu dự án thành công bạn sẽ được thưởng 1 khoản bonus kha khá, tùy cty. Mức lương cho PM vào khoảng 1000-2000$ Technical Lead bạn cần hiểu biết về công nghệ sâu và rộng, vì chính bạn là người lựa chọn công nghệ, qui trình… cho 1 dự án. Những quyết định lớn về thiết kế, cấu trúc code … sẽ do bạn chịu trách nhiệm. Ở giai đoạn này, ngoài việc technical “cứng”, bạn còn phải giỏi thuyết trình, hướng dẫn, giải thích… Vì sao á? Lead đưa ra vấn đề thì phải giải thích hợp lý, thành viên khác nó mới hiểu, nể và làm theo chứ. Mức lương cho vị trí này vào khoảng 1500-2500$.
Manager/Director chúc mừng, ở vị trí này bạn đã được gọi là sếp, cấp trên, lãnh đạo, … Lúc này bạn sẽ không có thời gian mà code, suốt ngày họp hành, giao việc, phỏng vấn, trao đổi với các bộ phận, phòng ban, xử lý việc hành chính… Mình không có thông tin về mức lương, thưởng v…v của vị trí này. Software Architect muốn đạt chức danh này, ít nhất bạn phải có 10-20 năm trong ngành. (Nhìn thằng nào mặt mũi trẻ măng mà vỗ ngực tự xưng SA thì đừng tin). Công việc của bạn khá gian khổ: Từ một yêu cầu “mơ hồ” của khách hàng, bạn phải làm việc với BA để đánh giá solution, làm việc với PM để xây dựng 1 team, làm việc với Technical Lead để thiết kế, đưa ra các quyết định quan trọng về kiến trúc.Vị trí này mặc dù không có quyền quản lý, nhưng lại có khá nhiều quyền lực ngầm. Mức lương cũng ngang ngửa hoặc cao hơn cả manager.

Ngoài những con đường trên, các bạn có thể đi theo hướng Sales, Kĩ sư cầu nối (BrSE). Trong phạm vi bài viết, mình không phân tích cover hết được toàn bộ những bước phát triển trong ngành này, mình xin dừng ở đây hẹn các bạn đến bài viết tiếp theo. 😃