Mình chỉ liệt kê con đường nghề nghiệp của 1 developer, vì bản thân mình cũng là developer. Con đường của 1 tester (QA engineer) cũng có 1 số chức danh tương tự, nhưng lên cao sẽ khác. Các chức vụ sẽ được mình miêu tả theo thứ tự từ thấp lên cao nhé.
Fresher/Junior Developer
Các bạn 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 bạn, thường là từ 300-500$.
Do chưa có kinh nghiệm, fresher/junior thường được các công ty đào tạo lại, 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, tiềm năng lập trình của bạn. Cá nhân mình thấy chương trình đào tạo Fresher của FSOFT cũng khá tốt, có dạy nhiều thứ mà bạn sẽ tiếp xúc khi làm việc (mặc dù lương fresher hơi thấp).
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.
Developer
Code được 1 thời gian, khoảng 1-3 năm, các bạn sẽ được gọi là Developer (Nhiều bác 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, 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? 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, và cũng khó mà lấy danh nghĩa junior để hỏi, nhờ vả hay mắc lỗi nữa.
Ở 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.
Lý thuyết là vậy nhưng thực tế, thuở làm FSOFT mình ăn lương junior mà làm công việc của developer, việc khó lâu lâu cũng đùn mình luôn, nhờ vậy mình học hỏi cũng được khá nhiều.
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:
Hướng quản lý (Management) |
Hướng kĩ thuật (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ệ + 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 voz, lướt webtretho …. Đùa đấy, công việc chính của bạn 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ệ, quy 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), Business Analyst
Trong phạm vi bài viết, mình không cover hết được toàn bộ những bước phát triển trong ngành này, mong nhận được sự bổ sung, góp ý của các bạn.
Mong đây có thể là tài liệu tham khảo cho hướng đi trong sự nghiệp rực rỡ của bạn.
Theo toidicodedao.com
Japan IT Works