Nghề phần mềm
Nhiều sinh viên đã hỏi tôi họ có thể làm gì sau khi làm việc như người phát triển phần mềm trong nhiều năm. Có nhiều con đường nghề nghiệp mà người phát triển có kinh nghiệm có thể lựa chọn. Sau đây là một số con đường:
1) Kĩ sư yêu cầu hay Người phân tích nghiệp vụ: Người phát triển có vài năm kinh nghiệm kĩ thuật, và có chiều sâu nào đó về tri thức kĩ thuật có thể làm việc như kĩ sư yêu cầu để nhận diện nhu cầu nghiệp vụ của người dùng. Kĩ sư yêu cầu làm việc với khách hàng, người dùng, người quản lí dự án, và kiến trúc sư hệ thống để đảm bảo rằng các yêu cầu được viết ra rõ ràng và được hiểu bởi cả hai phía. Việc làm này là một nghề tăng trưởng nhanh, được cần tới trong công nghiệp phần mềm bởi vì nó có thể tạo ra khác biệt giữa thành công và thất bại. Bên cạnh các kĩ năng kĩ thuật, nó cũng yêu cầu kĩ năng trao đổi tốt như kĩ năng trình bày, kĩ năng viết, kĩ năng thương lượng và kĩ năng quan hệ khách hàng.
2) Lãnh đạo kĩ thuật hay kiến trúc sư: Những người phát triển có kinh nghiệm, có những kĩ năng kĩ thuật chuyên sâu nhưng không muốn làm việc với khách hàng có thể làm việc như kiến trúc sư hệ thống. Vị trí này có tính kĩ thuật cao; nó thường bao gồm việc ra quyết định then chốt về cách hệ thống mới sẽ khớp vào trong kiến trúc tổng thể của tổ chức. Kiến trúc sư phải hiểu các yêu cầu của khách hàng, ra quyết định về cách phân rã những yêu cầu này thành các cấu phần khác nhau mà sẽ được cần cho hệ thống mới, cách khớp các cấu phần này vào trong kết cấu nền hiện có, và theo trật tự nào để thực hiện từng cấu phần. Kiến trúc sư phải nhận diện các vấn đề và rủi ro cũng như yếu tố chi phí và trình bày chúng cho cấp quản lí để được chấp thuận.
3) Người quản lí dự án: Những người phát triển có kinh nghiệm có kĩ năng kĩ thuật qua kinh nghiệm làm việc có thể tiến lên vị trí người quản lí dự án. Người quản lí dự án là người lập kế hoạch, tổ chức và quản lí các hệ thống máy tính mới hay nghĩ ra cách áp dụng các hệ thống hiện có vào các vận hành phụ. Người làm việc này thường phải chịu trách nhiệm thuê nhân viên, lập lịch biểu, và giữ dấu vết của tiến độ qua mọi pha phát triển. Người này cũng chịu trách nhiệm phân công công việc, giải quyết các vấn đề hàng ngày có ảnh hưởng tới công việc đó, và đảm bảo từng người lập trình đều làm việc theo phân công cho riêng mình. Người quản lí dự án có thể tiến hành tốt nhất chức năng này nếu người đó hiểu đầy đủ công việc mà mình quản lí. Người quản lí dự án phải vừa là "người của mọi người" cũng như "người của kĩ thuật" để thành công bởi vì người đó phải làm việc với cán bộ kĩ thuật và phi kĩ thuật ở mọi mức của tổ chức. Bên cạnh đó, người quản lí dự án phải quản lí tổ của mình để tạo ra sản phẩm mong muốn đúng thời gian.
4) Người quản lí: Việc làm tối thượng cho người quản lí dự án nhìn vào để đi lên là trở thành người quản lí. Có vài kiểu người quản lí, người quản lí cấp trung hội tụ vào công việc chiến thuật quản lí hàng ngày và người quản lí cấp cao như Giám đốc thông tin (CIO) hay Giám đốc điều hành (CEO), người quản lí toàn công ty. Vị trí này phù hợp nhất cho mọi người có kinh nghiệm với nhiều năm kinh nghiệm làm việc bởi vì các công ty cần những người hiểu nghiệp vụ và cách áp dụng công nghệ làm cho nó tốt hơn. Việc làm này yêu cầu đào tạo thêm, đặc biệt về nghiệp vụ, tài chính và quyền lãnh đạo bởi vì có khả năng tuân theo các chỉ đạo là quan trọng, nhưng có khả năng đưa ra đánh giá riêng của bạn cũng quan trọng tương đương.
Bên cạnh kĩ năng kĩ thuật, tôi tin rằng kĩ năng trao đổi là rất quan trọng cho mọi người phần mềm, dù bạn là người lập trình hay chủ tịch công ty. Mọi người phải học là một người trao đổi tốt. Tất nhiên kĩ năng trao đổi cần nhiều thời gian hơn để phát triển bởi vì nó yêu cầu cả kinh nghiệm và đào tạo để trở nên hiệu quả. Ngày nay, phần lớn các khách hàng không hiểu kĩ thuật để mô tả yêu cầu của họ cho người phát triển phần mềm cho nên điều quan trọng là người kĩ sư yêu cầu phần mềm hiểu nhu cầu của họ bằng việc thảo luận những điều đó với họ qua việc dùng “ngôn ngữ thông tục.” Mặt khác, nhiều người kĩ thuật không hiểu nghiệp vụ mà họ phải thực hiện trong dự án bởi vì nhiều người không thích nói với khách hàng cho nên người kiến trúc sư hệ thống hay người lãnh đạo kĩ thuật phải giải thích các yêu cầu này bằng việc dùng "ngôn ngữ kĩ thuật” mà họ hiểu rõ. Học cách trao đổi, và có kiên nhẫn để thu lấy tri thức là kĩ năng bản chất mà nhiều người làm phần mềm không có và nhiều trường không dạy. Trao đổi không phải là về nói mà còn là về nghe, hiểu và có khả năng giải thích mọi sự theo cách rõ ràng và chính xác.
Chìa khoá để thăng tiến trong nghề nghiệp của bạn trong bất kì công ty nào là để cấp quản lí biết bạn biết gì. Bạn không thể cứ ở chỗ người lập trình mãi được bởi vì bạn phải phát triển kĩ năng mới, học những điều mới và đi lên. Bạn phải học cách trả lời các câu hỏi mà cấp quản lí hỏi, giải quyết các vấn đề khi chúng xảy ra, chấp nhận trách nhiệm mới trong dự án mới, và không ngần ngại đảm đương vị trí lãnh đạo và không ngần ngại chia sẻ ý tưởng tốt hơn. Bằng dự ứng thay vì phản ứng, bạn có thể đi xa bởi vì đó là khác biệt giữa "chỉ là người lập trình khác" hay là người hàng đầu cho việc đề bạt.
Công việc phần mềm là rất thách thức nhưng cũng rất đáng thưởng, bên cạnh việc chúng là việc làm được trả lương rất cao – Phần lớn người làm phần mềm đều làm ra nhiều tiền hơn các lĩnh vực khác và đó là nghề tăng trưởng nhanh nhất trên toàn cầu. Nó cũng có nhiều cơ hội hơn để làm việc ở qui mô quốc tế, theo nhiều nghiên cứu, trên 40% người làm phần mềm sẽ du hành trên thế giới để làm việc ở hải ngoại trong mười năm tới vì nhu cầu này là rất cao trên toàn cầu. Tất nhiên, để làm điều đó bạn cũng cần có kĩ năng ngoại ngữ.
Để trả lời câu hỏi của bạn về cái gì cần làm sau vài năm làm việc như người lập trình, câu trả lời của tôi là đi ra khỏi việc lập trình vào các khu vực kĩ thuật cao cấp hay các vị trí có xu hướng doanh nghiệp như kiến trúc sư hệ thống hay người quản lí dự án. Tất nhiên điều đó yêu cầu thời gian và nỗ lực về phần bạn nhưng tôi tin bản lộ trình nghề nghiệp này có thể giúp bạn quyết định phải làm gì.
Trong cuộc đời chuyên môn của mình, xin đừng quên rằng là nhà chuyên nghiệp bạn phải biết cách cân bằng cuộc sống và công việc bởi vì cuộc sống không phải là làm việc và làm tiền mà bạn phải nhớ rằng “Thứ nhất bạn là người và nghề chuyên nghiệp phần mềm tới sau” cho nên cần tận hưởng cuộc sống của bạn như một người có trách nhiệm với bản thân mình, gia đình mình, xã hội mình và đất nước mình.
Tác phẩm, tác giả, nguồn
- Tác phẩm: Lời khuyên cho sinh viên
- Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
- Wiki hóa: https://kipkis.com