Việc làm phần mềm

Tôi nhận được một email mà người gửi viết: “Tôi là một người học về khoa học máy tính đã tốt nghiệp năm 2006 nhưng từ đó tôi đã làm việc cho công ti đầu tư và thương mại chứng khoán. Tôi thất nghiệp trong sáu tháng qua cho nên tôi tự hỏi liệu tôi có thể kiếm được việc làm trong công nghiệp phần mềm không? Vì thầy đã nhắc tới việc thiếu hụt người phần mềm trên toàn cầu, nếu tôi muốn làm việc ở Mĩ thì làm sao tôi có thể kiếm việc làm ở đó? Tôi cần có loại kĩ năng nào?”

Câu trả lời của tôi: “Mặc dù bạn có bằng cấp máy tính nhưng mọi sự đã thay đổi kể từ khi bạn tốt nghiệp và thị trường việc làm cũng có nhu cầu khác do tốc độ công nghệ thay đổi. Nếu bạn muốn làm việc trong ngành công nghiệp phần mềm, bạn có thể phải kiểm điểm lại kĩ năng tính toán của mình để xác định liệu bạn có cần quay lại trường để đào tạo lại không. Có thể là bạn quên mất bạn đã học gì trong trường vì bạn chưa bao giờ làm việc trong phần mềm. Bên cạnh kĩ năng lập trình như C, C++, C# và Java, bạn có thể cần kiểm điểm lại tri thức của mình về vòng đời phát triển phần mềm. Ngày nay, công nghiệp cũng yêu cầu những phương pháp luận và kĩ năng nào đó liên kết với phát triển web. Điều quan trọng là bạn kiểm tra với các công ti phần mềm nơi bạn sống để xác định loại kĩ năng nào họ cần, điều thực tế là bao giờ cũng bắt đầu tại nơi bạn sống trước khi nhìn đi đâu đó khác. Nếu bạn muốn làm việc cho công ti nước ngoài hay muốn làm việc ở Mĩ thì bạn cần có kĩ năng trao đổi rất tốt, đặc biệt là trong tiếng Anh. Dựa trên điều tôi biết, phần lớn các công ti nước ngoài chỉ chọn các ứng viên từ một số đại học mà họ đã biết tới và có mối quan hệ tốt. Tuỳ theo danh tiếng của trường mà bạn tốt nghiệp, bạn có thể được xem như ứng cử viên cho vị trí đó. Hiện thời có vài xu hướng đang nổi lên mà bạn có thể cần biết:

  1. Web như nền phát triển: Trình duyệt web cung cấp môi trường tốt khi chạy và truy nhập vào nhiều ứng dụng. Ngày nay nhiều công ti phần mềm đang chọn web làm nền chọn lựa của họ cho phát triển phần mềm. Phát triển web là rất phổ biến và có nhiều công cụ phát triển tốt, và công cụ thiết kế cho web mà bạn cần biết. Bạn cũng cần học về thư viện JavaScript vì nó cho phép người phát triển có nhiều việc được thực hiện với JavaScript hơn trước đây. Điều quan trọng với bạn là có tri thức về ứng dụng internet, như các ứng dụng viết cho Silverlight, Flash điều cho phép người phát triển bẻ tự do các giới hạn của HTML và lấy ưu thế của miền tài nguyên và tính năng trong khi vẫn đảm bảo tương hợp qua các nền.
  2. Tính toán mây: Bạn có thể học thêm về phần mềm như dịch vụ Software as a Service (SaaS) và tính toán mây – Cloud Computing vì đây là khu vực bùng nổ cho phép các công ti thúc bẩy tài nguyên tính toán bằng việc đi thuê thay vì mua. Nó cũng cho phép công ti tăng qui mô để giải quyết vấn đề tải việc trên đỉnh và tránh tổng phí quản lí kết cấu nền phần cứng. Tính toán mây cũng giúp tính toán với chi phí hợp lí và dự đoán được. Bạn có thể cần hiểu thêm về Windows Server, Windows Azure, SQL Azure, MySQL, và các dịch vụ như Windows Live, Office, và Xbox Live bởi vì có một số nhu cầu trong khu vực này.
  3. Phát triển mau lẹ Agile: Là người phát triển, bạn phải biết phương pháp này, kể cả Scrum, Lập trình cực đoan, phát triển được dẫn lái bằng kiểm thử, và tích hợp liên tục. Những phương pháp phát triển này thường được dùng bằng cách tổ hợp với các phương pháp phát triển phần mềm khác. Nhiều công ti ở Mĩ đang dùng Agile ngày nay cho nên nếu bạn muốn làm việc cho công ti Mĩ, bạn cần biết rõ Agile.
  4. Ứng dụng di động: Với việc tăng tính sẵn có của nhiều thiết bị di động kết nối với internet (như, điện thoại Smart phone, I-phone, Android, và Window 7 phone), phần lớn người dùng muốn truy nhập và tương tác với dữ liệu theo những cách thích hợp với năng lực của thiết bị di động của họ. Tôi trông đợi loại tri thức và kĩ năng này sẽ sớm được cần tới trên mọi thiết bị di động cho nhiều công ti viễn thông nơi người dùng có thể truy nhập căn cước và dữ liệu trực tuyến một cách dễ dàng và an ninh trên mọi thiết bị di động. Ngày nay, Microsoft cũng cung cấp truy nhập vào dữ liệu của người dùng thông qua Windows Live và Xbox LIVE. Với sự sinh sôi nảy nở của nhiều thiết bị thế sẽ có nhu cầu lớn về những người có kĩ năng này. Windows 7 có nhiều giao diện và ứng dụng hỗ trợ cho ứng dụng có khả năng chạm trong nền di động. Silverlight và WPF cũng có tương tác dựa trên camera và đa chạm, như MFC có.
  5. Làm việc tổ và kĩ năng mềm: Bên cạnh kĩ năng kĩ thuật, bạn cần các kĩ năng khác như kĩ năng trao đổi, kĩ năng làm việc tổ. Ngày nay việc phát triển phân bố tạo khả năng cho các thành viên tổ làm việc chặt chẽ mặc cho phân tách địa lí với nhau. Với toàn cầu hoá, nhiều công ti đang thuê người ở nhiều chỗ khác nhau đưa các tài năng toàn thế giới làm việc hướng tới dự án hay mục đích chung. Khả năng của thành viên tổ làm việc qua múi thời gian và biên giới đang trở thành quan trọng cho nên bạn có thể cần phải học nhiều nhất có thể được về làm việc theo tổ. Có nhiều hoạt động tổ như kiểm điểm mã phân bố, lập trình theo cặp từ xa, cộng tác người phát triển / người kiểm thử và chia sẻ tài nguyên.
  6. Ý nghĩ cuối cùng của tôi: Nếu bạn nghiêm chỉnh về công nghiệp phần mềm, xin hãy học nhiều nhất có thể được, đọc nhiều nhất có thể được về bất kì chủ đề nào bạn quan tâm. Tôi tin công nghiệp phần mềm sẽ tiếp tục trưởng thành và bành trướng ra mọi nơi và với sự thiếu hụt kĩ năng hiện thời, nhiều công ti sẽ phải vươn tới chỗ có tài năng. Cho nên hãy được chuẩn bị và sẵn sàng nhận thách thức mới bất kì khi nào nó tới.

Chúc bạn may mắn trong tìm việc làm.

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

Có thể bạn muốn xem