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

(Tiếp theo phần 2)

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

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

Nếu bạn đã biết một chút về giới lập trình thì hẳn cũng biết có được sự hỗ trợ của dev khác là quan trọng và hữu ích như thế nào, đặc biệt là khi bạn đang có kế hoạch tự học. Trở thành một phần trong cộng đồng hỗ trợ chắc chắn sẽ giúp cuộc sống lập trình của bạn trở nên dễ dàng hơn.

StackOverflow

StackOverflow cho đến nay đang là cộng đồng lớn nhất được các dev trên toàn thế giới sử dụng để giúp đỡ và tìm kiếm sự giúp đỡ từ dev khác. Vậy nên thông qua đó chúng ta sẽ kiểm tra được một ngôn ngữ lớn/phổ biến như thế nào trong cộng đồng ngôn ngữ lập trình cũng như cộng đồng hữu ích như thế nào với các ngôn ngữ khác nhau.

Độ phổ biến của ngôn ngữ

Dự trên số lượng người theo dõi (tag followers) trên StackOverflow, chúng ta có thể thấy được tổng quan độ phổ biến của một ngôn ngữ.

Thông qua kiểm tra xu hướng việc làm (số trước), chúng ta đã biết rằng dev Java và JavaScript đang có được nhu cầu cao nhất, nên cũng không có gì ngạc nhiên khi chúng cũng có số tag followers lớn nhất. JavaScript hiện nay đang là tag được sử dụng nhiều nhất trên StackOverflow, thay thế cho Java. (Thật thú vị khi Đại học Stanford gần đây cũng quyết định thay thế Java bằng JavaScript trong khoá lập trình giới thiệu).

Tỉ lệ trả lời trên StackOverflow

StackOverflow có một quy tắc bất thành văn đó là bạn phải diễn đạt câu hỏi một cách "chính xác", nếu không mọi người sẽ không trả lời bạn. Với suy nghĩ đó, hãy cùng nhìn nhanh xem câu hỏi của bạn sẽ được trả lời như thế nào với từng ngôn ngữ nhé.

Dựa trên những thông tin mà chúng ta đã có, mặc dù số lượng theo dõi C, SQL, và C++ có ít hơn nhưng có trên 60% các câu hỏi liên quan đến chúng đã được trả lời. Hẳn có người sẽ cho rằng, do C và C++ có tính chuyên môn cao hơn, những người hỏi đều là những người có kinh nghiệm lập trình phong phú nên họ sẽ có thể hỏi chính xác vấn đề muốn hỏi. Trong khi đó SQL lại không dùng để build.

Đáng chú ý là trên StackOverflow các kỹ sư Python và Ruby cũng rất tích cực hỗ trợ. Từ khi Python và Ruby trở thành ngôn ngữ được khuyến khích nhất cho người mới bắt đầu thì những câu hỏi liên quan đến hai ngôn ngữ này cũng nhiều lên trông thấy. Như chúng ta đã nói phía trên, người mới bắt đầu thường gặp vấn đề khi đưa ra câu hỏi một cách chính xác. Nếu giả định người mới khi đặt câu hỏi phần lớn sẽ không được trả lời, thì thật đáng ngạc nhiên khi có khoảng 60% lượng câu hỏi được trả lời ngay trong 30 ngày.

Ở mặt khác, PHP chắc chắn là ngôn ngữ được sử dụng rộng rãi nhất nhưng lại có tỉ lệ trả lời thấp nhất. Điều này có nghĩa là nhiều người đặt câu hỏi liên quan đến PHP nhưng lại không nhận được mấy câu trả lời.

GitHub

Một khi bạn đã bước vào giai đoạn phát triển, chắc bạn sẽ nhận ra tốt nhất là nên tận dụng những giải pháp có sẵn khi có thể. Những giải pháp có sẵn thông thường có thể lấy được từ open source, GitHub là phương pháp để bạn có thể lấy nó. User có thể vote sao cho các dự án họ thích, dự án nào càng nhiều sao thì chứng tỏ dự án đó càng hữu ích. Do đó, bằng việc kiểm tra dữ liệu từ GitHub, chúng ta còn có thể xác định một cách tương đối sự dễ dàng trong phát triển dự án của các loại ngôn ngữ khác nhau. Chúng ta cũng có thể thấy được một ngôn ngữ đang chuyển đổi công nghệ mới nhanh như thế nào. Dưới đây là một biểu đồ đơn giản để hình dung sự phân bố của các dự án GitHub phổ biến:

Rõ ràng JavaScript có các công cụ mới đáng hứa hẹn nhất, kể cả khi ta không tính đến tất cả các loại style-guides, tài nguyên học và các bài hướng dẫn. JavaScript được biết đến là một ngôn ngữ chuyển động cực kỳ nhanh với tốc độ biến đổi cao cho các frameworks và các công nghệ mới - đôi khi các dev có thể sẽ cảm thấy khó khăn để theo kịp với những đổi mới liên tục này.

Thêm vào đó, ngoài Node.js thì JavaScript đang được sử dụng nhiều nhất trong phát triển frontend. Vì vậy nó không trực tiếp “cạnh tranh” với các ngôn ngữ backend khác như Ruby, Python, Java và PHP. Với ý nghĩ đó, không có gì đáng ngạc nhiên khi có một khoảng cách lớn giữa JavaScript và các ngôn ngữ lập trình khác. Ruby và Objective-C, mặt khác, cũng có rất nhiều công cụ và tài nguyên cho phát triển. Chúng ta vừa thấy trong so sánh StackOverflow thì cả hai ngôn ngữ này đều không phổ biến như các ngôn ngữ khác như Java. Trái ngược với StackOverflow, nhìn chung các dev đều đã tìm thấy các dự án mã nguồn mở trong GitHub khá hữu ích. Dưới đây là tổng quan về số lượng kho GitHub cho các ngôn ngữ cụ thể:

Ngoài ra, hầu hết các dự án open source được viết bằng C/C++ lại không phải dùng cho phát triển C/C++ - chúng chỉ là các công cụ được viết nên để giúp phát triển nói chung (ví dụ, trình thông dịch Python phổ biến nhất là CPython, được viết bằng C). Như đã đề cập trước đó trong phần giới thiệu về ngôn ngữ lập trình, C/C++ chủ yếu được sử dụng để phát triển các ứng dụng hệ thống, do đó phải hiểu rằng các dự án open source trên GitHub là các công cụ hệ thống. Tuy nhiên, bạn có thể học được rất nhiều từ các dự án open source này.

Cuối cùng bất kể việc đang được sử dụng rộng rãi PHP lại đang chị chậm chân về phần resource có thể sử dụng

(còn tiếp)