Nghề lập trình viên là một hành trình đầy thách thức và khó khăn, không chỉ để kiếm được công việc lập trình viên như mong muốn mà còn để phát triển đúng hướng. Nhiều lập trình viên chưa sẵn sàng để đối mặt với những khó khăn này. Bài viết này sẽ mang đến những thông tin cần thiết để bạn chuẩn bị và định hướng cho sự nghiệp của mình.
Khám phá các cấp độ phát triển trong sự nghiệp lập trình viên
Trong một bài viết từ TechCrunch về "Bí mật đen tối của Thung lũng Silicon: Sự Phân biệt tuổi tác", được dẫn chứng từ một nghiên cứu, cho thấy thời gian làm việc hiệu quả của một lập trình viên có giới hạn. Với những lập trình viên trẻ, họ có thể nhanh chóng tiếp thu công nghệ mới, làm việc không biết mệt mỏi và lương thì thấp hơn nhiều so với những lập trình viên già tuổi. Điều này đặt ra nhiều câu hỏi:
- Tương lai của một lập trình viên sẽ như thế nào?
- Con đường sự nghiệp của một lập trình viên sẽ như thế nào?
- Lập trình viên có thể lựa chọn phát triển như thế nào và đạt được điều gì với lựa chọn đó?
Hầu như ai cũng biết rằng một lập trình viên có thể trở thành người quản lý hoặc nhà lãnh đạo. Nhưng không phải lập trình viên nào cũng hiểu được tính chất công việc của một người quản lý. Mọi công việc đều cần có người quản lý, nhưng thế nào là một người quản lý đúng nghĩa? Họ cần có những phẩm chất gì? Những người quản lý cấp cao có gì khác biệt so với người quản lý cấp trung?
Bài viết này sẽ chia sẻ về các cấp độ phát triển trong sự nghiệp của một lập trình viên, bắt đầu từ vai trò kỹ thuật viên lập trình sơ cấp cho đến vai trò Giám đốc công nghệ (CTO: Chief Technology Officer).
Lập trình viên sơ cấp (Junior Developer)
- 0-3 năm kinh nghiệm (sau khi tốt nghiệp đại học).
- Có thể viết các script đơn giản.
- Hiểu biết sơ bộ về toàn bộ vòng đời của ứng dụng.
- Hiểu sơ bộ về cơ sở dữ liệu và dịch vụ ứng dụng (queues, caching…).
- Không nắm hết được mọi ngóc ngách của các ứng dụng phức tạp.
Khi mới bắt đầu công việc lập trình, bạn có thể trải qua những cảm xúc như nản lòng, bực bội, hoặc tự ti. Đôi khi bạn cảm thấy băn khoăn vì sao mình chưa được thăng cấp lên Senior Developer trong khi làm những công việc tương tự. Điều này là do thiếu kinh nghiệm của lập trình viên sơ cấp. Dù có thông minh và lanh lợi, họ còn đang học hỏi và chưa hiểu sâu về các kiến thức và kỹ năng của một lập trình viên kinh nghiệm.
Lập trình viên kinh nghiệm (Senior Developer)
- 4-10 năm kinh nghiệm.
- Có thể viết các ứng dụng phức tạp.
- Hiểu biết sâu sắc về toàn bộ vòng đời của ứng dụng.
- Hiểu biết sâu sắc về cơ sở dữ liệu và dịch vụ ứng dụng (queues, caching, …).
- Có thể làm việc thông thạo trên các phần khác nhau của ứng dụng.
Một lập trình viên kinh nghiệm là người giỏi trong việc xây dựng toàn bộ ứng dụng quy mô. Trong thực tế, nếu bạn chỉ thích viết code mà không muốn làm quản lý, bạn có thể trở thành một senior developer trong suốt sự nghiệp lập trình viên. Vị trí này có thể cung cấp cho bạn cơ hội để tiến lên vị trí CTO của một công ty khởi nghiệp. Tuy việc trở thành CTO không chỉ liên quan đến việc viết code, mà còn đòi hỏi nhiều kỹ năng quản lý con người.
Lead Developer hoặc Architect
- 7-10+năm kinh nghiệm.
- Có các kỹ năng cơ bản giống như một lập trình viên kinh nghiệm.
- Lead Developer: là vai trò chuyển tiếp vào một chức vụ quản lý cấp trung.
- Architect: là một vai trò kỹ thuật thuần túy.
Nếu sau hơn 7 năm lập trình, việc trở thành quản lý không phù hợp với bạn, trở thành một architect là vị trí cao nhất trên nấc thang sự nghiệp của bạn. Architect đôi khi viết code, nhưng công việc chính của họ là thiết kế các hệ thống phức tạp. Công việc của một architect là sử dụng kiến thức kỹ thuật của mình và tạo cấu trúc cho một dự án phần mềm thành công.
Quản lý cấp trung (Mid-level Manager)
- Chức danh này thường bao gồm các từ như Manager, Director hoặc VP.
- Là sếp của các lập trình viên và có quyền thuê hay sa thải.
- Báo cáo công việc với một Senior Leader.
Quản lý là một bước tiếp theo trong sự nghiệp của một lập trình viên. Quản lý có những trọng điểm khác nhau. Nếu bạn thích giám sát tiến độ và chú trọng chi tiết, trở thành một nhà quản lý dự án là lựa chọn phù hợp. Nếu bạn chú trọng đến tính năng và cải tiến sản phẩm, trở thành nhà quản lý sản phẩm là lựa chọn thích hợp.
Quản lý cấp cao (Senior Leader)
- VP, CTO hoặc CEO.
- Là sếp của các quản lý cấp trung và tất nhiên, họ có quyền thuê hay sa thải những người dưới quyền.
- Báo cáo công việc với một Senior Leader khác hoặc với Ban giám đốc.
Sự khác biệt rõ ràng giữa một quản lý cấp trung và một lãnh đạo cấp cao đó là senior leader phụ trách các mid-level manager. Công việc của một senior leader là đưa ra quyết định cấp cao và truyền cảm hứng, giúp đội ngũ tin vào sứ mệnh của công ty.
Sự nghiệp của một lập trình viên không chỉ đơn giản là việc viết code. Nó là một hành trình phát triển kỹ năng và kiến thức cùng với sự trưởng thành cá nhân. Thông qua các giai đoạn phát triển trong sự nghiệp, bạn có thể trở thành một người quản lý hoặc lãnh đạo. Hãy chọn con đường phù hợp và lường trước được kết quả.