Nhu cầu lập trình viên Java tăng mạnh từ đầu năm 2013. Nguyên nhân do đâu?

Ngôn ngữ Java ra đời năm 1995 và trở nên cực thịnh vào 6/2001 (26,4%), sau đó giảm dần do gặp phải sự cạnh tranh khốc liệt từ C#, Visual Basic và PHP, suy giảm sâu nhất vào nhất vào tháng 10/2004 (14,8%) sau đó lại hồi phục trở lại trong 2005. Trong 2005, Java được TIOBE Index bình chọn là ngôn ngữ lập trình của năm vì có sự tăng trưởng tốt nhất.

Highest Rating (since 2001): 26.492% (1st position, June 2001)
Lowest Rating (since 2001): 14.804% (2nd position, October 2004)
Paradigms: Object-Oriented
Type system: Statically typed

Đó là thống kê trên toàn thế giới. Tại Việt nam, trong một thời gian dài từ 2001 đến 2011, Java là ngôn ngữ phổ biến, được dạy trong một số trường đại học, nhưng chưa bao giờ vượt qua được C#, PHP. Trong thời kỳ này, nền tảng Microsoft Windows thống trị trên Desktop (WindowsXP, Windows 7) và cả một phần không nhỏ máy chủ với Windows Server, SQL Server, SharePoint Server…Trong phát triển ứng dụng desktop, lập trình viên Java không có nhiều ưu đãi như lập trình viên C#,.NET khi mà Microsoft liên tục đưa ra những công nghệ mới, thân thiện, cải thiện tốc độ, trải nghiệm người dùng như: Windows Form, WPF, SilverLight…Java chạy trên máy ảo, do đó năng suất hiển thị đồ họa không thể bằng ngôn ngữ biên dịch ra mã máy như C++ hay như C# được tối ưu tối đa cho hệ điều hành Microsoft. Trên mặt trận web, PHP ngon bổ rẻ đánh bật Java ở phân khúc web site kinh phí thấp, shared hosting, dùng sẵn mã nguồn mở.

Question: Vậy chiến trường của các lập trình viên Java ở đâu ?
Answer: Gia công cho ứng dụng doanh nghiệp lớn, cần ổn định – bảo mật cao, ứng dụng không cần phải cài shared hosting để tiết kiệm chi phí như PHP mà cần tối ưu tốc độ và khả năng phục vụ.
Các ứng dụng tính cước di động, quản lý khách hàng, ngân hàng với số lượng giao dịch cực lớn tại Việt nam viết trên Java (FPT-IS, Hyperlogy….).

Học lập trình Java dễ kiếm việc làm
Ngôn ngữ Java luôn chiếm vị trí số 2 trong bảng xếp hạng TIOBE

Trong thời gian dài vừa qua, lập trình viên và sinh viên CNTT Việt nam không thực sự đầu tư nghiêm túc cho Java.
Sử dụng PHP, C#, một lập trình viên trẻ ít kinh nghiệm có thể kiếm sống bằng viết những ứng dụng phần mềm áp dụng cho quy mô nhỏ – trung bình. Các công ty start up, quy mô nhỏ sẽ chuộng PHP và mã nguồn mở hơn để giảm chi phí.
Còn với Java, đã làm thì phải làm nghiêm túc có thiết kế kiến trúc bài bản cho dự án dài hơi. Chính vì vậy nhiều học viên Aptect, NIIT được học Java trong trường, nhưng khi ra đi làm lại phải lập trình trên .NET và PHP.

Khi cơn sốt lập trình ứng dụng di động đến Việt nam (2012), các trung tâm dạy lập trình Android chỉ giới thiệu Java ở mức cú pháp căn bản, đủ dùng để viết ứng dụng di động chứ không thể chuyên sâu về Design Pattern, Server-side, web service. Phong trào học Java trở nên sôi động trở lại nhưng vẫn dùng ở mức độ căn bản.

Doanh nghiệp phần mềm Việt nam và nhu cầu gia công cần lập trình viên Java kiểu khác cơ !
Hãy phân tích các yêu cầu tuyển dụng lập trình viên Java của các công ty tại thời điểm này
1- Yêu cầu tuyển dụng Java của Hyperlogy, chuyên phát triển hệ thống tính cước, quản lý khách hàng viễn thông và Cloud. Lương trả tốt, 40 ứng viên, không chọn được một người.
Có kiến thức chuyên sâu Java với các nền tảng bắt buộc sau: Spring, Hibernate, Transaction Management, Struts, JSP, Servlet, SOAP, JDBC, SQL, JavaScript, HTML.
Đã có kinh nghiệm xây dựng ứng dụng Java chạy trên các Application Server (Như Oracle Bea, IBM WebSphere, Tomcat, Resin, JBoss,…).
Tối thiểu 2 năm kinh nghiệm phát triển phần mềm Java Server Side.

2- Yêu cầu tuyển dụng KMS Technology: đọc xong ngất luôn !
Good understanding on Service Oriented Architecture (SOA), JMS, Multi-threading, ORM
Experience using EJB 3.0, JBoss Messaging, Hibernate, jQuery
Experience working with JBoss Application Server, Oracle 10g
Experience with Flex, VoIP/SIP is a strong plus
Java team 2:
Experience using open-source frameworks in Java such as Spring, Struts, Apache Tiles, Hibernate, Lucene, Solr, Velocity
Experience working with Resin, Glassfish, Oracle 10g, MS SQL Server 2005
Java team 3:
· 6 – 15 years software development experience
· Java- Spring (or other DI framework)
· Eclipse & Subversion
· Linux (or other *nix variant)
· Technical documentation skills, e.g., UML

3- Cách đây 1 tháng, FSoft HCM và Hà nội cũng cần tuyển hơn 100 lập trình viên Java Senior yêu cầu tối thiểu 3 năm kinh nghiệm.

4- Liên doanh giữa Atlassian (Úc) và Pyramid Consulting cần tuyển 30 Senior Java Engineer Lương trả rất cao, nhưng quá ít người đủ điều kiện đăng tuyển.

Từ những mô tả tuyển dụng trên đây chúng ta thấy rõ ràng, nhu cầu lập trình viên Java có kinh nghiệm phát triển ứng dụng server, cơ sở dữ liệu, web service, cloud là rất lớn. Còn sinh viên CNTT ở ta mới chỉ học ngôn ngữ Java căn bản. Đó là sự khác biệt dẫn đến thừa sinh viên CNTT nhưng lại thiếu lập trình viên Java thực sự.

Tại sao nhu cầu lập trình viên Java tăng mạnh và sẽ còn tăng đến bao giờ

Thời điểm 2012-2013-2014 có thể rơi vào chu kỳ, các ứng dụng doanh nghiệp viết bằng Java đến lúc phải nâng cấp, bổ xung tính năng. Có 3 xu hướng lớn nhất, thách thức nhất với ứng dụng doanh nghiệp hiện có đó là:
1- Triển khai thành dịch vụ điện toán đám mây, cần ảo hóa, cần đơn giản nhưng hiệu quả hơn trước.
2- Hỗ trợ kết nối không chỉ từ Desktop, web browser truyền thống mà từ ứng dụng di động Android, iOS, Windows Phone, BlackBerry. Sẽ phải viết thêm nhiều web service theo các chuẩn công nghệ khác nhau như SOAP, REST
Hệ thống định danh người dùng không chỉ có Active Directory mà phải có OpenID, OAuth để hỗ trợ định danh qua các dịch vụ mạng xã hội đang phát triển như vũ bão.
3- Giao diện web trước đây chỉ dành cho Desktop, nay phải Responsive – hỗ trợ nhiều độ phân giải màn hình hơn.

Khóa đào tạo lập trình Java nhập môn đến nâng cao. Giảng viên là chuyên gia Java server side đã phát triển nhiều dự án quốc tế
Ở nước ngoài, lứa các lập trình viên Java thời kỳ 1996-2006 nay đã vào tầm 40-45 tuổi. Cái tuổi làm ông bầu, huấn luyện hơn là làm cầu thủ. Các lập trình viên trẻ thì lại có nhiều lựa chọn đa dạng hơn như lập trình Apple iOS, HTML5 JavaScript…. hoặc làm startup chứ không muốn gò mình vào bảo trì, nâng cấp những ứng dụng doanh nghiệp đồ sộ viết bằng Java. Thế là cả Tây và Ta đều thiếu lập trình viên Java nghiêm túc cho những ứng dụng server side.

Nhu cầu này sẽ còn tiếp tục gia tăng cho đến khi các doanh nghiệp hoàn tất quá trình nâng cấp hệ thống ứng dụng, thường phải mất 1-3 năm. Sau đó lập trình Java sẽ phải làm gì tiếp theo thì khó có thể tiên đoán, vì công nghệ thay đổi quá nhanh. Có lẽ chúng ta chuẩn bị nghĩ tới thời kỳ hậu ứng dụng di động….