Việc làm phần mềm/2
Nhiều sinh viên tin rằng bằng việc có kĩ năng lập trình như Java, C, và C++ họ có thể thành công trong công nghiệp phần mềm. Kĩ năng lập trình là cần nhưng KHÔNG đủ. Để thành công, họ phải có khả năng làm việc trong tổ, đưa ra việc trình bày, trao đổi ít nhất là trong một ngoại ngữ, và biết cách làm việc với khách hàng để hiểu nhu cầu của họ. Ý tưởng về người lập trình ngồi trước máy tính cả ngày để lập trình là “quan niệm sai” lớn nhất về việc làm phần mềm. Mọi dự án phần mềm đều là nỗ lực tổ và phần lớn công việc phần mềm đều bao gồm trao đổi và tương tác với mọi người.
Với toàn cầu hoá, ngày nay hầu hết các công ti đều không xây dựng phần mềm ở một chỗ, hay một nước nữa. Đa số công việc phần mềm được phân phối toàn cầu dựa trên khái niệm về “xây dựng 24 giờ” hay “phát triển phần mềm toàn cầu” nơi công việc dự án được phân phối cho nhiều tổ, ở nhiều nước hay múi thời gian. Khi tổ này hoàn thành công việc của họ và về nhà thì tổ khác tiếp tục công việc đó cho nên phần mềm có thể được xây dựng “không ngừng”. Một khái niệm khác được gọi là “Khoán ngoài” nơi một phần của công việc dự án được gửi cho tổ ở nước có chi phí thấp hơn để làm giảm chi phí. Bởi vì việc phân phối này, để thành công người phần mềm phải nói chuyện với khách hàng, nói chuyện với nhau, nói chuyện với người hỗ trợ, nói chuyện với nhà cung cấp v.v. Đó là lí do tại sao kĩ năng ngôn ngữ tốt là bản chất trong công nghiệp phần mềm. Mâu thuẫn với khái niệm mà hầu hết người phần mềm là “hướng nội” và không thích nói chuyện với bất kì ai ngoài máy tính, thực tế người phần mềm nói nhiều hơn hầu hết các việc làm khác.
Bên cạnh các kĩ năng kĩ thuật và trao đổi, người phần mềm phải có kĩ năng tưởng tượng tốt với “bộ não canh tân” mạnh khi họ tạo ra “cái gì đó từ cái không”. Người phần mềm bắt đầu từ một ý tưởng, một khái niệm và dùng các công cụ và ngôn ngữ lập trình để tạo ra “phần mềm” chạy trên “phần cứng” để thực hiện “cái gì đó” cho người khác dùng. Loại công việc này rất đòi hỏi và đặc biệt có sức ép cao vì các dự án thường phải đáp ứng những yêu cầu nào đó trong một thời gian giới hạn. (Năm ngoái, tôi đã tới thăm một công ti trò chơi phần mềm và thấy hàng trăm người làm việc 80-giờ một tuần trong vài năm chỉ để tạo ra trò chơi “Halo 2”.)
Tuỳ theo các kĩ năng có đa dạng ứng dụng phần mềm như:
1) Phần mềm tính toán cá nhân: Ứng dụng phần mềm chạy trên máy tính cá nhân được dùng cho cá nhân và doanh nghiệp nhỏ như xử lí văn bản, trò chơi hay tài chính cá nhân.
2) Phần mềm hệ thống: Phần mềm được viết để phục vụ các chương trình khác như hệ điều hành, trình biên dịch, quản lí tệp.
3) Phần mềm doanh nghiệp: Phần mềm dùng để quản lí hệ thống tin được dùng bên trong công ti để quản lí hoạt động như kế toán, tính lương, và tài chính – Nhiều trong các ứng dụng này có thể là phần mềm bán sẵn (COTS) như Peoplesoft, SAP v.v.
4) Phần mềm nhúng: Phần mềm nằm thường trú trong bộ nhớ điều khiển các sản phẩm cho việc dùng tiêu thụ và công nghiệp như phần mềm trong lò vi sóng, điện thoại, tivi, robots trong chế tạo, máy bay, rada v.v.
5) Phần mềm khoa học: Phần mềm tính toán và được dùng cho mục đích khoa học như chế tạo tự động, thiết kế có máy tính hỗ trợ (CAD)
6) Phần mềm chuyên gia: Tính toán trí tuệ nhân tạo giải quyết các vấn đề phức tạp như qui trình đòi bảo hiểm, động cơ tìm kiếm internetv.v.
Khi công nghệ thay đổi thường xuyên, người công nhân phần mềm tốt phải tập trung vào việc giữ các kĩ năng kĩ thuật của họ mạnh, nhưng cũng đảm bảo họ theo kịp với thay đổi. Để thành công, người phần mềm phải liên tục học những điều mới, phương pháp mới, ngôn ngữ mới, công cụ mới, cũng như học nhiều hơn về kinh doanh nghiệp vụ của công ty. Bằng việc có các kĩ năng này, họ thành có giá trị hơn cho công ti hơn chỉ là viết mã về một gói Java hay vài trăm dòng mã C++. Người phần mềm tốt thường thăng tiến nghề nghiệp của họ lên các vị trí khác, như người lãnh đạo dự án, kiến trúc sư phần mềm, hay người quản lí dự án khi họ thu được kinh nghiệm trên đường. Bằng việc hiểu công nghệ, học những điều mới nhanh chóng, thường xuyên cải tiến họ có thể áp dụng cả qui trình tư duy logic và sáng tạo để giải quyết các vấn đề doanh nghiệp. Người phần mềm tốt có thể làm bất kì cái gì họ chọn, dù đó là đi vào quản lí hay mở công ti riêng của 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