Tản mạn các cấp độ trong Software Engineering

Hi các bạn,

Bài này nói về ý kiến cá nhân là chủ yếu (IMO) về các levels trong Software Engineering.

Cũng cho các bạn fresher/junior thấy dc những cái overview trong nghề.

Before jumping into the section

Level mình đánh giá ko bao giờ theo số năm kinh nghiệm. Và mình cũng cực kì ko thích những nơi lấy số năm kinh nghiệm ra làm thước đo. Vì nó rất vague và ko đánh giá dc tổng quan. Bản thân mình cũng nhìn vào vài người có số năm k/n khủng nhưng thực chiến thì … . Và mình mong các bạn đừng bao giờ phải gặp điều đó.

Ngoài ra, mọi thứ – khi đã liên quan tới tech/engineering, thì bỏ hẳn tuổi tác và years of exp ra. Vì trc đó có thể vậy, nhưng giờ ko phải vậy là nó bình thường. Mọi thứ thay đổi mỗi ngày, tech thay đổi cực kỳ nhanh. Hãy adapt, hãy open-minded, hãy listen và research nhiều hơn. Talents trẻ, giỏi bây giờ nhiều lắm, cực nhiều. Hãy trở thành “gừng càng già càng cay” thay vì “già mà còn bảo thủ” (mong là mình 30+ tuổi cũng vậy). Khi đã nói về engineering thì “there is no silver bullet”.

Và, chúng ta hãy ưu tiên nhìn vào:

  • Kiến thức
  • Sự phát triển của bản thân, có proven-tracking càng tốt
  • Project đã trải qua, bản thân ở đâu trong đó
  • Team ra sao, bản thân ở đâu trong đó

Levels theo expertise

  • Fresher – level này cần dc cầm tay chỉ việc và theo dõi kỹ để track tốt khả năng phát triển
    • 1.1 Biết những thứ cơ bản – làm những tasks dễ
    • 1.2 Làm ngon lành những tasks dc giao (với độ khó dần)
    • Notes:
      • Ở level này, các bạn được phép làm phiền người khác để tránh việc các bạn làm 1 cái gì đó, ngta review xong rồi bảo ko dc lại xóa làm lại, cũng như là tránh bị get lost.
      • Nếu cảm thấy cái ông dc assigned để training cho mình bỏ rơi dữ quá, nên liên hệ gấp với Manager để xử lý, tránh dẫn đến tiêu cực rồi lại đem lên reviewcongty
  • Junior – level này thì ko cần cầm tay chỉ việc nữa, chỉ cần report thường xuyên
    • 2.1 Làm ngon lành những tasks dc giao từ medium trở lên
    • 2.2 Tương tự, nhưng cần lưu ý:
      • Khi đã đạt dc bước này, bạn nào tự tin thì sẽ lên ngay Senior, chỉ cần:
        • Theo dõi kỹ những gì mình làm. Nếu mọi thứ cảm thấy dễ dàng quá, liên hệ ngay với Lead/Manager để xin challenges
          • Challenges accepted & finished => lên Senior
        • Ngoài ra, bản thân cũng nên đóng góp 1 chút vào project, ví dụ như:
          • Build ra những helper classes mà reuse lại dc (level 1)
          • Build ra những libraries nhỏ nhỏ mà reuse lại dc và xử lý dc vấn đề nào hay hay (level 2)
          • Đi review code (là 1 cách rất hay để vừa học hỏi từ code của ng` khác, vừa là 1 cách để validate kiến thức của mình)
            • Ko cần nhiều, chủ yếu là dám làm hay không
      • Ở bước 2.2, nếu bạn lười/ko chủ động thì bạn sẽ vào cái vòng lặp gọi là “bẫy junior”, cứ ở đó mãi.
    • Notes:
      • Soft skill: đặt câu hỏi, ngắn gọn súc tích dễ hiểu và đi vào vấn đề chính
      • Các bạn vẫn dc làm phiền người khác, nhưng phải ít hơn gấp 2-3 lần hồi Fresher (vd fresher ngày các bạn kiếm ông A 4 lần thì giờ ngày kiếm ổng 1 ~ 2 lần thoy).
  • Senior – level này là cho gì làm nấy:
    • Bản thân 1 người Senior cần – về mức độ công việc:
      • Làm việc độc lập, tránh làm phiền ng` khác (nếu có thì ít nhất có thể).
      • Adapt tốt, chịu khó mày mò và đọc code.
        • Bản thân Codebase là 1 documentation, nếu ko có documentation thì hãy vào đọc code nhé, đừng có đi than (trừ khi codebase nó cực kì …)
      • (copy từ junior) Đặt câu hỏi, đúng đủ và nhanh gọn.
      • Có khả năng truyền đạt và training Junior/Fresher/other Seniors 1 cách nhanh gọn dễ hiểu.
        • Bạn chỉ training/knowledge-sharing thôi. Level Senior ko ai bắt bạn phải lead/quản lý team cả, vì đó ko fải công việc của Senior.
      • Ở bước này, việc setup môi trường, cài tools phải là 1 thứ gì đó rất dễ với bạn. Đừng đi hỏi những thứ linh tinh hay share lỗi linh tinh rồi than thở với ng` khác. Cái này nó thuộc về phạm trù research and debug.
    • Levels:
      • 3.1: Ngoài code features tốt – smoothly, bản thân cũng nên đóng góp vào Review Code process, cố gắng adapt lại codebase (kể cả của ng` trước).
      • 3.2: Ở level này, cover hết 3.1 và các bạn cũng phải đóng góp vào non-feature, project cho team:
        • Có để define dc những patterns để phát triển lâu dài
        • Build libraries/helpers là 1 cái gì đó rất dễ với bạn và nó đem lại lợi ích lớn cho team
        • Review-code ở mức độ deeply hơn, smell dc bugs cũng như wrong approaches/logic
        • Optimization là key, hãy đóng góp những cái này luôn.

// Nhiêu đây thôi, lên nữa rộng lắm ko lên nữa nhoa

Tạm kết ở đây nha các bạn. Happy evolving!!

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

Bình luận qua Facebook