Đâu là ngôn ngữ nên học cho người mới bắt đầu (phần 1)

Đây là bài viết được dịch từ blog của Codementor.

Giới thiệu

Nhu cầu đối với nguồn nhân lực STEM (khoa học, kỹ thuật, công nghệ, toán học) vô cùng lớn cùng với mức lương hậu hĩnh đã chẳng còn là điều mới mẻ. Số lượng tìm kiếm nhân lực online cho lĩnh vực phần mềm của Mỹ từ năm 2007 đến 2012 tăng nhanh gấp 3 lần so với các lĩnh vực khác. Theo Cục thống kê lao động Mỹ, việc làm liên quan đến phát triển phần mềm ước tính sẽ tăng 22% từ năm 2012~2022 với mức lương trung bình tại thời điểm tháng 5 năm 2016 là 100.080 USD cho software app developers.

Nếu bạn đang có ý định học lập trình thì chắc hẳn đang phân vân nên học ngôn ngữ nào. Hy vọng bài viết này sẽ đưa ra được những gợi ý cho bạn với các so sánh về mức lương, sự thông dụng, tính tiềm năng của các ngôn ngữ khác nhau.

Còn đây là một bài test thú vị giúp bạn chọn được ngôn ngữ phù hợp mà mình để học trong năm 2018 này.

Mục lục

1, Khái quát về ngôn ngữ lập trình

2, Cơ hội nghề nghiệp

3, Nguồn lực lập trình

4, Tương lai của từng ngôn ngữ lập trình

5, Kết luận

1 Khái quát về ngôn ngữ lập trình

Trước khi đi vào so sánh các ngôn ngữ lập trình, trước tiên cùng nhìn qua về các ngôn ngữ chúng ta sẽ so sánh nhé.

Ngôn ngữ lập trình động

Ngôn ngữ lập trình động nói chung dễ học hơn đối với phần lớn các bạn mới bắt đầu vì chúng thú vị và rất linh hoạt. Bạn có thể nhanh chóng dựng được một app từ scrach với một số ít dòng code, viết và xử lý theo cách mà bạn muốn mà không cần đến các quy tắc phức tạp. Ngôn ngữ lập trình động thường được dùng như ngôn ngữ tầng trên nên bạn chỉ cần ít thời gian để học chi tiết và cần nhiều thời gian hơn để hiểu bối cảnh của ngôn ngữ. Đây cũng chính là một trong những lý do khiến ngôn ngữ lập trình động phổ biến với người mới vì họ được khích lệ khi có thể xây dựng và thấy ngay được kết quả.

JavaScript

JavaScript (khác với Java) là ngôn ngữ kịch bản phía client chủ yếu dùng cho phát triển front-end. JavaScript tương thích với tất cả các trình duyệt, được sử dụng để tạo nên các ứng dụng web tương tác (interactive web apps) thông qua các thư viện như jQuery, các front-end frameworks như AngularJS, Ember.js, React, ... JavaScript còn được sử dụng như ngôn ngữ phía server thông qua Node.js platform. 2 năm trước Node.js vẫn còn khá non trẻ nhưng cộng đồng của nó nhanh chóng lớn mạnh, và giờ bạn có thể tìm được rất nhiều resources tại đây. Trong khi React native của Facebook cho phép bạn xây dựng được các ứng dụng native với JavaScript, bạn còn có thể xây dựng được các ứng dụng hybrid với JavaScript thông qua các frameworks như phonegap. Tuy nhiên JavaScript cũng được biết đến là ngôn ngữ khó vì nó là untyped, khó debug. Bên cạnh đó cũng có những typed version tĩnh như TypeScript của Microsoft hay JSX mà React sử dụng.

Ruby

Ruby là ngôn ngữ được phát triển để dev có thể làm việc hứng thú và hiệu quả. Ruby trở nên phổ biến với Ruby on Rails framework - một full-stack web framework tối ưu hóa cho lập trình hạnh phúc (programming happiness). Bạn có thể đọc Ruby như đọc tiếng Anh, và Rails thì cung cấp các tool giúp làm các task phát triển common dễ dàng hơn, nên nhiều lời khuyên cho rằng nên học Ruby như ngôn ngữ lập trình đầu tiên. Ruby phần lớn được sử dụng cho phát triển back-end, các site lớn như Airbnb, Shopify, Bloomberg, Slideshare và nhiều site khác được xây dựng bằng Ruby on Rails.

Python

Python là một gợi ý khác rất được khuyến khích cho người mới bắt đầu, nó là ngôn ngữ nhập môn phổ biến nhất tại các trường đại học hàng đầu Mỹ, được sử dụng khi xây dựng Destop app hay Web application với các tool tối ưu cho data mining. Thêm vào đó Python còn đặc biệt phổ biến trong các cộng đồng học thuật như tính toán khoa học (scientific computing), phân tích dữ liệu, tin sinh học. Google, Dropbox, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV, ... được xây dựng bằng Python.

PHP

PHP là ngôn ngữ kịch bản phía server side, được cho là ngôn ngữ thân thiện với người mới bắt đầu. Vì có thể dễ dàng khái quát hóa cái mà code sẽ làm nên PHP thường được lựa chọn để phát triển. Phần lớn các websites được xây dựng bằng PHP bởi nó được chuyên môn hóa cho mảng Web. Facebook, Wikipedia, Yahoo!, Tumblr, Wordpress, và nhiều site khác được xây dựng bằng PHP.

Ngôn ngữ lập trình tĩnh

Những ứng dụng được được xây dựng bằng ngôn ngữ dạng tĩnh Statically Typed được biết đến với khả năng dễ mở rộng, ổn định và dễ bảo trì. Với ngôn ngữ lập trình tĩnh, bạn có thể dễ dàng truy ra lỗi nhờ chức năng kiểm tra typing nghiêm ngặt, nhưng bạn sẽ phải dùng nhiều code hơn để xây dựng prototype. Các mobile app, game engine hay back-end cho doanh nghiệp thường được dùng ngôn ngữ lập trình tĩnh để phát triển.

Java

Java là ngôn ngữ có tính đa dụng, được sử dụng trong xây dựng Android app, destop app hay game. Java cũng thường được sử dụng như ngôn ngữ phía server trong phát triển back-end cho doanh nghiệp - 90% trong 500 doanh nghiệp sử dụng Java. Thêm vào đó framework Hadoop được sử dụng trong lưu và xử lý big data cũng được dựa trên Java, được dùng bởi các doanh nghiệp như Yahoo, Facebook, Amazon Web Services.

C

Ngôn ngữ C được coi là ngôn ngữ chung của system software và được sử dụng rất rộng rãi. C có ảnh hưởng đến hầu hết các loại ngôn ngữ tôi giới thiệu trong bài viết này, đặc biệt là Objective-C và C++. Vậy nên nếu bạn có hiểu biết về C thì việc học các ngôn ngữ phổ biến khác cũng không phải điều gì khó khăn. Tuy nhiên do cần đến code phức tạp để chạy những task đơn giản, nên sẽ khó khăn cho người mới bắt đầu khi lựa chọn ngôn ngữ này để học đầu tiên. Mặc dù có một điều chắc chắn là: những kiến thức về C sẽ là cứu cánh cho lập trình viên sau này.

Objective-C / Swift

(cho phát triển iOS)

Objective-C là ngôn ngữ được xây dựng dựa trên ngôn ngữ C, mặc dù có tính tĩnh nhưng có thể typing động. Swift của Apple là ngôn ngữ dạng tĩnh được cấu trúc để tương thích được với Objective-C, nhưng typing tĩnh khiến nó mạnh mẽ hơn, khó xảy ra lỗi. Lấy cảm hứng từ Python, Swift được thiết kế để các coder mới dễ học, và khắc phục được một số vấn đề của Objective-C.

C++

C++ là ngôn ngữ có sức ảnh hưởng được dựa trên C. Nó được cấu trúc để lập trình system software nhưng lại được sử dụng cho cả Game hay Game engine, Desktop app, Mobile app, Web app. Do C++ rất nhanh và mạnh nên ngay cả Facebook cũng đã phát triển một số component với performance tốt và độ tin cậy cao bằng ngôn ngữ này. Có rất nhiều những phần mềm như Adobe Systems, Amazon, Paypal, Chrome được xây dựng bằng C++. Cũng như C thì thông thường sẽ khá khó khắn khi người mới chọn học C++, vậy nên những bạn lầu đầu tiên học thì đừng ngại thảo luận với Meetups hay C++Codementor xem nhé.

C#

C# được phát triển và sử dụng cho framework .NET của Microsoft- chạy chủ yếu trên Microsoft Windows. C# đang được sử dụng trong phát triển Web, Game, và chủ yếu trong phát triển của Microsoft. Mặc dù trước đây Microsoft từng không được biết đến như cross-platform tương thích, nhưng Xamarin đã làm việc trên một open-source project có tên là Mono nhằm chuyển C# sang các platform khác và cung cấp những tool phát triển tốt hơn cho dev Linux. Gần đây bạn còn có thể dùng C# để xây dựng native mobile app cho iOS và Android thông qua Xamarin.

Others (SQL)

SQL hay Structured Query Language là ngôn ngữ truy vấn được dùng để kết nối với cơ sở dữ liệu. Mặc dùng SQL không thể xây dựng app nhưng nó được sử dụng để quản lý data trong các app sử dụng hệ thống quản lý cơ sở dữ liệu quan hệ (RDMS).

(còn tiếp)