Trong lập trình embedded, biết nhiều hay biết sâu sẽ tốt hơn?

Việc phát triển tech stack có thể đi theo hai hướng, biết rộng hoặc biết sâu. Ví dụ như trong lĩnh vực lập trình web, người ta có khái niệm full stack developer, làm từ backend, frontend, thậm chí cả cấu hình cloud, jenkin, automation test. Toàn bộ công việc của 1 dự án có thể thực hiện bởi 1 cá nhân. Fullstack developer rất được ưa chuộng trong lập trình web vì nó tối ưu chi phí, phát triển dự án nhanh… Vậy câu hỏi là full stack developer trong lập trình embedded có được đánh giá cao như vậy không?

Đây là câu hỏi không ít người tự đặt ra khi làm về lập trình embedded. Hy vọng bài viết sau đây sẽ trả lời được phần nào khúc mắc của các bạn.

Bản chất của lĩnh vực lập trình embedded là gắn với công nghiệp, vì thế nó mang các đặc trưng trong công nghiệp. Có thể liệt kê 1 vài đặc điểm như sau:

  • Quy trình phát triển chặt chẽ và nhiều tiêu chuẩn
  • Phân chia công việc rõ ràng
  • Tính chuyên môn hóa cao
  • Vốn đầu tư, chi phí R&D lớn
  • Số lượng người tham gia làm 1 sản phẩm thường đông.

Vì những lý do như trên nên trong lập trình embedded, full-stack developer “thường” không được đánh giá cao lắm. Nếu 2 ứng viên cùng số năm kinh nghiệm thì ứng viên làm tập trung 1 mảng, phù hợp với công nghệ dự án yêu cầu sẽ được đánh giá cao hơn ứng viên đa năng, làm được ở nhiều tầng.

Chữ “thường” ở trên mình ghi trong ngoặc kép, vì đặc thù các công ty làm product ở VN có điểm khác với các công ty làm product lớn trên thế giới mà chúng ta đang out sourcing. Product ở VN thì có nhiều công ty nhỏ, 1 sản phẩm có thể được phát triển bởi 1 hoặc vài người, đối với những dự án dạng này, họ lại đánh giá cao ứng viên biết rộng – dạng full stack. Tuy nhiên điều này không đi xu thế cũng như các tiêu chuẩn của ngành lập trình embedded tại các nước phát triển. Bản thân ngành lập trình nhúng ở VN cũng đang trong quá trình hoàn thiện, vẫn còn một số điểm sau này sẽ bổ sung. Ví dụ như quy trình quản lý chất lượng sản phẩm, tiêu chuẩn về tài liệu phần mềm, automation test, quy trình coding… Thực lòng mà nói thì đa số các job về embedded có lương cao ở VN thường sẽ nằm ở các công ty outsourcing hoặc off-shore của nước ngoài.

Nếu muốn phát triển theo hướng biết rộng trong embedded thì nên đặt mục tiêu về vị trí software architecture hoặc solution architecture. Những vị trí này đặc biệt cần kiến thức rộng, đa nền tảng. Tuy nhiên thị trường không có nhu cầu nhiều về mặt số lượng của những vị trí này.

Tuy nhiên còn 1 điểm nữa, cho dù đặt mục điêu để làm vị trí SA, thì trong những năm đầu tiên bạn vẫn phải học sâu về 1 chuyên môn cụ thể. Nguyên nhân là để đạt được level SA, thông thường sẽ cần khoảng ~ 10 năm kinh nghiệm. Trong 10 năm đầu, bạn phải được người quản lý phía trên đánh giá cao, được giao những công việc quan trọng trong dự án, thì khi đủ 10 năm, bạn mới có thể lên được vị trí SA. Nếu đặt mục tiêu trở thành SA sau 10 năm thì mô hình phát triển theo hình chữ T, tức là tập trung chuyên sâu trong 5 – 6 năm đầu, khi đã đạt level senior thì bắt đầu mở rộng chuyên môn để up level lên SA.

Nói tóm lại thì trong mảng embedded, ứng viên biết sâu thường sẽ được đánh giá cao hơn biết rộng, phù hợp với đặc thù công nghiệp của lĩnh vực này. Trong 2 hướng thì đây là hướng dễ đi hơn. Nếu muốn phát triển theo hướng full-stack thì nên đặt hẳn mục tiêu trở thành SA hoặc tự làm sản phẩm riêng. Tuy nhiên vẫn nên phát triển theo hình thái chữ T thay vì dàn trải ngay từ những năm đầu.

Leave a Comment

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

Scroll to Top