Kinh tế thế giới đang khủng hoảng, CNTT cũng như những ngành khác có những khó khăn nhất định. Môi trường làm việc cạnh tranh hơn, yêu cầu của những nhà tuyển dụng đối với kỹ năng của bạn cũng cao hơn.
Nếu bạn là một người lập trình, mong muốn đạt được thành công cao trong nghề nghiệp, cũng như muốn bổ sung vào bản lý lịch của mình những kỹ năng ấn tượng, cần thiết, những lời khuyên sau đây sẽ giúp bạn cải thiện khả năng để làm việc với những dự án trong tương lai năm năm tới. Bài được viết được tác giả hướng tới đội ngũ kỹ sư IT ở Mỹ, nhưng người dịch nhận thấy nó cũng phù hợp ở môi trường CNTT của Việt Nam.
1. Một trong ba kỹ năng lớn (.NET, Java, PHP)
Đây là ba ngôn ngữ đang thịnh hành nhất trong thế giới lập trình. Có thể nói các dự án lớn phần lớn thực hiện bởi một trong ba ngôn ngữ này. Bạn không chỉ cần hiểu được những kỹ năng lập trình cơ bản, then chốt, mà vì một dự án có thể tổng hợp nhiều chức năng khác nhau, bởi vậy bạn phải hiểu sâu cách tổ chức các nền tảng (frameworks) và thư viện lập trình (libraries) của những hệ thống này một cách cặn kẽ.
2. Các ứng dụng Internet tích hợp – Rich Internet Applications (RIAs)
Dù yêu hay ghét nó, trong một vài năm gần đây, Flash trở nên quan trọng trong các ứng dụng hơn là những hình ảnh hoạt họa thông thường. Flash cũng có thêm các chức năng mở rộng cho form hay Flex và AIRs. Các chương trình tạo Flash như JavaFx và Silverlight, cải thiện nhiều tính năng và hiệu suất. HTML 5 đang tích hợp những các tính năng RIAs, bao gồm kết nối cơ sở dữ liệu, đặt các tiêu chuẩn W3C vào trong AJAX. Trong tương lai gần, việc tham dự một dự án RIAs là một sự khác biệt trong đơn xin việc của bạn.
3. Phát triển WEB
Phát triển web không bao giờ lỗi thời. Nhiều công ty vẫn cần rất nhiều nhà phát triển hiểu biết các nền tảng web cơ bản cũng như nâng cao, bởi vậy những hiểu biết về JavaScript, CSS, và HTML vẫn còn rất cần trong vòng năm năm tới.
4. Dịch vụ web (web services)
REST hay SOAP? JSON hay XML? Tùy thuộc những đặc điểm cụ thể của dự án để đưa ra những câu trả lời sử dụng công nghệ phát triển dịch vụ web nào. Để phát triển một dịch vụ web thì không thể không biết đến những công nghệ này.
5. Kỹ năng mềm (soft skills)
Có một thực tế là người lập trình không chỉ hoàn thiện kỹ năng về kỹ thuật của mình mà còn cần có những kỹ năng bên ngoài IT. Đó là kỹ năng về giao tiếp, hội nghị, hội thảo, gặp gỡ, xử lý các phản hồi từ khách hàng. Ví dụ, một giám đốc tài chính muốn thay đổi một luật về kế toán thì không thể làm việc với nhân viên IT để cập nhật hệ thống. Một người quản lý điều hành không thể thay đổi một tiến trình xử lý cuộc gọi nếu như không có IT. Khách hàng cũng thường xuyên tiếp xúc với đội ngũ phát triển để chắc chắn rằng những yêu cầu của họ được đáp ứng. Người lập trình sau khi ý thức trau dồi những kỹ năng mềm này sẽ có giá trị hơn trong người tuyển dụng, và có thể có một vị trí cao hơn trong nghề nghiệp.
6. Một ngôn ngữ lập trình động/chức năng (dynamic/functional programming language)
Đó là các ngôn ngữ như Ruby, Python, F#, và Groovy. Ví dụ trong hệ thống LINQ của .NET là một dạng của kỹ thuật lập trình chức năng. Học một trong các ngôn ngữ này không chỉ cải thiện đơn xin việc của bạn mà còn mở ra nhiều chân trời mới. Rất nhiều người lập trình đỉnh cao mà tác giả gặp đều khuyên học ít nhất một ngôn ngữ lập trình chức năng để học cách nghĩ mới.
7. Phương pháp luận Agile – Agile methodologies
Ngày nay, phương pháp luận trong công nghệ phát triển phần mềm Agile đã thật sự trở nên phổ biến. Và một nhà phát triển lập trình sẽ làm việc trong các dự án lớn nên cần hiểu biết rộng phương pháp này để có thể dễ dàng tham dự việc phát triển các dự án lớn.
8. Hiểu biết lĩnh vực
Với phương thức Agile, đội ngũ phát triển cũng sẽ có những góc nhìn như các đối tác trong việc trình bày hiểu biết một dự án. Điều này có ý nghĩa người lập trình cần phải có những hiểu biết lĩnh vực để có thể đóng góp những ý kiến có giá trị và âm thầm. Với Agile, một người lập trình có thể nói, chức năng này, chức năng kia nên được đưa vào bởi vì nó sẽ cho chúng ta nhiều lợi ích sau này. Để làm được điều đó họ phải có một sự hiểu biết sâu rộng trong các lĩnh vực chính liên quan đến dự án.
9. Công cụ “dọn vệ sinh” tích hợp
Một vài năm trước đây, nhiều công ty không cần các hệ thống theo dõi lỗi, cập nhật phiên bản và các công cụ tương tự. Đó chỉ là một lựa chọn của người lập trình với các lựa chọn trong môi trường phát triển tích hợp (IDE) của họ. Hiện nay có nhiều hệ thống tương tự được ra đời như Microsoft Visual Studio Team System, chất lượng cao, mã nguồn mở, tổ chức các công cụ thường dùng nói trên thành một bộ ứng dụng chung. Người lập trình cần phải biết nhiều hơn những gì họ chỉ kiểm tra code hay sử dụng hệ thống Virtual Machine để xây dựng môi trường testing – kiểm tra phần mềm.
10. Lập trình di động
Cuối thập niên 1990, phát triển web nổi lên như một dòng chủ đạo và trước đó là những ứng dụng để bàn. Trong năm 2008, xu hướng phát triển lập trình di động phổ biến là trở nên quan trọng. Có hai cách tiếp cận, là các ứng dụng web được thiết kế lập trình trên điện thoại đi động, là kiểu lập trình RIA, và các ứng dụng chạy trực tiếp trên điện thoại đi động. Bởi vậy hoàn thiện kỹ năng lập trình di dộng cũng mang đến cho bạn nhiều cơ hội nghề nghiệp trong tương lai.