Ở Phần 1 — Career Path: Từ Intern đến Software Engineer, chúng mình đã điểm qua những nấc thang đầu tiên trên con đường của một kỹ sư lập trình từ một Intern mới chập chững vào nghề cho đến khi trở thành một Software Engineer thành thục.
Vậy khi đã dày dặn kinh nghiệm, con đường phía trước chờ ta là gì? Liệu trở thành một Senior Software Engineer có phải là lựa chon duy nhất? Nếu bạn là một lập trình viên và hẵng còn phân vân về câu hỏi: “5 năm nữa mình sẽ là ai?”, vậy hãy cùng đọc tiếp để xem sau Software Engineer là những nấc thang nào nhé.
Mục lục
4. Senior Software Engineer
- Định nghĩa: Vị trí Senior Software Engineer có thể coi là giấc mơ của nhiều kẻ mới vào nghề: có hiểu biết sâu rộng về nhiều mảng kiến thức, có thể tự mình phát triển những tính năng phức tạp, hiểu rõ về vòng đời ứng dụng, cơ sở dữ liệu, thành thạo các công nghệ và quy trình, nhiều khả năng thăng tiến…
- Yêu cầu: Khi đã “vỗ ngực xưng danh” là một Senior Software Engineer, bạn sẽ phải chứng minh bản thân bằng kỹ năng thực tế và sự chủ động trong công việc. Số năm làm việc không phải là tất cả, vì có “senior” hay không phải xem kiến thức và kỹ năng của bạn đã thành thục đến đâu.
- Công việc: Bên cạnh coding, Senior Software Engineer sẽ phải tham gia những buổi họp high-level để cho ra hướng đi, design cũng như solution cho sản phẩm. Trong team, các Senior cũng thường phải đóng vai trò là người hướng dẫn các bạn còn non hơn, cũng như tham gia vào các chương trình training cho thực tập sinh hoặc nhân viên mới.
5. Technical Lead/Team Leader
- Định nghĩa: Khác với Senior Software Engineer, Technical Lead/Team Leader là khi bạn trở thành “anh cả” của một hoặc nhiều team kỹ thuật.
- Yêu cầu: Vị trí Technical Lead không chỉ yêu cầu bạn có kỹ năng và kinh nghiệm dày dặn, mà còn đòi hỏi khả năng quản lý, phân công công việc và đôn đốc cả quá trình tạo ra sản phẩm.
- Công việc: Bạn sẽ là người chịu trách nhiệm về kỹ thuật cho cả team, tham gia các cuộc họp với Manager để quyết định phát triển sản phẩm bằng công nghệ gì. Từ đó, Team Leader sẽ phân công công việc, cũng như phổ biến các yêu cầu cụ thể cho cả team. Những công việc như hướng dẫn, quản lý chương trình training cho các thành viên trong team cũng là một phần của vị trí này.
Technical Lead/Team Leader là một vị trí vô cùng quan trọng, đòi hỏi nhiều năm phấn đấu và có thể sẽ là bến đỗ cuối cùng của bạn. Tuy nhiên, nếu muốn tiến xa hơn thì đây cũng là lúc bạn cần chuẩn bị cho một ngã rẽ khác trong sự nghiệp của mình.
Trước ngưỡng cửa này, bạn sẽ phải lựa chọn 1 trong 2 hướng: đào sâu về chuyên môn (technical) hoặc mở rộng sang quản lý (management). Với mỗi lựa chọn, con đường phía trước đều sẽ thay đổi hoàn toàn cuộc đời bạn, vậy nên hãy đọc tiếp và cân nhắc thật kỹ để tìm ra hướng đi phù hợp cho mình nhé.
6. Hướng Technical: Software Architect
- Định nghĩa: Software Architect (kiến trúc sư phần mềm) là một chức danh nhận được nhiều sự ngưỡng mộ trong giới IT. Có thể nói đây là nấc thang cao nhất trong sự nghiệp của một Software Engineer theo hướng kỹ thuật.
- Yêu cầu: Để trở thành Software Architect yêu cầu bạn phải có hiểu biết vô cùng rộng về các hệ thống phức tạp để có thể đưa ra giải pháp, hoàn thành những yêu cầu (kể cả còn khá mơ hồ) của khách hàng. Phải mất từ 10–20 năm để bạn có thể tích luỹ đủ kiến thức, cũng như thành thạo những kỹ năng cần thiết cho vị trí này.
- Công việc: Sau khi nhận yêu cầu về sản phẩm, bạn sẽ phải phân tích và đánh giá các yêu cầu trên, sau đó làm việc với tất cả các Team Leader và Manager (PM, Technical Lead, Test Lead…) để xây dựng team và đưa ra các quyết định quan trọng về kiến trúc. Engineering team sẽ lo phần code và hoàn thiện sản phẩm, nhưng Software Architect cũng luôn phải theo sát tiến độ công việc, từ khi xây dựng, vận hành cho đến khi duy trì và mở rộng hệ thống.
7. Hướng Management: Project Manager
- Định nghĩa: Đúng như cái tên Project Manager (PM — quản lý dự án), giờ đây bạn sẽ trở thành người chịu trách nhiệm tổ chức, giám sát và đảm bảo các project được hoàn thành đúng với yêu cầu và tiến độ được giao.
- Yêu cầu: Để trở thành một PM không nhất thiết yêu cầu bạn phải trải qua giai đoạn Senior Software Engineer hay Technical Lead. Tuy nhiên, bạn cần có một nền tảng đủ mạnh về Programming để có thể hiểu được bản chất và các bước đi của một dự án kỹ thuật, cũng như các phương pháp và quy trình để thực hiện chúng (Scrum, Agile, Waterfall…). Các kỹ năng mềm như quản lý dự án, nhân lực, cũng như kỹ năng giao tiếp, thuyết trình cũng là những đầu mục must-have nếu bạn muốn trở thành PM.
- Công việc: PM sẽ phải làm việc với tất cả các team, từ Software Architect để làm rõ quy trình, với Team Leader để phân bố nhân lực, với các Software Engineer để theo sát tiến độ, với Test/QA Team để đảm bảo chất lượng cho project, thậm chí cả với… HR Team để tuyển thêm người. Bạn sẽ không phải dùng nhiều đến kỹ năng coding hay dấn sâu vào các vấn đề kỹ thuật, nhưng sẽ vô cùng “mệt đầu” khi chạy theo một (hoặc vài) dự án từ đầu đến cuối đấy!
Ngoài những nhánh chính kể trên, chúng ta còn rất nhiều nhánh nhỏ khác như: BA (Business Analyst), Data Scientist, BrSE (Bridge System Engineer), DevOps Engineer… Hãy cho chúng mình biết bạn muốn tìm hiểu thêm về vị trí nào, và chúng mình sẽ ra tiếp những bài viết khác cho series Career Path nhé!
Chọn ngành vốn dĩ đã là một việc tốn nhiều thời gian, công sức. Chọn được ngành rồi thì lại đến chọn nghề — không chỉ tốn nhiều nơ-ron mà còn ảnh hưởng trực tiếp đến sự nghiệp trước mắt. Vậy nên với series này, chúng mình mong có thể giúp bạn bớt đi phần nào những nỗi lo về nghề nghiệp. Hãy comment cho Got It biết bạn còn băn khoăn điều gì, chúng mình sẽ cố gắng giải đáp thật nhanh trong những bài viết tiếp theo!
Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It và đọc thêm về quy trình tuyển dụng tại đây.
Tìm hiểu thêm về Got It tại: