Nên học ngôn ngữ lập trình nào?

346

Chào các bạn,

Từ hôm ra mắt tính năng “Gửi câu hỏi“, mình có nhận được một số câu hỏi dạng như:

  • Em hiện đang là học sinh lớp 12, em rất thích lập trình nhưng không biết nên theo học ngôn ngữ lập trình nào?
  • Em nên chọn lập trình web hay lập trình mobile?
  • Em học lập trình web thì nên học php hay nodejs?

Trên là các câu hỏi có hình thức khác nhau, nhưng có nội dung thì tương tự nhau – các bạn đều không biết bản thân nên lựa chọn công nghệ nào hay ngôn ngữ lập trình nào. Nên thay vì trả lời tất cả các câu hỏi trên, thì mình sẽ đi trả lời cho câu hỏi Nên học ngôn ngữ lập trình nào?. Bởi vì chỉ cần trả lời được câu hỏi này, thì các câu hỏi trên cũng được làm rõ.

I. Tại sao bạn lại phân vân?

Trước khi trả lời câu hỏi Nên học ngôn ngữ lập trình nào, mình muốn hỏi các bạn một câu trước:

Tại sao các bạn lại phân vân?

Bạn phân vân có phải vì một trong số lý do này:

  • Lý do 1: Bạn đã có câu trả lời rồi, nhưng vẫn muốn hỏi để xem câu trả lời có giống như bạn nghĩ không?
  • Lý do 2: Bạn chưa bao giờ học lập trình, và bạn sợ sẽ học phải “thứ ngôn ngữ” chẳng ai thèm quan tâm.
  • Lý do 3: Thật lòng thì bạn cũng chẳng muốn học lập trình lắm, nhưng câu trả lời “cực kỳ thuyết phục” biết đâu sẽ cho bạn thêm động lực.
  • Lý do 4: Bạn thật sự rất thích ngôn ngữ này, nhưng thấy phần lớn mọi người không thích nó giống bạn, bạn chỉ đang tìm kiếm đồng minh.

Trên là 4 lý do phổ biến nhất mà mình từng gặp ở những bạn đang phân vân không biết nên học ngôn ngữ lập trình nào. Bạn hãy chọn một lý do mà bạn cho rằng nó chính là điểm mấu chốt khiến bạn gửi câu hỏi tới Phambinh.net. Nếu lý do của bạn không nằm trong số trên, thì hãy comment cho mình nhé. Bởi với mỗi lý do, mình sẽ gửi lại cho bạn một lời khuyên.

II. Lời khuyên để bạn biết cách chọn ngôn ngữ lập trình phù hợp

2.1 Nếu lý do của bạn là 1

Bạn đã có câu trả lời rồi, nhưng vẫn muốn hỏi để xem câu trả lời có giống như bạn nghĩ không?

Nếu đây là lý do của bạn, thì mình khuyên bạn nên học ngay và luôn ngôn ngữ đó đi chứ đừng mất thời gian tìm kiếm hay hỏi ý kiến của ai cả – kể cả mình. Bởi suy cho cùng, mình không phải là bạn, không hiểu hoàn cảnh, sở thích của bạn. Lời khuyên mình đưa ra chủ yếu dựa vào hiểu biểu của của mình về thị trường lập trình hiện nay chứ không căn cứ thêm vào đâu cả.

Nếu may mắn, mình khuyên bạn nên học đúng ngôn ngữ bạn yêu thích. Nhưng nếu ngược lại thì sao? Một là bạn sẽ nghĩ rằng mình chẳng hiểu biết gì cả, cái ngôn ngữ X bạn đang thích tốt thế kia mà lại khuyên nên học ngôn ngữ Y này. Hai là bạn sẽ tiếp tục phân vân và đi tìm lời khuyên ở một chỗ khác.

Vì vậy thay vì lãng phí thời gian chỉ để tìm lý do, thì hãy cứ “học đại” đi. Có khi cũng bằng số thời gian bạn đi hỏi, thì bạn đã học được thêm một công nghệ mới rồi.

2.2 Nếu lý do của bạn là 2

Bạn chưa bao giờ học lập trình, và bạn sợ sẽ học phải “thứ ngôn ngữ” chẳng ai thèm quan tâm.

Đây là một trong những lý do phổ biến nhất. Nhưng cũng dễ hiểu thôi, tâm lý chung của tất cả mọi người trước khi trải nghiệm cái mới đều thế mà, giống như việc muốn học Đại học nhưng lại không biết chọn trường nào, có tiền để mua xe nhưng không biết nên mua xe nào,…

Tuy nhiên có một điều đặc biệt, đó là tới 96,69% các bạn hỏi câu này đều… chưa bao giờ học lập trình. Vì chưa bao giờ học, nên các bạn ý thường có suy nghĩ “Đã học thì phải chọn ngôn ngữ tốt nhất, được nhiều người quan tâm nhất, lương cao nhất mà học cho bõ chứ không nên phí thời gian để học một ngôn ngữ không có tương lai“. Suy nghĩ cẩn thận như vậy kể ra cũng tốt, nhưng lại không cần thiết trong trường hợp này.

Nếu bạn chưa bao giờ học lập trình, hay lập trình còn non tay. Thì mình khuyên bạn không nên đặt nặng vấn đề nên học ngôn ngữ lập trình nào tại thời điểm này. Bạn có thể chọn bất kỳ một trong những ngôn ngữ phổ biến hiện nay để học như PHP, JavaScript, C++, C#, Java mà không cần phải bận tâm tới việc nó có được ai quan tâm hay không. Bởi:

  • Thứ nhất: Những ngôn ngữ lập trình kể trên đều được rất nhiều người quan tâm, cơ hội việc làm cũng lớn, lương cũng same same nhau. Trong vòng vài năm tới chắc vẫn chưa lỗi thời.
  • Thứ hai: Trong trường hợp xấu nhất là một trong những ngôn ngữ lập trình bạn chọn bị lỗi thời, chẳng ai thèm quan tâm nữa thì cũng không lãng phí, bởi bạn vẫn học được nhiều thứ từ nó mà. Ít nhất nó cũng giúp bạn từ một người vốn chẳng biết gì về lập trình trở thành một lập trình viên. Chưa kể các ngôn ngữ lập trình đều giống nhau khoảng 60 – 70%, học được một ngôn ngữ rồi, thì sợ gì học ngôn ngữ thứ hai, thứ ba.

Đừng tốn nhiều thời gian để tìm hiểu nên học ngôn ngữ lập trình nào khi bạn còn chưa lập trình bao giờ – cái gì chứ riêng nghành lập trình là như vậy.

Mình nhắc lại nhé, nếu chưa biết gì thì cứ chọn bừa một trong số mấy thằng PHP, JavaScript, C++, C#, Java mà học, không phải lo đâu.

2.3 Nếu lý do của bạn là 3

Thật lòng thì bạn cũng chẳng muốn học lập trình lắm, nhưng câu trả lời “cực kỳ thuyết phục” biết đâu sẽ cho bạn thêm động lực.

Nếu đây là lý do, thì mình khuyên bạn nên tìm một bài viết về động lực để đọc thì tốt hơn. Bởi các ngôn ngữ lập trình đều củ chuối và nhàm chán như nhau hết thôi. Chưa kể mình không thể giúp bạn duy trì động lực mãi được.

>> Đọc thêm: Động lực để trở thành một developer

>> Đọc thêm: Tin tuyển dụng nghìn đô yêu cầu gì ở các developer

2.4 Nếu lý do của bạn là 4

Bạn thật sự rất thích ngôn ngữ này, nhưng thấy phần lớn mọi người không thích nó giống bạn, bạn chỉ đang tìm kiếm đồng minh.

Đây cũng là một lý do phổ biến. Như mình từng tư vấn cho nhiều bạn học PHP để lập trình web, các bạn ý cũng có vẻ thích phương án này vì PHP dễ học. Nhưng khoảng một thời gian sau thì mình lại nhận được câu hỏi dạng như “Anh ơi, em thấy người ta giờ toàn làm web bằng NodeJs, em có nên chuyển sang NodeJs không”, hay “Em thấy NodeJs chạy nhanh hơn PHP, em có nên chuyển qua học NodeJs không”,… Về cơ bản, các bạn ý vốn vẫn hài lòng với ngôn ngữ hiện tại, nhưng lại mắc suy nghĩ “đứng núi này trông núi nọ”, “rau nhà hàng xóm luôn xanh hơn rau nhà mình”.

Nếu đây là lý do của bạn, thì mình khuyên bạn không nên chuyển sang học ngôn ngữ mới, mà nên tiếp tục học ngôn ngữ lập trình mà bạn thích. Bởi bạn thích mới là cái quan trọng, chỉ có thích mới khiến bạn miệt mài làm việc với nó, chỉ có thích mới khiến bạn có động lực tìm hiểu về nó,… Hơn nữa, ngôn ngữ lập trình chỉ là công cụ giúp bạn tạo ra phần mềm. Chừng nào bạn mà cảm thấy với ngôn ngữ hiện tại không còn đáp ứng được nhu cầu công việc, thì lúc đó mới nên đổi. Chứ không phải vì người khác cho rằng nó không tốt thì bạn đổi.


III. Chọn ngôn ngữ lập trình theo…

Nội dung trên có khiến bạn cảm thấy hụt hẫng? Bởi mình biết phần lớn những bạn vào đây đọc sẽ mong muốn nhận được lời khuyên nên học cụ thể ngôn ngữ lập trình nào, hoặc ít nhất cũng muốn nhìn thấy bảng xếp hạng của các các ngôn ngữ lập trình hiện nay. Vì vậy mà mình có thêm mục này, để các bạn có thêm góc nhìn.

3.1 Chọn theo các ông lớn công nghệ

Nếu bạn tin các ông lớn là những người luôn đi đầu về công nghệ, thì có thể tham mục sau để biết cách chọn ngôn ngữ lập trình phù hợp.

  • Youtube: JavaScript, C, C++, Python, Java, Go
  • Google: JavaScript, C, C++, Python, Java, Go
  • Yahoo: JavaScript, PHP
  • Amazon: JavaScript, ASP.NET
  • Wikipedia: JavaScript, PHP, Hack
  • eBay: JavaScript, Django (Python), Erlang
  • MSN: JavaScript, ASP.NET
  • Twitter: JavaScript, C++, Java, Scala, Ruby on Rails
  • Facebook: JavaScript, Hack, PHP, Python, C++, Java, Erlang, D, Xhp, Haskell

Nhận xét một chút thì JavaScript được sử dụng nhiều nhất do mấy phần mềm trên đều có mặt trên phiên bản web, mà web thì kiểu gì cũng dùng JavaScript (client). Tiếp theo là những cái tên như Python, Java, PHP, C++ cũng có vẻ được sử dụng nhiều.

3.2 Chọn theo độ phổ biến

Nếu bạn muốn chọn ngôn ngữ lập trình theo độ phổ biến, thì mục này sẽ giúp bạn có lựa chọn phù hợp.

Top phổ biến nhất trên thế giới

Theo thống kê của TIOBE Index, dựa trên số lượt tìm kiếm trên các công cụ như Google, Youtube, Bing, Yahoo,… dựa trên số lượng lập trình viên, dựa các khóa học lập trình và một số bên thứ ba khác thì dưới đây là bảng xếp hạng độ bổ biến của các ngôn ngữ lập trình vào tháng 4/2019.

Chỉ số cộng đồng lập trình TIOBE là thước đo mức độ phổ biến của các ngôn ngữ lập trình được tạo ra và duy trì bởi Công ty TIOBE có trụ sở tại Eindhoven, Hà Lan.

Lưu ý: đánh giá dưới đây không thể hiện đâu là ngôn ngữ lập trình tốt nhất, mà chỉ thể hiện đâu là ngôn ngữ lập trình phổ biến nhất.

T4 2019Ngôn ngữ lập trình% sử dụng
1Java15.035%
2C14.076%
3C++8.838%
4Python8.166%
5Visual Basic .NET5.795%
6C#3.515%
7JavaScript2.507%
8SQL2.272%
9PHP2.239%
10Assembly language1.710%
11Objective-C1.505%
12MATLAB1.285%
13Ruby1.277%
14Perl1.269%
15Delphi/Object Pascal1.264%
16R1.181%
17Visual Basic1.060%
18Go1.009%
19Swift0.978%
20Groovy0.932%

Top phổ biến nhất tại Việt Nam

Mình không tìm thấy một tài liệu thống kê nào nào cụ thể và uy tín về các ngôn ngữ lập trình phổ biến tại Việt Nam cả, nên mục này mình tự tổng hợp từ các website tuyển dụng.

TTNgôn ngữSố lượng tin tuyển dụngTỷ lệ
1Java88 tin29.43%
2PHP58 tin19.40%
3JavaScript51 tin17.06%
4C#38 tin12.71%
5Python29 tin9.70%
6C++19 tin6.35%
7C10 tin3.34%
8Swift6 tin2.01%

Mình viết bài này vào thời điểm cuối năm, nên số lượng tin tuyển dụng cũng không nhiều. Nhưng tỷ lệ thì vẫn thể hiện chính xác nhé.

3.3 Chọn theo môi trường sản phẩm chạy

Nếu bạn chọn ngôn ngữ lập trình theo môi trường chạy của sản phẩm, thì dưới đây là gợi ý cho bạn.

  • Lập trình web – backend: PHP, JavaScript (NodeJS), Ruby, Python, ASP.NET, Java
  • Lập trình web – frontend: JavaScript.
  • Lập trình mobile: Java (Android), JavaScript (React Native), Swift.
  • Lập trình ứng dụng cho máy tính: C, C++, C#, Java, Swift, JavaScript.

Lưu ý: Không có chuyện lập trình web sẽ hơn lập trình mobile, hay lập trình ứng dụng cho máy tính sẽ hơn lập trình web. Tất cả chúng đều có cơ hội việc làm, cơ hội phát triển và đủ thử thách dành cho bạn.

3.4 Chọn theo độ từ dễ tới khó

Phần này là ý kiến chủ quan của mình, dựa trên sự hiểu biết của mình về các ngôn ngữ lập trình:

  • Dễ nhất: PHP, JavaScript, Python
  • Dễ thứ 2: Java, C#
  • Dễ thứ 3: C/C++

Các ngôn ngữ lập trình còn lại thì mình không rõ, do chưa code bao giờ. Rất mong bạn nào đó có thể giúp mình hoàn thiện mục này tốt hơn.

IV. Lời kết

Việc chọn ngôn ngữ lập trình để học thường được các bạn “mới cân nhắc kỹ, thậm chí kỹ tới mức nghĩ 1, 2… năm vẫn chưa nghĩ ra (không hề đùa nhé, nhiều bạn sinh viên IT năm cuối vẫn không biết mình thích code cái gì). Vì vậy thay vì cứ cân đo đóng đếm quá lâu, thì bạn nên hành động ngay và luôn. Nếu thật sự không biết chọn gì, thì cứ chọn bừa mấy ngôn ngữ lập trình top thế giới hay top Việt Nam mà học, đảm bảo bạn sẽ không thất nghiệp đâu mà sợ.

Nhưng có điều này bạn nên biết, cho dù ngôn ngữ lập trình bạn chọn để học học được mệnh danh là dễ học nhất, dễ hiểu nhất thì nó cũng vẫn đủ khó đối với một người mới bắt đầu. Bởi tuy được coi là dễ, nhưng cũng không dễ tới mức “như ăn kẹo”, bạn vẫn cần phải có một sự nỗ lực và tập trung nhất định.

Chúc bạn có một sự lựa chọn đúng đắn. Hẹn gặp lại trong những bài viết lần sau.

À nếu bạn có câu hỏi gì, thì đừng quên gửi câu hỏi tới phambinh.net nhé.