kinh-nghiem-lap-trinh - It costs 7 mins to read

Bài viết này chỉ ra con đường phát triển sự nghiệp dành cho Developer (QA, Tester, Business Analytics, Sales, Kĩ sư cầu nối… không được cover trong bài viết.)


Các bạn sinh viên còn đang học 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. Mình viết bài này nhằm giải đáp một số thắc mắc các bạn thường hỏi như:

Hiểu rõ con đường nghề nghiệp của ngành developer, các bạn sẽ dễ định hình phát triển tương lai của bản thân, cũng như dồn sức vào con đường mình đã chọn.

Career Path

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 quá cao ở bạn. 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.

Fresher

Developer

Code được 1 thời gian, khoảng 1-3 năm, các bạn sẽ được gọi là Developer. Ở 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 PV 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 PV 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.

Developer

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)
Team Lead

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ố công ty 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$.

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 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 công ty. Mức lương cho Projecct Manager vào khoảng 1000-2000$.

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.

Hướng kĩ thuật (Technical)
Senior Developer

Sau một thời gian làm việc, bạn nắm vững, hiểu rộng và sâu 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, đưa ra 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 developer 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).

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… của 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 chuyên môn về 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$.

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.


viphat - Nhớ lại lời anh Khoa đã nói trong buổi học về MBTI: Các Lập trình viên Việt Nam (hay người đi làm nói chung) thường hay gặp phải một bệnh chung, là cứ cho rằng phải lên được trưởng phòng, quản lý, giám đốc này nọ mới được gọi là thăng tiến, nếu an phận với công việc của một chuyên gia thì tưởng là dậm chân tại chỗ. Cũng do một phần bởi các công ty VN trả lương cao hơn cho các chức vụ quản lý (còn ở nước ngoài, khi bạn muốn chuyển công việc từ một chuyên gia trở thành một quản lý, lương của bạn sẽ bắt đầu từ mức lương thấp nhất dành cho một quản lý và nó hoàn toàn có thể thấp hơn mức lương chuyên gia của bạn.) Nhưng các bạn đừng quên một điều là một chuyên gia tốt hoàn toàn có thể trở thành một quản lý tồi nếu bạn không có kiến thức, kinh nghiệm, kỹ năng cũng như không yêu thích công việc quản lý. Và như vậy, là bạn đang đi lùi lại đó. (Nếu bạn thích công việc của một Engineer, thích làm việc với Product hơn là với con người thì hãy cứ tập trung vào con đường của bạn, trở thành người giỏi nhất trong lĩnh vực của bạn, và cái gì hiếm thì sẽ quý.)

Nguồn bài viết: Tôi đi code dạo