Top ngôn ngữ lập trình nên học (2018) – xếp hạng theo StackOverflow, TIOBE, PYPL, Github
Trong ma trận với hàng ngàn ngôn ngữ lập trình và hàng trăm ngôn ngữ lập trình phổ biến hiện nay, bạn sẽ phân vân không biết mình nên chọn ngôn ngữ lập trình nào để đầu tư thời gian và công sức. Bài viết sau sẽ cung cấp cho bạn góc nhìn khách quan, thực tế về hiện trạng cũng như xu hướng được dự ...
Trong ma trận với hàng ngàn ngôn ngữ lập trình và hàng trăm ngôn ngữ lập trình phổ biến hiện nay, bạn sẽ phân vân không biết mình nên chọn ngôn ngữ lập trình nào để đầu tư thời gian và công sức. Bài viết sau sẽ cung cấp cho bạn góc nhìn khách quan, thực tế về hiện trạng cũng như xu hướng được dự đoán trong tương lai gần của ngành CNTT dựa trên dữ liệu thống kê từ nhiều nguồn đáng tin cậy khác nhau. Bạn có thể tham khảo và quyết định mình sẽ bắt đầu hoặc tiếp tục đi theo con đường nào để có thể thành công hơn trong sự nghiệp và tương lai của mình. Trước hết, chúng ta cùng nhìn qua các chỉ số đánh giá: • Chỉ số TIOBE: là một chỉ số về sự phổ biến của các ngôn ngữ lập trình, được cập nhật mỗi tháng một lần. Chỉ số này được tính dựa trên số lượng các truy vấn có chứa tên ngôn ngữ lập trình của các công cụ tìm kiếm phổ biến như Google, Bing, Yahoo !, Wikipedia, Amazon, YouTube và Baidu.
Top ngôn ngữ lập trình phổ biến 08/2018 – chỉ số TIOBE • PYPL Index: PYPL Index là viết tắt của PopularitY of Programming Language Index đánh giá các ngôn ngữ lập trình dựa trên mức độ phổ biến của các khóa học dạy về lập trình được tìm kiếm trên Google.
Top ngôn ngữ lập trình phổ biến 08/2018 – chỉ số PYPL
• GitHub Octoverse: GitHub là dịch vụ cung cấp kho lưu trữ mã nguồn rất phổ biến hiện nay với hơn 24 triệu thành viên tại 200 quốc gia với 337 ngôn ngữ lập trình khác nhau. Mỗi năm, công ty đều có thực hiện khảo sát báo cáo Octoverse nói về các xu hướng lập trình mới và danh sách các ngôn ngữ phổ biến nhất trong cộng đồng người dùng.
Top ngôn ngữ lập trình phổ biến công bố cuối năm 2017 – GitHub Octoverse
• Stack Overflow: Diễn đàn nổi tiếng, uy tín của các lập trình viên trên thế giới với hơn 50 triệu lượt người truy cập mỗi tháng, trên 14 triệu câu hỏi và trên 19 triệu câu trả lời. Đây là nơi giúp các lập trình viên tìm kiếm giải pháp cho các vấn đề gặp phải trong công việc, nơi mỗi cá nhân thể hiện trình độ của mình thông qua việc giúp đỡ các đồng nghiệp khác và cũng có rất nhiều thông tin việc làm, tuyển dụng tại đây. Stack Overflow thường thực hiện khảo sát hằng năm và bảng khảo sát năm 2018 có số lượng tham gia là hơn 100.000 lập trình viên đang làm việc tại 183 quốc gia và vùng lãnh thổ tham gia khảo sát.
Top ngôn ngữ lập trình phổ biến 2018 – khảo sát của Stack Overflow
Dựa trên tổng hợp các thống kê khảo sát và thực tế nhu cầu tuyển dụng, mức lương tại Việt Nam trên các website tuyển dụng CNTT hàng đầu, có thể xếp hạng các ngôn ngữ lập trình theo mức độ phổ biến của như sau:
1. Java
Java là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Sun Microsystems với tuổi đời hơn 20 năm và được ứng dụng rộng rãi trong nhiều lĩnh vực: ứng dụng web, ứng dụng desktop, các ứng dụng chạy hệ điều hành Android, lập trình nhúng trên các thiết bị, ứng dụng thương mại điện tử, các hệ thống CRM, ERP, ứng dụng trong những ngân hàng - tài chính lớn, các hệ thống phân tích dữ liệu Big Data,… Java có mặt ở khắp mọi nơi nên cũng thật dễ hiểu nếu bạn thấy Java luôn ổn định ở hàng Top các ngôn ngữ lập trình thông dụng ở tất cả thống kê khảo sát. Java là một trong những ngôn ngữ có số lượng công việc tuyển dụng lẫn số lượng lập trình viên hùng hậu nhất. Mặc dù Java là ngôn ngữ được thiết kế rất chi tiết, bài bản và cũng khá nhiều lời khuyên bạn nên chọn Java khi mới bắt đầu. Nhưng bạn nên cân nhắc vì trên Java tất cả đều phải chặt chẽ và rõ ràng, điều đó cũng có nghĩa là bạn phải viết mã lệnh khá nhiều để xây dựng được tính năng, hoàn chỉnh được ứng dụng và kết quả là bạn sẽ mất nhiều thời gian, công sức và bạn sẽ dễ nản khi học Java hơn là bắt đầu với các ngôn ngữ lập trình khác.
Ngoài ra, Java có nhiều IDE mạnh, thư viện API của Java rất phong phú, nhiều tiện ích, nhiều framework phù hợp cho nhiều loại ứng dụng và quy mô ứng dụng khác nhau và đa số đều miễn phí nên có thể nói để am hiểu về Java, trở thành chuyên gia gia Java thật sự đòi hỏi bạn phải kiên nhẫn, đam mê và không ngừng học hỏi cập nhật kiến thức.
Phát triển ứng dụng với Java
2. Javasript
Chiếm ngôi đầu bảng trên thống kê của Stack Overflow năm 2018 và GitHub Octoverse cuối năm 2017 là Javascript, ngôn ngữ đang có nhiều chuyển biến đáng kể trong thời gian gần đây và dự kiến có thể giữ ổn định ngôi đầu bảng trong một vài năm tới. Tại sao Javascript lại được đánh giá là một ngôn ngữ mạnh mẽ và đáng học nhất hiện nay bởi cộng đồng các lập trình viên? Với rất nhiều thư viện, framework cho Javascript hùng hậu lần lượt ra đời như Node JS, AngulaJS, VueJS, ReactJS, Express.JS, … kia Javascript không còn được biết như là ngôn ngữ không thể thiếu trong lập trình web front-end mà còn được dùng để viết back-end, viết ứng dụng di động, phát triển game 3D, ứng dụng Adruino, …
Các framework phổ biến của Javascript
Đặc biệt nếu xác định mình sẽ theo hướng phát triển ứng dụng web thì bắt buộc bạn phải học JavaScript, không thể khác được vì Javascript được dùng chính trong làm web hiện nay và được hầu hết các browser hỗ trợ.
Bắt đầu học Javascript bạn sẽ thấy Javascript không khó lắm vì bạn sẽ chỉ chú ý vào cách lập trình sao cho chương trình thực hiện được ý bạn muốn mà không quan tâm nhiều đến những phức tạp liên quan đến bộ nhớ, con trỏ, địa chỉ… vốn khó hiểu và phức tạp với người mới bắt đầu. Ngoài ra, bạn có thể dễ dàng lập trình Javascript trên bất kỳ trình duyệt nào mà không cần phải cài đặt thêm ứng dụng nào.
Có thể nói Javascript là ngôn ngữ dễ học nhưng khó giỏi. Bạn sẽ gặp lúng túng khi thấy cùng đoạn mã lệnh nhưng chạy được trên Chrome nhưng không chạy được trên FireFox. Javascript lại là ngôn ngữ định nghĩa kiểu động, điều đó nghĩa là không cần phải khai báo kiểu của các biến trước khi dùng. Kiểu sẽ được xác định tự động trong khi thực thi chương trình và một biến có thể chứa giá trị của nhiều kiểu dữ liệu khác nhau. Rất linh động nhưng cũng khó bảo trì hệ thống, đặc biệt trong các hệ thống lớn, nên khi lập trình trên Javascript bạn phải tuân theo các quy tắc của phong cách lập trình một cách nghiêm túc ngay từ những dòng code đầu tiên. Cơ hội tuyển dụng Javascript hiện nay rất nhiều, bạn sẽ dễ dàng tìm thấy nhiều cơ hội việc làm trong và ngoài nước, nhiều công việc tuyển dụng yêu cầu bạn phải biết thêm Javascript là giá trị cộng thêm. Các thư viện, framework đang không ngừng được cải thiện, phát triển và nâng cấp giúp cho Javascript ngày càng trở nên mạnh mẽ, ứng dụng rộng rãi thì tất yếu là nhu cầu nhân lực về Javascript sẽ tiếp tục tăng cao, hãy gia nhập vào đội ngũ Javascript nếu bạn không muốn “lỡ nhịp” bạn nhé.
3. Python
Mặc dù không phải là ngôn ngữ thông dụng nhất trên Stack Overflow (xếp hạng 7) nhưng Python vẫn là ngôn ngữ được đánh giá cao trong các chỉ số khác và lại là ngôn ngữ mong muốn được biết nhất của các lập trình viên trên Stack Overflow:
Tại sao lại có sự khác biệt? Phải chăng là do xu hướng của Python trong tương lai với cuộc cách mạng công nghiệp 4.0. Theo giới chuyên môn thì Python được đánh giá nổi trội hơn hẳn so với các ngôn ngữ lập trình khác trong các lĩnh vực như trí tuệ nhân tạo, máy học, phân tích dữ liệu,… do được hỗ trợ rất nhiều thư viện trong cách lĩnh vực này. Một điểm cộng khác của Python nữa là Python - ngôn ngữ lập trình đặc biệt thích hợp cho người mới bắt đầu. Thật vậy, Python là ngôn ngữ lập trình mã nguồn mở, đa mục đích, hỗ trợ nhiều phương pháp lập trình khác nhau như hướng đối tượng, thủ tục, chức năng… Python là ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu. Các framework phát triển web dựa trên Python như Django và Flask ngày càng được dùng phổ biến, Python cho phép người dùng dễ dàng tạo ra các dịch vụ Web, sử dụng các thành phần COMhay CORBA, hỗ trợ các loại định dạng dữ liệu Internet như email, HTML, XML. Python có khả năng giao tiếp đến hầu hết các loại cơ sở dữ liệu, có khả năng xử lý văn bản, tài liệu hiệu quả, và có thể làm việc tốt với nhiều công nghệ Web khác nhau. Python đặc biệt hiệu quả trong lập trình tính toán khoa học nhờ các công cụ Python Imaging Library, pyVTK, Numeric Python, ScientificPython,… Python cũng có thể được sử dụng để phát triển các ứng dụng desktop với wxPython, PyQt, PyGtk cho phép có thể phát triển các ứng dụng giao diện đồ họa (GUI) chất lượng cao. …
Những “ông lớn” đều có sử dụng Python trong các ứng dụng của mình Có thể nói bạn có thể tìm thấy Python ở hầu hết mọi nơi trong ngày hôm nay, bạn sẽ tìm thấy Python trong các ứng dụng web, ứng dụng dành cho máy tính để bàn, học máy, truyền thông và hơn thế nữa. Như vậy, nếu chọn Python bạn có thể bắt đầu nhanh và có nhiều ngã rẽ, nhiều phạm vi ứng dụng khác nhau trong tương lai và có thể xem đây là một lựa chọn tốt cho các nhà phát triển ứng dụng không chuyên, cho người mới bắt đầu làm quen với lập trình.
4. C++
C++ là ngôn ngữ lập trình hướng đối tượng dựa trên C, được Bjarne Stroutstrup thiết kế vào năm 1979. 38 năm qua C++ vẫn luôn là lựa chọn hàng đầu trong các hệ thống yêu cầu tốc độ xử lý và tính hiệu quả cao. C++ được thiết kế để phát triển các ứng dụng cốt lõi, quan trọng, và thực tế là C++ luôn được dùng kèm với một ngôn ngữ lập trình nào đó trong các hệ thống lớn. Đã có giai đoạn người ta từng dự đoán ngôn ngữ C++ không thể phát triển nữa, thậm chí sẽ bị quên lãng, nhưng thực tế là C++ vẫn phát triển. Cơ bản là không có ngôn ngữ lập trình nào có thể xử lý tính phức tạp nhanh như C++, đặc biệt trong lĩnh vực nhúng, xử lý hình ảnh, ứng dụng truyền thông, ứng dụng tài chính,…Bạn sẽ không thấy hình ảnh C++ nhiều trong các ứng dụng thông thường nhưng C++ vẫn là ngôn ngữ mà các “anh lớn” như Google, Amazon, Microsoft, PayPal, LinkedIn, Adobe… dùng trong các công nghệ kỹ thuật chínhvới yêu cầu hiệu năng, tốc độ xử lý được đặt lên hàng đầu.
Phần kernel của các hệ điều hành được viết bằng C và C++
5. Ngôn ngữ lập trình C
C là một ngôn ngữ cấp trung, ngôn ngữ lập trình nền tảng. Khi bạn học lập trình C, bạn sẽ hiểu rõ được cách chương trình thực thi trên máy tính. Cú pháp C đơn giản, thuần lập trình thủ tục nên bạn sẽ dễ dàng bắt đầu với các bài toán nhỏ với suy nghĩ hướng tuần tự, thủ tục theo cách thật tự nhiên. Ngoài ra bạn cũng sẽ hiểu thêm được những khái niệm như stack, heap, con trỏ, cách hoạt động của bộ nhớ, cách giao tiếp với các thiết bị ngoại vi…. Một câu hỏi thường gặp là bạn có cần biết C rồi mới tìm hiểu C++ không ? Cú pháp C được dùng lại khá nhiều trong các ngôn ngữ họ-C như: C++, C#, Java, Objective C,… nên không là bắt buộc nhưng sẽ thuận lợi hơn nếu bạn biết lập trình C rồi sau đó làm quen với các ngôn ngữ khác. Một điều nữa là bạn có thắc mắc tại sao ngôn ngữ lập trình C lại được chọn đưa vào giảng dạy tạo các Trường Cao đẳng, Đại Học chuyên ngành CNTT trong các môn Nhập môn Lập trình, Kỹ thuật Lập trình, Lập trình Hướng đối tượng,…. mà không phải là các ngôn ngữ như C++, Java, Python hay Javascript không? Hãy thử xem ví dụ minh họa sau nhé. Bạn sẽ chọn làm bánh pizza bằng đế bánh làm sẵn rồi chỉ việc cho nhân bánh, phô mai vào hay muốn tự mình cân, đong nguyên liệu từ bột mì, men, đường, trứng, sữa,.. rồi tự trộn nguyên liệu, nhào bột, ủ bánh, cán bột,… để có được đế bánh như mong muốn, xong rồi mới cho nhân bánh vào. Nếu bạn chỉ muốn nhanh chóng có chiếc bánh pizza nóng từ lò nướng thì có lẽ bạn sẽ chọn phương án 1 nhưng nếu như bạn muốn chiếc bánh pizza theo ý mình từ đế đến nhân, có thể thực hiện các điều chỉnh sao cho chiếc bánh giòn hơn, thơm hơn, ngọt hơn… thì bạn sẽ chọn phương án 2. Để có thể đi xa hơn, thành chuyên gia thì bạn phải biết rõ và hiểu chắc những gì mình làm, đó là lối đi không dễ với nhiều thử thách và C là những ngôn ngữ lập trình cho bạn những bước đầu thật vững vàng đó. Bạn sẽ chọn Java, Javascript,Python hay C, C++? Nhưng bạn học lập trình để làm gì, bạn có thể tham khảo thêm các hướng đi trong lập trình và những lưu ý khi bắt đầu học lập trình tại đây để hiểu rõ hơn trước khi quyết định bạn nhé ! Chúc bạn vững vàng trên hành trình khám phá thế giới lập trình nhiều thử thách và cơ hội sẽ đến !