Chắc hẳn bạn đã đọc vô số bài viết, tìm kiếm thông tin trên mạng và nghiên cứu khá nhiều về ngành lập trình. Giờ là lúc để bạn giải đáp vấn đề then chốt nhất: “Mình nên học ngôn ngữ lập trình nào?”

Câu hỏi rất hay. Thật may cho bạn, bọn mình đã có sẵn một bài hướng dẫn chi tiết giúp bạn xác định ngôn ngữ lập trình nên học và tìm kiếm động lực cho bản thân.

Bài viết này hữu ích dù bạn mới đang tìm hiểu đôi chút thông tin về lập trình. Nó giúp bạn có cái nhìn rõ hơn về mục đích sử dụng của một số ngôn ngữ phổ biến cũng như xác định “thị trường ngách” phù hợp cho bản thân.

Bọn mình xếp hạng những ngôn ngữ lập trình hàng đầu theo bốn tiêu chí: mức độ phổ biến, mức độ dễ học, mức lương tiềm năng tính hữu dụng.

Tuyên bố miễn trừ trách nhiệm: Trong bài viết này, bọn mình đã gộp các ngôn ngữ lập trình thành từng danh mục khác nhau, chẳng hạn như HTML và CSS thuộc danh mục ngôn ngữ đánh dấu, Bash/Shell và SQL thuộc danh mục ngôn ngữ lập trình kịch bản.

Chúng mình hãy bắt đầu với danh sách mười ngôn ngữ lập trình phổ biến nhất theo khảo sát của StackOverflow:

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

Nguồn: StackOverflow

JavaScript, HTML và CSS chiếm vị trí top 3 trong danh sách. Ba ngôn ngữ này chính là xương sống để phát triển web front-end (phần tương tác với người dùng) và là điểm khởi đầu tốt cho những ai mới học lập trình. SQL được dùng để quản lý cơ sở dữ liệu, còn những ngôn ngữ còn lại như Java, Python, C#, PHP và C++ là các ngôn ngữ đa mục đích dùng để phục vụ nhiều tác vụ khác nhau. Bash/Shell là ngôn ngữ điều khiển được sử dụng để giao tiếp với các hệ điều hành dựa trên Unix như Linux và MacOS.

Vậy ngôn ngữ nào dễ học nhất?

  1. HTML
  2. Python
  3. JavaScript
  4. PHP
  5. Java
  6. R
  7. Shell
  8. Ruby
  9. Erlang
  10. Go

Nguồn: WP Engine

May mắn thay, đa số những ngôn ngữ lập trình phổ biến nhất hiện nay đều là các ngôn ngữ dễ học. Tuy nhiên, cũng có một số ngôn ngữ khá rắc rối, chẳng hạn như R và Erlang. R là ngôn ngữ lập trình được thiết kế cho tính toán thống kê và toán học. Đây là công cụ tuyệt vời để phân tích dữ liệu (chúng mình sẽ sớm thảo luận tới phần này). Erlang chủ yếu dùng trong viễn thông và đang sử dụng trong nhiều ứng dụng nhắn tin, chẳng hạn như WhatsApp.

…vậy đâu là ngôn ngữ lập trình được trả lương cao nhất?

  1. F#
  2. Ocaml
  3. Clojure
  4. Groovy
  5. Perl
  6. Rust
  7. Erlang
  8. Scala
  9. Go
  10. Ruby

Nguồn: StackOverflow

Nếu là người mới, có lẽ bạn chưa có dịp biết đến những ngôn ngữ trong danh sách trên. Lập trình máy tính là ngành công nghiệp phát triển nhanh chóng, vậy nên những kỹ năng được trả lương cao thường có xu hướng liên quan đến các công nghệ mới và tiên tiến nhất. Tuy vậy, việc nắm vững kiến thức về HTML, CSS và JavaScript cũng đã đủ giúp bạn khởi đầu một sự nghiệp mới — mấy ngôn ngữ kia có thể chờ bạn chinh phục sau này.

Tổng quan

Bên cạnh những yếu tố như mức lương, mức độ phổ biến và độ dễ học, bạn cũng cần trang bị động cơ học tập cho bản thân để tìm được ngôn ngữ phù hợp. Dưới đây, bọn mình sẽ phân tích một số yếu tố quyết định giúp bạn cân nhắc nên học ngôn ngữ lập trình nào kèm công dụng của nó.

Chọn Ngôn ngữ lập trình dựa trên tính hữu ích

Phần này sẽ hơi phức tạp một chút. Mức độ “hữu ích” của một ngôn ngữ phụ thuộc vào thứ mà bạn muốn thực hiện bằng code. Ví dụ: HTML và CSS sẽ cực kỳ hữu ích cho người làm phát triển web front-end, còn Swift và Java thì hữu ích cho người làm phát triển ứng dụng di động. Một số ngôn ngữ lập trình như Python có đặc điểm là đa mục đích. Ngoài ra cũng có nhiều ngôn ngữ đóng vai trò làm công cụ chuyên dụng giúp bạn hoàn thành các nhiệm vụ cụ thể.

Trước tiên, chúng mình hãy xác định lý do bạn muốn học lập trình, lĩnh vực mà bạn muốn tham gia và sau đó tìm ngôn ngữ lập trình phù hợp cho bạn:

Mình muốn trở thành một Nhà Phát Triển Chuyên Nghiệp

Nhà phát triển game

Nếu say mê nghề phát triển game thì bạn cần nắm vững hai ngôn ngữ lập trình chính: C++ và C#.

Nếu muốn phát triển những trò chơi di động với đồ họa 2D dựa trên tương tác cộng đồng và trực tuyến thì C# là lựa chọn hoàn hảo. C# là ngôn ngữ lập trình chính của nhiều tựa game phát triển độc lập và các game trên nền tảng di động đơn giản bởi nó dễ học và ít phức tạp hơn C++.

Mặt khác, C++ cực kỳ hữu ích khi dùng để phát triển trò chơi di động 3D và các trò chơi hạng “AAA” cho máy tính cá nhân và máy chơi game. Để tạo ra những trò chơi có hiệu suất tốt nhất và đồ họa đẹp nhất thì bạn cần chọn C++.

Nhà phát triển web

Trong bài viết “Giới thiệu về Phát triển Web”, bọn mình đã bàn luận chi tiết về ba ngôn ngữ lập trình cốt lõi: HTML, CSS và JavaScript. HTML dùng để định dạng, CSS tạo “phong cách” cho các phần tử HTML và JavaScript giúp trang web của bạn trở nên sống động.

Đối với các lập trình viên phát triển web chuyên phụ trách phần UX (trải nghiệm người dùng), ngôn ngữ HTML5 và JavaScript là những công cụ sử dụng phổ biến nhất. Những ai chuyên phát triển các trang web thương mại điện tử sẽ thường sử dụng các ngôn ngữ phức tạp hơn như Java, Ruby, Python, PHP và C#.

Lập trình viên web cho các doanh nghiệp nhỏ thường sử dụng PHP, còn lập trình viên cho startup thường sử dụng Java, Ruby và JavaScript. Lập trình viên phát triển web cho doanh nghiệp lớn có xu hướng sử dụng C# và Java để phát triển các ứng dụng lớn dựa trên hệ điều hành Windows.

Nhà phát triển ứng dụng di động

Phát triển ứng dụng di động thì đơn giản hơn một chút, bạn chỉ cần biết một ngôn ngữ lập trình liên quan đến hệ điều hành của ứng dụng đó.

Nếu muốn tạo ứng dụng cho iPhone hoặc iPad, bạn chỉ cần nghiên cứu về Swift, ngôn ngữ lập trình của Apple dành cho hệ điều hành iOS. Swift được giới thiệu vào năm 2014 và là ngôn ngữ lập trình hữu ích cho phép lập trình trong hầu hết mọi thiết bị của Apple. Với kiến ​​thức về Swift, bạn sẽ tha hồ phát triển các ứng dụng cho Mac, Apple Watch và Apple TV!

Việc phát triển ứng dụng di động cho Android đã tăng trưởng mạnh trong những năm gần đây và trở nên phổ biến hơn so với phát triển ứng dụng di động cho iOS. Nếu đã có kinh nghiệm lập trình bằng Java thì bạn có thể dễ dàng phát triển ứng dụng di động cho Android bởi hệ điều hành này chủ yếu sử dụng Java. Sau khi tích lũy đủ kinh nghiệm lập trình bằng Java, bạn có thể phát triển thêm nhiều thứ thú vị khác ngoài những ứng dụng cho Android.

Bạn đừng quên những chiếc điện thoại dùng hệ điều hành Windows nhé. Hệ điều hành Windows trên di động thường được lập trình bằng C#. Đây là ngôn ngữ lập trình được phát triển bởi Microsoft. Kỹ năng lập trình bằng C# cực kỳ có giá trị đối với bất kỳ lập trình viên Windows nào.

Ngày nay, ranh giới giữa thiết bị di động và máy tính để bàn đang dần biến mất nhờ sự xuất hiện của những thiết bị 2 trong 1, chẳng hạn như máy tính bảng kiêm laptop. Thay vì phân biệt giữa thiết bị di động và máy tính để bàn, các ngôn ngữ lập trình bây giờ được phân loại theo hệ sinh thái (Microsoft, Google và Apple). Google thậm chí còn phát triển ngôn ngữ lập trình riêng được gọi là “Go” và trong tương lai ngôn ngữ này có thể thay thế cho Java trong Android.

Phần mềm máy tính để bàn

Như đã đề cập ở trên, các ngôn ngữ lập trình bạn dùng để phát triển ứng dụng di động cũng có thể dùng để phát triển phần mềm cho máy tính để bàn. Nếu hứng thú với việc phát triển phần mềm cho nền tảng Windows, bạn nên học ngôn ngữ C#. Trong môi trường đa nền tảng trên Mac, bạn nên học Java để phát triển phần mềm và học Swift để phát triển ứng dụng.

Ngoài ra còn có một số giải pháp hiệu quả dựa trên web được dùng để phát triển phần mềm cho máy tính để bàn đa nền tảng bằng ngôn ngữ HTML, CSS và JavaScript, chẳng hạn như Electron.

Khoa học dữ liệu

Trong lĩnh vực khoa học dữ liệu, Python và R là những ngôn ngữ hữu ích nhất bạn có thể học. Python giống như bộ dao đa năng dành cho ngôn ngữ lập trình, phục vụ đa mục đích sử dụng. Tuy nhiên, sức mạnh của Python bắt nguồn từ vô số thư viện phân tích dữ liệu miễn phí được tích hợp đầy đủ tính năng. Một trong những thư viện phân tích dữ liệu phổ biến nhất là Pandas. Thư viện này có sẵn những công cụ cho phép bạn nhập thông tin từ bảng tính hoặc bộ xử lý để phân tích chuỗi thời gian.

R là một ngôn ngữ lập trình khác được thiết kế để dùng trong phân tích thống kê và vẽ đồ thị. Với R, bạn có thể gộp mô hình tuyến tính và phi tuyến, kiểm tra thống kê cổ điển, phân tích chuỗi thời gian, phân loại, phân cụm và hơn thế nữa.

Mình muốn điều hành một Startup

Web

Các startup dựa trên web có thể sử dụng ngôn ngữ lập trình khá linh hoạt.

Đối với những startup thương mại điện tử thì việc sử dụng PHP là một khởi đầu lý tưởng. WordPress được phát triển bằng PHP và là nền tảng tuyệt vời cho các trang web thương mại điện tử.

Nếu muốn tạo ra một startup chuyên về SaaS (Phần mềm dạng Dịch vụ) thì bạn nên nghiên cứu về Java. Với Java, bạn có thể phát triển phần mềm cho nhiều nền tảng khác nhau, từ Android đến Windows.

Ruby on Rails được viết trên ngôn ngữ lập trình Ruby, rất hữu ích và dễ sử dụng, giúp bạn tạo ra các bản mẫu một cách dễ dàng. Khi sử dụng ngôn ngữ cấp cao, bạn có thể tạo các bản mẫu một cách nhanh chóng, biến ý tưởng thành hiện thực mà không phải mất quá nhiều công sức.

Ngôn ngữ lập trình cuối cùng bạn cần biết là JavaScript, nó có ảnh hưởng trực tiếp đến hiệu suất tổng thể của trang web. Vì startup của bạn được phát triển dựa trên trang web, vấn đề về hiệu suất và trải nghiệm người dùng là vô cùng quan trọng. Chắc bạn thừa biết những công cụ tìm kiếm như Google sẽ giảm thứ hạng kết quả tìm kiếm của trang web nếu trang đó tải chậm rì và chập chờn. Điều này có thể ảnh hưởng lớn đến lượt truy cập và tỷ lệ khách hàng quay lại trang web.

Mình muốn điều hành một Startup (Phiên bản 2.0)

Web

Vì mặt tiền của một cửa hàng trực tuyến chính là trang web, bạn sẽ cần HTML, CSS và JavaScript để trang trí cho những phần tương tác với người dùng (front-end). Tuy nhiên, bạn lại có khá nhiều tùy chọn cho phía server (back-end), nơi phụ trách tất cả các hoạt động “đằng sau hậu trường” của cửa hàng trực tuyến.

Để xử lý phần back-end, bạn có thể sử dụng Node.js (JavaScript), Ruby hoặc PHP.

Trong số đó, Node.js là phổ biến nhất và được sử dụng rộng rãi do có tốc độ xử lý cao và có các câu lệnh dựa trên JavaScript.

Vì startup của bạn được phát triển dựa trên trang web, hiệu suất trang và trải nghiệm người dùng là vô cùng quan trọng. Chắc bạn cũng biết những công cụ tìm kiếm như Google sẽ giảm thứ hạng kết quả tìm kiếm của trang web nếu trang đó tải chậm hoặc chập chờn. Điều này có thể ảnh hưởng lớn đến lượt truy cập và tỷ lệ khách hàng quay lại trang web. Do vậy, bọn mình khuyên bạn nên sử dụng Node.js cho phần back-end để trang đạt được tốc độ cao.

Trong trường hợp quá tải, bạn có thể cần sử dụng Python hoặc R cho back-end, nhưng hãy nhớ là chỉ sử dụng chúng khi phải xử lý một lượng lớn dữ liệu khách hàng hoặc sản phẩm.

Nếu bạn muốn một giải pháp dễ dàng hơn, hãy thử xây dựng một trang thương mại điện tử bằng WordPress xem sao. WordPress được viết bằng PHP. Với WordPress, bạn có thể sử dụng giao diện kéo thả để xây dựng mặt tiền cho “cửa hàng”, còn phần mềm sẽ tự xử lý phần front-end và back-end.

Dù WordPress tương đối dễ sử dụng, bọn mình vẫn khuyên bạn tìm hiểu thêm về PHP hoặc thuê một nhà phát triển PHP để thêm tính năng bổ sung cho trang web khi cần thiết hoặc khắc phục các sự cố phát sinh.

Thiết bị di động

Hiện nay, những startup dựa trên thiết bị di động như Uber phát triển khá phổ biến và thành công. Điều quan trọng để có một startup thành công trên thiết bị di động là bạn phải tạo ra các ứng dụng có sẵn trên cả iPhone và Android. Bạn có thể phát triển các ứng dụng đa nền tảng bằng Java kết hợp với những framework như React Native, Ionic, PhoneGap hoặc Cordova. Bọn mình cũng khuyến khích bạn học ngôn ngữ lập trình gốc của mỗi nền tảng để đạt được hiệu suất cao nhất.

Nếu không thể tự viết code, bạn có thể thuê một nhà phát triển ứng dụng di động chuyên về hệ điều hành mà bạn hướng đến. Bạn sẽ cần một nhà phát triển Java cho Android, một nhà phát triển Swift cho iOS. Hãy thuê một người “đảm đang” biết cả hai ngôn ngữ trên hoặc chọn giải pháp đa nền tảng.

Game

Khi khởi nghiệp, có lẽ bạn sẽ không đủ tiền và tài nguyên để phát triển những game hạng ‘AAA’ như các studio lớn. Thay vào đó, các nhà phát triển game độc lập (indie game) có xu hướng tập trung vào cốt truyện và khả năng sáng tạo khi phát triển game. Ngôn ngữ lập trình C++ không phải là lựa chọn tốt nhất khi khởi nghiệp vì nó khá phức tạp, tốn thời gian và khó sử dụng. C# dễ sử dụng hơn, cho phép bạn phát hành game một cách nhanh chóng.

Những game trên nền web là khởi đầu tuyệt vời cho các nhà phát triển chưa có kinh nghiệm. Thông qua HTML5 và JavaScript, bạn có thể tạo ra nhiều game cực kỳ thú vị. Để tìm hiểu những dạng game mà bạn có thể phát triển bằng HTML5 và JavaScript, hãy tham khảo bài viết sau: https://tutorialzine.com/2015/02/30-amazing-games-made-only-with-html5

Tuy vậy, bạn cũng nên học C++ nếu đủ kiên nhẫn, kỹ năng và quyết tâm để tạo ra một trò chơi 3D tuyệt vời. Ngôn ngữ lập trình này được phát triển bởi Microsoft và đó là tất cả những gì bạn cần để tạo ra những game tuyệt vời trên máy chơi game và máy tính để bàn.

Mình muốn xây dựng một thứ gì đó thú vị

Ngoài những khía cạnh hấp dẫn như tính hữu dụng, lương cao, lập trình còn có thể đem đến niềm vui cho bạn. Nếu muốn lập trình một thứ gì đó thú vị, trước tiên bạn nên cân nhắc về loại dự án mà mình quan tâm. Bạn đang muốn viết một ứng dụng mới dành cho thiết bị di động, hay một game trên nền web, hay thậm chí là trí tuệ nhân tạo của riêng bạn? Hay bạn muốn tự động hóa công việc hàng ngày tại cơ quan hoặc tạo ứng dụng mới cho Google Apps (G-Suite)? Với hiểu biết tốt về các ngôn ngữ lập trình, bạn có thể hiện thực hóa mọi thứ mà trí tưởng tượng của ta vươn tới.

Các game nhỏ

Đừng nghĩ bạn phải trở thành lập trình viên chuyên nghiệp mới có thể theo đuổi ước mơ làm nhà phát triển game; tất cả những gì bạn cần là HTML5, JavaScript và vài thứ trong thư viện đồ họa WebGL dành cho web. Tựa game Doodle Jump và Flappy Bird (một game di động cực kỳ nổi tiếng) đều được phát triển bằng HTML5 và JavaScript. HIển nhiên bạn không thể tạo ra một game hạng ‘AAA’ trên máy chơi game chỉ trong nay mai, nhưng bạn sẽ ngạc nhiên với những gì có thể tạo ra từ một số kiến ​​thức lập trình cơ bản. Đối với các game phức tạp hơn dành cho máy tính để bàn, bạn sẽ cần sử dụng các ngôn ngữ như C# và Python.

Google Apps (G-Suite)

JavaScript là xương sống để tạo nên các ứng dụng trong hệ sinh thái của Google hay còn gọi là G-Suite. Google tuyên bố bất kỳ ứng dụng nào trong G-Suite đều có thể được tạo ra bằng JavaScript và không cần ngôn ngữ nào khác. Tuyên bố này nghe không đúng lắm bởi Gmail trên thực tế viết bằng Java thay vì JavaScript.

Bạn không nhất thiết phải biết JavaScript để tạo ứng dụng trong G-Suite. Thay vào đó, Google App Maker cung cấp cho bạn giải pháp đơn giản hơn. Đó là một giao diện kéo và thả cho phép tạo ra những ứng dụng tùy chỉnh và cung cấp API cho tất cả các ứng dụng của Google, chẳng hạn như Google Maps và Google Translate. API hay còn gọi là Giao diện Lập trình Ứng dụng, là chìa khóa để ứng dụng tùy chỉnh của bạn giao tiếp với các ứng dụng khác của Google.

Công cụ tự động hóa tác vụ

Bạn đã bao giờ bỏ ra hàng giờ để cập nhật bảng tính, đổi tên tập tin hay sắp xếp lại thư mục bằng bàn phím và chuột? Trong những khoảnh khắc điên đầu như thế, bạn có bao giờ dừng lại giữa chừng để mơ tưởng về một giải pháp hiệu quả hơn? Công cụ tự động hóa tác vụ là một lĩnh vực lập trình dành riêng cho việc phát triển những ứng dụng có thể tự động hóa các công việc nhàm chán, lặp đi lặp lại mà con người không muốn tốn thời gian để làm.

Bạn có thể ra lệnh cho máy tính thực hiện tất cả công việc nhàm chán đó bằng cách sử dụng những ngôn ngữ lập trình đa mục đích như Python và Ruby. Ngoài lợi ích tiết kiệm thời gian và giảm căng thẳng, việc tự động hóa các công việc hàng ngày sẽ giúp bạn làm việc hiệu quả và chính xác hơn. Con người có xu hướng mắc sai lầm khi bị mệt mỏi, mất tập trung và buồn chán. Mặt khác, máy tính có thể hỗ trợ bạn hoàn thành những công việc như vậy mà không mắc phải lỗi sai nào cả.

AI đơn giản (Trí thông minh nhân tạo)

Trong những năm gần đây, Python ngày càng trở nên phổ biến trong lĩnh vực Trí tuệ nhân tạo. Một trong những thách thức lớn nhất đối với các nhà phát triển AI là vấn đề “học sâu” (deep learning), nghĩa là khả năng học như con người. Ngày nay, “lập bản đồ thần kinh” là một kỹ thuật được sử dụng rộng rãi trong AI liên quan đến việc tạo ra các nhánh lớn phụ trách khả năng quyết định. Mỗi kết nối tượng trưng cho một nơron và một khớp thần kinh trong não. Khi áp dụng kỹ thuật này, các nhà nghiên cứu AI kỳ vọng sẽ tạo ra bản sao của bộ não có thể suy luận và thậm chí có khả năng sáng tạo như bộ não con người.

TensorFlow là một thư viện tài nguyên tuyệt vời cho Python và các ngôn ngữ lập trình khác. Mặc dù thư viện này chủ yếu được phát triển để sử dụng với Python, TensorFlow.js đã được phát hành cho JavaScript để phục vụ cho mục đích sử dụng học máy trên web. Nói cách khác, bạn có thể dùng JavaScript để thử nghiệm những thứ liên quan đến AI thông qua việc sử dụng TensorFlow.

Phần kết

Bọn mình mong bạn thích bài viết này và qua đây, có ý niệm rõ ràng hơn về những ngôn ngữ lập trình phù hợp với bản thân. Các ngôn ngữ lập trình như HTML, CSS và JavaScript là điểm khởi đầu lý tưởng, nhưng bạn vẫn sẽ tạo ra được nhiều sản phẩm hữu ích bằng những ngôn ngữ tuyệt vời, đa mục đích sử dụng như Python và C#.

Hãy chia sẻ vài dòng về động lực học tập và ngôn ngữ lập trình mà bạn đang học ở phần bình luận bên dưới nhé. Hẹn gặp lại các bạn trong các bài viết tiếp theo!