Engineer Level - Các Cấp Bậc Của Một Kỹ Sư Phần Mềm | Dev Note

Trước khi tiếp tục thì mình xin phép chỉ rõ ra là các cấp bậc và yêu cầu công việc trong bài viết này là xuất phát theo chuẩn mực cá nhân và dựa theo kinh nghiệm và hiểu biết của mình đối với ngành. Có thể công ty bạn sẽ có các cấp bậc khác nhưng về cơ bản mình tin là sẽ không khác nhiều so với các cấp bậc mình chia sẻ. Mình cũng in chia sẻ thêm là các engineering team mà mình lead đều sẽ sử dụng hệ thống cấp bậc như thế này vì mình tin là nó khá rõ ràng để các bạn có thể hiểu và biết mình cần phải làm gì để được lên cấp bậc tiếp theo.

Làm kỹ sư phần mềm thì có các cấp bậc như thế nào?

  • Intern: Đây là level thấp nhất đối với ngành, thành viên của level này thường là các bạn còn đang đi học trong trường. Trong giai đoạn này, mục tiêu của các bạn intern là làm quen với phong cách làm việc ở văn phòng, học được sự chuyên nghiệp trong công việc, cách làm việc nhóm, các kỹ năng mềm liên quan… Internship là rất quan trọng để bạn có cơ hội lĩnh hội được kỹ năng mềm, cho nên các bạn sinh viên đang đi học hãy cố gắng để có được cơ hội học tập này. Ngoài ra, bạn có cơ hội được nhận vào làm nếu công ty nhận thấy bạn có năng lực và tiềm năng. Tuy nhiên, không phải công ty nào cũng sẽ có chương trình tuyển intern vì cơ bản intern sẽ cần thời gian để rèn luyện mới có thể làm được việc, và công ty sẽ phải đầu tư engineer (con người) và resource (thời gian, công sức) để train các bạn intern này. Ngoài ra, intern thường sau khi train khả năng cao là sẽ đi làm ở công ty khác với vị trí tốt hơn chẳng hạn…
  • Junior Software Engineer: Đây là level bắt đầu của một kỹ sư. Thường thì các bạn ở level này là các bạn vừa tốt nghiệp hoặc tốt nghiệp trong vòng 1 đến 2 năm. Do vậy, trình độ các bạn ở cùng level này thường không được đồng đều. Ví dụ: Có bạn ra trường nhưng chưa có kỹ năng mềm, chưa bao giờ đi làm… Có bạn đã đi làm 1, 2 năm và đã có kinh nghiệm trong ngành… Về phía công ty thì khi tuyển nhân sự ở level thì mong đợi là các bạn có kiến thức về ngành và sẵn sàng học hỏi để có thể hỗ trợ các engineer khác trong team để hoàn thành công việc. Đây cũng là giai đoạn mà thường các bạn sẽ được code rất nhiều (rất sướng!), vì ngoài code ra các bạn vẫn chưa biết gì về kiến trúc hay hệ thống.

  • Intermediate Software Engineer: Bạn lên level này khi nào bạn đã nắm hết các cơ bản công của công việc bạn đang làm. Ví dụ với frontend thì bạn hiểu browser hoạt động thế nào, hiểu sâu hơn về các công nghệ liên quan ví dụ React, React Hooks, Redux, Webpack… Với backend thì các bạn đã hiểu về stateless application, các tier khác nhau của hệ thống, làm thế nào để scale, làm thế nào để debug… Thường thì engineer có kinh nghiệm làm việc từ 2 đến 3 năm sẽ rơi vào nhóm này. Ở level này, các bạn đã bắt đầu có kiến thức về kiến trúc và hệ thống và biết cơ bản áp dụng những kiến thức này vào việc xây dựng sản phẩm tuy nhiên các bạn ở level này thường bị loạn vì lượng kiến thức vừa được nạp vào trong thời gian ngắn, nên khi áp dụng thực tế thì sẽ gặp tình trạng là giải pháp có vấn đề, hoặc chưa phù hợp với nhu cầu thực tiễn thì các bạn sẽ không biết sẽ tiếp tục như thế nào, hoặc mình đã áp dụng sai chỗ nào.

  • Senior Software Engineer: Bạn lên level này khi đã trải qua đủ số sai lầm khi áp dụng kiến thức ở level trước và đã biết được là phải làm gì nếu có vấn đề xảy ra với giải pháp của mình. Các bạn ở level này thường thì ít nhất phải cần 4 năm kinh nghiệm trở lên. Dưới 4 năm kinh nghiệm, các bạn chưa có đủ thời gian để hấp thụ kiến thức để có thể vận dụng được. Ở level này các bạn sẽ nghĩ nhiều đến scale và performance nếu bạn làm backend; hoặc là design system, code structure và performance nếu bạn là frontend. Ở level này thì các bạn đã có kiến thức tương đối về hệ thống và kiến trúc, và có thể đã đủ kinh nghiệm để xây dựng một sản phẩm hoàn thiện và đồng thời hướng dẫn được các bạn ở level thấp hơn.

  • Cao hơn nữa thì sao? Từ level này trở đi thì nhìn chung các bạn có thể đi theo hai hướng:

  1. Quản lý: Bạn trở thành Engineer Manager -> Head of Engineering -> Director of Engineering -> VP -> CTO
  2. Chuyên gia: Bạn trở thành Staff Engineer -> Senior Staff Engineer -> Principle Engineer -> VP -> CTO

Với các bạn đã ở trong nhóm này thì các bạn đã có đủ kinh nghiệm để có thể lựa chọn con đường phù hợp với bản thân mình.

Làm sao để được lên cấp bậc?

Đây là câu hỏi mà tất cả các bạn đều quan tâm, tuy nhiên để trả lời được câu này thì một bài post như thế này sẽ không đủ. Mình sẽ chia sẻ thêm về vấn đề này qua một series các post tiếp nối post này nhé. Câu trả lời ngắn ngọn cho câu hỏi này thì với team của mình quản lý sẽ là

Nếu bạn đã làm được tốt phần việc của level tiếp theo trong một khoảng thời gian đủ lâu (tuỳ vào vị trí) thì bạn sẽ được thăng chức lên level đó.

Theo kinh nghiệm cá nhân của mình thì các bạn nên dành thời gian xem qua competency matrix cho engineering của các công ty lớn để hiểu được người ta sẽ yêu cầu gì ở mình vào level hiện tại, và mình cần làm gì để đáp ứng được level tiếp theo nhé.

Từ khóa » Các Bậc Kỹ Sư