Bài viết được dịch từ trang web Sitepoint

Tôi thường xuyên theo dõi số liệu thống kê về các ngôn ngữ lập trình trong vài năm gần đây. Các nguồn dữ liệu bao gồm các code repositories, các trang hỏi đáp Q&A, các quảng cáo tuyển dụng, các đề cập trên mạng xã hội, số lượng khách viếng thăm các bài tutorial, số lượng view các video dạy học, các khảo sát đối với lập trình viên và nhiều nguồn khác nữa. Dữ liệu được công bố tại nhiều thời điểm khác nhau, không nguồn nào trong số chúng được xem là chính xác và tất cả đều có sai sót - nhưng chúng có thể hữu ích trong việc nhận ra các xu hướng của ngành công nghiệp phần mềm.

Ngôn ngữ lập trình tốt nhất để học trong năm nay là gì?
Ngôn ngữ lập trình tốt nhất để học trong năm nay là gì?

GitHut

GitHut là một nguồn số liệu tương đối mới, nó đã tiến hành phân tích 2,2 triệu repositories đang active trên GitHub. Và kết quả top 10 ngôn ngữ là:

  1. JavaScript
  2. Java
  3. Python
  4. CSS
  5. PHP
  6. Ruby
  7. C++
  8. C
  9. Shell
  10. C#

Bảng xếp hạng các ngôn ngữ lập trình theo GitHut

RedMonk

Bảng xếp hạng các ngôn ngữ lập trình năm 2015 của RedMonk xác định sự phổ biến bằng cách phân tích các hoạt động trên cả GitHub và StackOverflow. Kết quả của họ là:

  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. C#
  6. C++
  7. Ruby
  8. CSS
  9. C
  10. Objective-C

Bảng xếp hạng các ngôn ngữ lập trình theo RedMonk

Jobs Tractor

Số liệu về xu hướng ngôn ngữ lập trình do Jobs Tractor đưa ra dựa trên việc phân tích hàng ngàn công việc được đăng tuyển trên mạng xã hội Twitter. Các số liệu mới nhất từ tháng 9 năm 2014:

  1. Java
  2. Objective-C
  3. PHP
  4. SQL
  5. Java (Android)
  6. C#
  7. JavaScript
  8. Python
  9. Ruby
  10. C++

TIOBE Index

Chỉ số TIOBE về các ngôn ngữ lập trình dựa trên số lượng các kỹ sư phần mềm có kỹ năng, các khóa học và thứ hạng trên bộ máy tìm kiếm.

  1. C
  2. Java
  3. C++
  4. Objective-C
  5. C#
  6. JavaScript
  7. PHP
  8. Python
  9. VisualBasic.NET
  10. Visual Basic

Kết hợp các khảo sát trên

Nếu chúng ta kết hợp số liệu cả 4 khảo sát trên thì sẽ có kết quả như sau:

  1. Java 
  2. JavaScript
  3. PHP
  4. Python
  5. C / C++
  6. C#
  7. Objective-C
  8. Ruby
  9. Visual Basic

Tôi đã gộp C và C++ lại và lờ đi CSS và shell scripting. CSS không phải là một ngôn ngữ lập trình mặc dù bộ tiền xử lý của nó cũng khá giống. Shell scripts thì rất hữu dụng cho dù bạn có chọn bất cứ công nghệ nào, nhưng bạn sẽ không thể xin được việc làm nếu chỉ sử dụng mỗi ngôn ngữ này.  

Quan sát và đánh giá

GitHut và RedMonk có kết quả tương tự nhau, nhưng điều này có thể đoán được bởi vì họ đều sử dụng GitHub là nguồn số liệu chính. Cả hai đều phân tích các repositories dạng public chứ không phải là private, điều này dẫn đến kết quả sẽ thiên về các công nghệ hướng mã nguồn mở hơn.

Chỉ số TIOBE chịu ảnh hưởng bởi các nguồn dữ liệu từ bộ máy tìm kiếm. Điều này giải thích tại sao ngôn ngữ C lại nằm ở vị trí đầu bảng trong danh sách của họ - ngôn ngữ này được phát triển từ năm 1969 và có rất nhiều tài liệu từ trước đến nay tồn tại trên mạng Internet. Những ngôn ngữ lập trình mới hơn như Ruby và Go không tránh khỏi việc chỉ xuất hiện ở phần dưới của bảng xếp hạng.

Nguồn số liệu từ lĩnh vực giáo dục cũng ảnh hưởng đến những kết quả này. Ví dụ, ngôn ngữ Python được sử dụng phổ biến trong việc dạy và học lập trình tại các trường trung học và đại học. Hàng ngàn sinh viên đang đặt các câu hỏi và hoàn thành các dự án của họ bằng ngôn ngữ này, nhưng theo kinh nghiệm của tôi thì các công việc Python sẽ hiếm hơn khi so sánh với PHP hoặc Ruby, mặc dù nó có vị trí cao hơn trong một vài bảng xếp hạng. Ngôn ngữ Java cũng có lợi thế tương tự khi nó được sử dụng trong rất nhiều mảng và lĩnh vực khác nhau như: giáo dục, web, desktop và phát triển ứng dụng mobile.

Nhu cầu các lập trình viên phát triển ứng dụng di động native vẫn luôn ở mức rất cao trong các bản khảo sát liên quan đến việc làm. Trong bản báo cáo của RedMonk thì ngôn ngữ lập trình Swift đã nhảy 46 bậc lên vị trí số 22 chỉ trong vòng 6 tháng. Tuy nhiên, phát triển ứng dụng di động so với các mảng khác vẫn còn khá non trẻ. Có rất nhiều công việc trong các lĩnh vực web và lập trình desktop, nhưng các vị trí này dễ dàng kiếm được người hơn và có thể người ta đã xóa quảng cáo tuyển dụng ngay sau đó.

Cuối cùng, mỗi ngôn ngữ sử dụng đều có một mức ảnh hưởng khác nhau.

  1. Một trang web hoặc ứng dụng riêng lẻ đòi hỏi vô số các công nghệ mà có thể làm tăng hạng của chúng so với các ngôn ngữ desktop.
  2. Bạn có thể tạo ra một vài ví dụ nhanh trong chỉ vài dòng code bằng CSS, JavaScript, PHP, Ruby, Python hoặc shell script. Điều này ít xảy ra đối với các ngôn ngữ như C, C#, Objective-C và Java khi chúng có xu hướng ít được sử dụng cho các dự án lớn.

Các xu hướng

So sánh bảng xếp hạng năm nay với bảng xếp hạng năm 2014 của RedMonk và Jobs Tractor thì ta thấy có một vài sự thay đổi. Một vài ngôn ngữ thăng hạng và một số ngôn ngữ khác tụt hạng, nhưng không có ngôn ngữ lập trình mới nào nhảy vào top 10 cả.

Điều mà các bản khảo sát không nói với bạn

Không có ngôn ngữ lập trình "tốt nhất".

Rất ít các lập trình viên có sự sang chảnh (hoặc nhàm chán?) khi chỉ làm việc với một công nghệ duy nhất.

Nếu bạn đang quan tâm đến ngôn ngữ phía client-side là JavaScript, bạn sẽ không thể tiến xa được nếu thiếu hiểu biết sâu sắc về HTML, CSS, các định dạng hình ảnh, các công cụ và đặc điểm của mỗi trình duyệt. Các lập trình viên phía server-side sử dụng các công nghệ như NodeJS, PHP, Ruby, .NET và Java thường yêu cầu hiểu biết về các web server, HTTP, cơ sở dữ liệu SQL/NoSQL và các định dạng trao đổi dữ liệu như XML và JSON. Thậm chí việc viết một ứng dụng di động native đơn giản hoặc một ứng dụng desktop trên một nền tảng nào đó cũng yêu cầu những kinh nghiệm về kết nối web, lưu trữ dữ liệu, IDE và các cộng cụ khác.

Càng nhiều công nghệ bạn biết thì bạn lại cần phải biết nhiều hơn.  

Ok, nhưng tôi sẽ học được điều gì từ các bản khảo sát nói trên?

Các bản khảo sát thì rất thú vị nhưng đừng đặt cược sự nghiệp của bạn vào chúng. Nếu bạn không nhận được gì từ bài viết này thì cũng nên nhớ rằng:

những ai chọn một ngôn ngữ lập trình dựa trên dữ liệu khảo sát hoặc viễn cảnh tiền bạc thì sẽ thất bại.

Có một bí mật để trở thành một lập trình viên giỏi, đó là:

hãy bắt tay vào xây dựng các sản phẩm.

Đầu tiên, hãy tìm một vấn đề cần giải quyết - đặc biệt là nó nằm trong sở thích cá nhân hoặc liên quan đến lợi ích của bạn. Có lẽ đó là tạo ra một trang web lý lịch cá nhân (résumé), ứng dụng quản lý tài chính cá nhân, tự động hóa ngôi nhà của bạn hoặc gửi đi những tweet ngẫu nhiên đến những người follower bạn trên mạng xã hội Twitter. Hãy đảm bảo rằng các mục tiêu đó là có thể đạt được; thậm chí những lập trình viên giỏi nhất cũng sẽ nổi da gà khi nghĩ đến việc tạo ra một bản sao của WordPress hoặc trang Call of Duty.

Bây giờ hãy chọn lấy một tập các công nghệ thích hợp. Có thể có một vài lựa chọn nhưng đừng cố ép buộc mình vào một ngôn ngữ hoặc giải pháp nào đó. Bạn có thể có khả năng tạo ra một ứng dụng mobile native bằng ngôn ngữ Perl, nhưng các nguồn tài nguyên là rất hiếm và đó là một bài tập tạo ra cho bạn nhiều sự nản lòng.

Sau đó hãy tạo ra giải pháp của bạn. Tìm kiếm trên Google, các code ví dụ và sự hỗ trợ từ các lập trình viên đồng nghiệp là rất hữu ích, nhưng đừng mong chờ họ cung cấp tất cả các câu trả lời cho bạn. Dự án của bạn thì (hoặc nên) là duy nhất và chỉ có một người có thể dạy bạn lập trình, đó là: bạn.

Cuối cùng, đừng hy vọng vào việc bạn sẽ trở thành "cao thủ" chỉ sau một đêm. Một số người có những năng khiếu bẩm sinh, nhưng họ cũng phải dành nhiều, nhiều giờ đề mài giũa các kỹ năng của họ và tiếp tục học những công nghệ và kỹ thuật mới. Thậm chí hầu hết các vị trí junior cũng cần một vài năm kinh nghiệm phát triển. Nếu bạn thấy cần sự hỗ trợ thì có vô số các tài nguyên trực tuyến, giống như trang web Learnable của chúng tôi chẳng hạn. 

Tóm lại, việc lựa chọn một ngôn ngữ lập trình để học chỉ vì lợi ích của nó là một việc khá nhàm chán: và có rất ít người thành công. Sẽ tốt hơn nếu bạn học một ngôn ngữ để giúp bạn giải quyết một vấn đề thực tế. Đừng lo lắng nếu công nghệ đó không còn "hot" hoặc nằm ngoài top 10 - vì tất cả các ngôn ngữ lập trình đều có khái niệm tương tự nhau và khi đã thành thạo một ngôn ngữ thì việc chuyển qua ngôn ngữ khác là rất dễ dàng.

Đừng quá lo lắng về các lựa chọn của bạn: chỉ cần xây dựng một thứ gì đó.

Về tác giả bài viết:

Lập trình viên CraigCraig Buckler là giám đốc của OptimalWorks, một công ty tư vấn về công nghệ có trụ sở tại Anh. Công ty chuyên tư vấn xây dựng những website có chất lượng cao, đúng chuẩn, dễ sử dụng, SEO hiệu quả và được phát triển trên những công nghệ tốt nhất. Craig đã phát triển web từ năm 1995 và là tác giả của hơn 1000 bài viết cho SitePoint, bạn có thể liên hệ với anh qua Twitter

Tham khảo:

Các khóa học lập trình tại TechMaster sẽ cung cấp cho bạn những kỹ năng thực tế nhất để có thể xin được việc làm. Với nhiều mô hình đào tạo như online, offline, và FlipLearning (kết hợp giữa online với offline). Bạn có thể xem thông tin chi tiết về các khóa học tại đây.