Ai làm ngành nghề nào cũng muốn mình thăng tiến trong sự nghiệp. Vậy đối với một lập trình viên thì sao? Hãy cùng tìm hiểu nhé!
- Fresher
Fresher là để chỉ những sinh viên học ngành công nghệ thông tin mới ra trường, những người mới bắt đầu bước chân vào công việc của lập trình viên. Fresher là những người đã trang bị đầy đủ kiến thức căn bản cần có, kiến thức về các logic, cấu trúc phần mềm, cơ sở dữ liệu… Và cần một môi trường để thực hiện, triển khai, học hỏi và phát triển lên các kỹ năng chính và kỹ năng mềm.
- Junior Developer
- 0 – 2 năm kinh nghiệm. Thường là người trải qua giai đoạn intern và fresher, đã có kinh nghiệm trong việc lập trình ứng dụng trên thực tế.
- Hiểu biết sơ bộ về toàn bộ một vòng đời ứng dụng, sử dụng ngôn ngữ lập trình hay framework.
- Hiểu biết về cơ sở dữ liệu, lưu trữ và xuất dữ liệu. Lúc này có thể viết các chức năng cho ứng dụng, tuy nhiên code sẽ có rác nhiều do chưa có kinh nghiệm tối ưu dẫn để việc chồng chéo trong việc truy xuất dữ liệu. Lúc này đôi khi code dở sẽ dẫn đến tốn resource server rất nhiều.
Khi bạn bắt đầu bước chân vào sự nghiệp lập trình, nó chắc chắn đầy khó khăn và dễ khiến bạn nản lòng. Có lúc bạn cảm thấy độ hiểu biết kiến thức của mình chưa đủ để đáp ứng cho công việc, không chắc chắn về việc làm thế nào mà người ta có thể viết ra những ứng dụng lớn và phức tạp đến như vậy. Và đôi khi, bạn lại tự hỏi tại sao mình vẫn chưa lên được cấp độ Senior. Bạn nhìn vào các lập trình viên senior khác và nghĩ rằng về cơ bản thì bạn cũng đang làm công việc giống như họ.
Điểm yếu của junior đương nhiên chính là kinh nghiệm, ngay cả nhưng bạn thông minh và học hỏi nhanh cũng chưa được tiếp xúc đến các chức năng hay code cũng như vấn đề hóc búa. Cho nên để giải quyết các vấn đề trên bạn cần tiếp tục kiên trì học hỏi, tự xây dựng cho mình một sản phẩm tương tự để có thể giải quyết các vấn đề cơ bản một cách gọn gàng, khi ấy leader của bạn sẽ thấy bạn đủ vững để truyền kinh nghiệm và giao cho bạn cách giải quyết vấn đề khó hơn.
- Senior developer
- 3 – 8+ năm kinh nghiệm
- Có thể xử lý các vấn đề phức tạp, viết ứng dụng lớn
- Có khả năng thiết kế các cấu trúc cơ sở dữ liệu lớn, các tính năng phức tạp của ứng dụng
- Hiểu biết sâu sắc về cơ sở dữ liệu và các dịch vụ ứng dụng (queues, caching, v.v…)
Lập trình viên ở level senior là những người thực sự quan trọng trong việc xây dựng toàn bộ các ứng dụng ở quy mô lớn. Lên đến level này, bạn sẽ đứng trước hai hướng đi của sự nghiệp. Một là khi bạn hiểu công nghệ đủ để trở thành một lập trình viên senior, thì bạn có thể đã có những kinh nghiệm kỹ thuật đủ sâu để trở thành một technical leader hoặc CTO (Giám đốc công nghệ) của một startup, tuy nhiên lúc này bạn phải học hỏi thêm về quản lý con người, quản lý một quy trình phát triển phần mềm…
Ngược lại bạn sẽ tiếp tục đào sâu kiến thức kỹ thuật, đam mê giải quyết những vấn đề về hệ thống lớn, chịu tải cao, nói chung là bạn không thích dây dưa vào việc quản lý con người.
4. Tech lead
- 5 – 10+ năm kinh nghiệm lập trình
- Có các kỹ năng của một senior
- Hiểu đủ sâu và rộng về các công nghệ, chọn cho team dev một hay nhiều tech stack để giải quyết vấn đề trong hệ thống lớn.
Đến level này, bạn sẽ có rất nhiều quyết định quan trọng để mọi lập trình viên trong team đi theo, nào là chọn ngôn ngữ gì, chọn tools gì, thiết kế hệ thống ra sao, theo chuẩn quy trình làm phần mềm nào.
Lúc này có đôi khi bạn sẽ code những định nghĩa, những quy luật đặt biến chẳng hạn, tuy nhiên công việc chính thường là thiết kế hệ thống va đảm bảo hệ thống có thể scale lớn, có thể kết hợp nhiều tech stack để vận hành đáp ứng nhu cầu.
5. Quản lý cấp trung
- Chức danh này thường là Product Manager hoặc Project Manager
- Là người quyết định rất lớn đến những chức năng cần phải có của một sản phẩm thông qua nghiên cứu, khảo sát và đo đạc.
Sau hàng năm trời còng lưng ra code bạn đã cảm thấy vị trí của mình trở nên nhàm chán và công việc quá nặng nề. Trong khi bạn bị việc rượt đuổi thì PM của bạn suốt ngày đi vòng quanh hối thúc. Bạn cảm thấy stress và bất công, bạn nghĩ nếu PM là “người đi hối” thì bạn cũng làm được. “Phải trở thành PM ngày bây giờ mới được!” – Bạn quyết tâm như vậy.
Và đúng là như vậy, khi đã trở thành một PM bạn sẽ không cần phải code nữa. Nhưng bù lại cho việc đó, bạn có “cả tá” việc phải thực hiện, và trách nhiệm của bạn cũng “cao ngất trời”.
- Quản lý cấp cao
- CTO hoặc CEO
Đến lúc này bạn sẽ trở thành một người truyền cảm hứng, dẫn dắt các leader và team đi theo một vision nào đó. Bạn ở nấc thang sự nghiệp đỉnh cao này, thì bạn càng ít tiếp xúc với công việc lập trình. Điều quan trọng nhất lúc này là về con người.
Các nhà quản lý cấp trung (mid-level manager) vẫn có thể có thời gian để vọc vạch với công nghệ, nhưng các quản lý cấp cao phải dành tất cả thời gian của họ để tập trung vào vấn đề con người: truyền cảm hứng, tạo động lực, lãnh đạo, và ra chiến lược.
Bài viết mang tính tham khảo bởi mỗi người đều có một lộ trình riêng và không phải ai cũng phù hợp. Khi theo nghề lập trình, chỉ cần không bỏ cuộc thì bạn đã thành công.