Đường sự nghiệp của một lập trình viên bạn nên biết
Có một sự thật mà nhiều lập trình viên phải đối mặt đó là sự nghiệp lập trình của họ sẽ tiến đến một cấp cao nhất và sau đó là sẽ bắt đầu đi lùi, chán code (Ngoại trừ những người thật sự đam mê code). Hôm nay, TopDev sẽ cung cấp cho bạn một số thông tin định hướng nghề nghiệp quan ...
Có một sự thật mà nhiều lập trình viên phải đối mặt đó là sự nghiệp lập trình của họ sẽ tiến đến một cấp cao nhất và sau đó là sẽ bắt đầu đi lùi, chán code (Ngoại trừ những người thật sự đam mê code). Hôm nay, TopDev sẽ cung cấp cho bạn một số thông tin định hướng nghề nghiệp quan trọng mà bạn cần phải biết, từ đó bạn có thể biết trước tương lai mình cần gì cho bản thân.
Trang blog Topdev đã cho đăng bài viết “Thất nghiệp tuổi 35: Khủng hoảng tuổi 30 thực ra được báo trước bởi những cơn buồn ngủ tuổi 25?“, và nhiều lập trình viên kỳ cựu cho rằng khoảng thời gian sự nghiệp làm việc hiệu quả của một lập trình viên là có giới hạn. Nhưng câu hỏi đặt ra là liệu điều đó là có thật không? và nó có nghiêm trọng không?
- Tương lai của một lập trình viên sẽ ra sao khi ngày càng lớn tuổi?
- Roadmap sự nghiệp của một lập trình viên trông sẽ như thế nào?
- Những lựa chọn trong sự nghiệp và những kỳ vọng về các lựa chọn đó là gì?
Mọi người đều cho rằng các lập trình viên về sau có thể trở thành người quản lý hoặc lãnh đạo. Nhưng nhiều lập trình viên không hiểu được kỳ vọng và yêu cầu công việc của một nhà quản lý.
Chắc chắn, tất cả chúng ta đều có những manager, việc trở thành một manager có ý nghĩa gì? Có những kỳ vọng gì? Và sự khác biệt giữa một manager cấp trung và leader cấp cao là gì?
Trong bài viết này, chúng tôi sẽ chỉ cho bạn một con đường sự nghiệp từ sự khởi đầu trong lĩnh vực kỹ thuật như một Junior Developer cho đến level cao nhất là trở thành một CTO (Giám đốc công nghệ).
Lưu ý: Sự nghiệp mỗi người mỗi khác, sự hướng dẫn này không thể phù hợp với tất cả mọi người. Nhiều bạn sẽ thích hợp với vai trò quản lý, ngược lại cũng rất nhiều bạn đam mê code, coi code là phải giải trí mỗi khi gặp bế tắc chẳng hạn. Có thể lúc bạn 22 tuổi bạn chỉ mong là được ngồi code và không thích việc quản lý, nhưng biết đâu lên 30 bạn lại bắt đầu chán code. Vì vậy hiểu và chọn lựa đúng sẽ tránh cho chúng ta hụt hẫng khi gặp phải vài trục trặc trên con đường sự nghiệp.
1.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. Bạn có thể xem thêm Fresher là gì tại đây.
2.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.
3.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 đế 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”. Xem thêm PM là gì và làm sao để trở thành Product Manager thành công tại đây.
6.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.
Kết luận
TopDev hy vọng bài viết này đã cho bạn một số hướng dẫn và những hiểu biết để bạn có thể chuẩn bị cho tương lai phía trước. Như đã nói từ đầu, không phải ai cũng phù hợp, điều quan trọng là bạn thích làm gì và đừng bỏ cuộc. Luôn có những lập trình viên lớn tuổi nhưng vẫn code miệt mài vì đam mê, luôn có những tài năng trẻ lên làm lãnh đạo, quan trọng hơn hết là thấy yêu công việc mình đang làm.