Năm cũ vừa hết, năm mới lại qua. Đầu năm mới, mình viết bài này để chia sẻ về những ngôn ngữ lập trình đáng học trong năm 2018 nhé.
Trong số các ngôn ngữ lập trình này, thứ nào cũng có cái hay cái mạnh riêng nên mỗi người sẽ có cái nhìn khác nhau. Do vậy, trong bài này mình sẽ viết khách quan hết mức có thể!
Trong bài viết này, các ngôn ngữ được mình lựa chọn, đánh giá xếp hạng theo sức mạnh của ngôn ngữ, độ phổ biến, nhu cầu tuyển dụng, khả năng tìm việc v..v nha,
JavaScript
Năm 2017 vừa qua là một năm khá huy hoàng cho JavaScript. Chắc hẳn không chỉ mình mà nhiều blogger và các trang web về programming chắc cũng đồng ý JavaScript là một ngôn ngữ mạnh mẽ và đáng học nhất hiện nay.
Cộng đồng JavaScript hiện nay đang rất sôi động. Các library/framework cho JavaScript cả front-end lẫn back-end đều lũ lượt ra đời như nấm sau mưa.
JS bây giờ viết được web front-end, viết được server back-end, viết được app di động, viết được chat bot, viết được code Adruino. Gần đây có LSK blockchain cho phép ta code bằng JavaScript đấy. (Hôm sau đấy mình sẽ viết riêng một bài về những thứ JS có thể làm).
Nói chung là, trừ khi bạn làm hệ thống nhún, làm game hoặc mobile thì không cần JavaScript. Đã làm web là bắt buộc phải học JavaScript để làm front-end, không thể né tránh JavaScript đâu nhé!
Tuy nhiên, có một điều nên lưu ý là bản chất ngôn ngữ JavaScript rất sida và có nhiều chỗ khiến cả những developer lâu năm cũng điên đầu với nó. Có thể nói nó là một ngôn ngữ “easy to learn, hard to master”, dễ học nhưng khó giỏi.
Vì vậy nên nếu mới học lập trình thì đừng học JavaScript vội nhé. Khi đã học qua C,C++, Java,C# , hiểu sơ các khái niệm lập trình cơ bản rồi thì qua cũng chưa muộn. Ngoài ra, muốn nắm vững JavaScript, hãy xem lại series JavaScript sida của mình nhé.
Java
Nếu ví JavaScript là thanh niên trai tráng 6 múi tươi trẻ hót hòn họt gì Java là cụ già gân, già mà vẫn còn khoẻ còn dai.
Java không nổi cũng không hot như JavaScript, cũng không được nhiều lập trình viên khen ngợi hay ưa thích. Nhưng nó vẫn là một trong những ngôn ngữ có số lượng công việc lẫn số lượng lập trình viên đông đảo nhất.
Mặc dù nhiều người vẫn chê Java là ngôn ngữ dài dòng, lôi thôi, nhưng vì nó tường minh, lại có nhiều thư viện hỗ trợ free nên nó vẫn được các công ty lớn ưa dùng.
Đa phần các startup thích xây dựng sản phẩm bằng NodeJS (JavaScript) hoặc Ruby on Rail (Ruby), tuy nhiên các doanh nghiệp vẫn chuộng Java để viết ERP và các ứng dụng enterprise hơn. Chưa kể Java còn làm được app di động nữa.
Nếu mới học lập trình, mình khuyên các bạn nên học Java. Đây là một ngôn ngữ trong sáng, tường minh, dễ học dễ viết. Học xong tà tà ra trường cũng không khó xin việc vì các công ty nước ngoài lẫn trong nước đều tuyển Java rất nhiều.
C#
C# là ngôn ngữ ưa thích của mình. Ngày xửa ngày xưa, nó ăn theo Java, nhưng càng về những phiên bản sau, C# lại càng mạnh mẽ hơn.
C# cũng code được khá nhiều thứ hay ho. Engine Unity hỗ trợ C# nên một số game cũng viết bằng C# luôn. Hoặc dùng Xamarin thì có thể code app di động luôn.
Ngoài ra, bản chất ngôn ngữ cũng có nhiều thứ thú vị như async/await, LINQ, functional programming… nên khi viết code rất thoải mái. C# cũng được các công ty lớn ưu chuộng vì code tường minh, dễ đọc, thư viện hỗ trợ tận răng. Số lượng việc làm C# chỉ ít hơn Java một xíu nên học cũng không lo thất nghiệp.
Còn một điểm khá quan trọng nữa! Ngày xưa C# chỉ chạy được trên Windows, lại phải tốn tiền mua bản quyền MS SQL, Visual Studio nên nhiều người không thích.
Gần đây khi .NET Core ra đời, C# đã có thể chạy trên Mac, Ubuntu, Linux. Code thì dùng VS Community hoặc VS Code, free mà vẫn code bay tóc. Hôm trước mình vừa deploy project C# trên con Ubuntu Digital Ocean 500MB RAM, chạy vô tư phà phà luôn.
Do đó, nếu phải lựa chọn giữa Java và C# thì… chọn cái nào cũng sung sướng như nhau cả, khỏi cần suy nghĩ nhé.
Python
Đây là một ngôn ngữ khá hay ho, cú pháp ngắn gọn tường minh , dễ đọc dễ viết (Không có {} dài dòng như Java, C#) nên các bạn mới làm quen với lập trình rất nên học. Các trường Đại Học nước ngoài cũng dùng ngôn ngữ này làm ngôn ngữ nhập môn lập trình.
Do cú pháp ngắn gọn, có nhiều thư viện hỗ trợ nên python thuường dược dùng để viết các script tự động hoá nho nhỏ, viết nhanh chạy nhanh.
Tuy nhiên, điểm mạnh của Python là nó có nhiều thư viện xử lý số liệu, đồ thị, ma trận rất mạnh mẽ (matplotlib, numpy), thế nên các thư viện machine learning, data mining cũng được viết bằng Python luôn. Điểm hình là tensorflow, thư viện vô cùng bá đạo của Google.
Do vậy, nếu muốn đi theo con đường Machine Learning hay Data Scientist thì các bạn nên học Python từ bây giờ đi nhé.
PHP
Cá nhân mình không thích PHP vì bản thân ngôn ngữ nó sida nhưng phải thừa nhận nó có khá nhiều ưu điểm.
- PHP dễ học, chỉ học khoảng 1,2 tuần là viết được web (code như shit hoặc nhiều lỗ hổng bảo mật kệ, chạy được là ok).
- PHP dễ kiếm server Linux để deploy code.
- Với các CMS mạnh mẽ như WordPress, Zoomla, PHP vô cùng phù hợp để làm các trang tin tức, web bán hàng. So sách về thời gian hoàn thành + giá cả là đủ cho C# và Java hít khói dài dài.
- Nhu cầu tuyển dụng cũng cao. Xét về thị trường việc làm thì C# và Java cũng ngang ngang PHP chút. Còn về freelance thì lượng công việc PHP cao hơn C# và Java khá nhiều, phần lớn là các project như viết theme, viết plugin cho các site nhỏ lẻ.
Tuy bản thân mình ghét PHP (Có nhiều điều để ghét, hôm nào sẽ xả sau) nhưng các framework PHP như CodeIgniter, Symphony cũng khá mạnh và có rất nhiều điều hay ho cho các bạn học hỏi.
Tuy nhiên, lời khuyên chân thành của mình là nếu mới học thì dừng nên học PHP nhé! Nếu không học bài bản, có người chỉ dạy mà làm theo hướng dẫn trên mạng thì sẽ tạo nhiều thói quen xấu rất khó bỏ (Viết code HTML PHP chung 1 file, không phân thách module, …) đấy.
Các ngôn ngữ khác
Trong bài viết này, mình chỉ đề cập tới top 5 ngôn ngữ nên học cho nó ngắn gọn.
Ngoài 5 ngôn ngữ này ra, còn một số ngôn ngữ hiếm gặp hơn như Kotlin (Viết app Android), Swift (App iOS), Ruby (với framework Ruby on Rails), Go (Viết back-end high performance), Scala (Viết back-end và Data Mining).
Các ngôn ngữ này đều có cái hay riêng, công việc tuy không quá nhiều nhưng lương không hề thấp nhe.
Còn C, C++ ấy à? Đây là hai ngôn ngữ mạnh mẽ, được dùng cũng khá nhiều nhưng hầu như chỉ được dùng làm game, làm nhúng, viết driver hoặc OS.
Hai ngôn ngữ này khó học, code cũng cực, đòi hỏi trình cao nên code trâu, tầm senior thì lương 2-3k hoặc hơn là bình thường. Tuy vậy, ở Việt Nam số lượng công ty tuyển ko nhiều bằng các ngôn ngữ trên đâu nhé!
Kết
Bài viết cũng dài rồi, mình kết thúc tại đây thôi! Chốt lại là, nếu bạn vẫn còn đang phân vân không biết nên học ngôn ngữ gì thì cứ học đại JavaScript và 1 trong 4 ngôn ngữ còn lại nhé! Ít nhiều gì cũng không lo thất nghiệp đâu.
Hoặc nếu bạn cảm thấy trong số 5 ngôn ngữ này không phù hợp với mình thì có thể chọn theo phong thủy như bảng dưới đây nha. Đã có nhiều người làm theo và thành công rồi đấy.
P/S: Để theo dõi bài viết trên Tôi Đi Code Dạo, nhớ Subscribe Chat Bot của tụi mình nha. Bot của Code Dạo sẽ gửi bạn những bài viết cực kì hay ho về kĩ năng mềm và cứng, kinh nghiệm trong ngành vào thứ 4 hàng tuần nhé!
Bản thân là PHP dev và cũng đồng ý với Hoàng là người mới bắt đầu không nên học PHP. Tốt nhất là nên học bài bản một ngôn ngữ static type nào đó như Java, C# rồi chuyển sang PHP cũng chưa muộn. Nếu không thì… thốn lắm =))
LikeLiked by 1 person
Bác làm e hoang mang thế, đang học php thấy hay mà ta 😁😁
LikeLiked by 1 person
Cho Mình hỏi là hiện tại mình đang học về AgularJs, thì có nên học trước về JS trước không?
LikeLiked by 4 people
Mình không giỏi frontend lắm, chỉ biết AngularJS dùng typescript, nó là ngôn ngữ được transpile sang JS. Vì vậy bạn không cần học JS trước cũng được, nhưng nếu biết căn bản JS rồi thì tốt hơn.
LikeLiked by 2 people
Nên bạn nhé, bản chất nó vẫn là javascript
LikeLike
Theo mình nghĩ là nên học trước JS.
Vì trong thời đại mà các JavaScript Framework mọc lên như nấm sau mưa thế này thì rất có thể sau này bạn sẽ cần phải học ReactJS, VueJS,…
Mà khi bạn nắm vững JS rồi, việc học các Framework sẽ đơn giản hơn rất nhiều.
LikeLike
Cũng không khó để dự đoán top 5 ngôn ngữ này.
LikeLiked by 1 person
Anh Hoàng cho e hỏi, e muốn học js từ cơ bản đến nâng cao thì nên bắt đầu như thế nào ạ
LikeLike
Trong câu hỏi đã có câu trả lời. Bạn có thể học từ cơ bản, sau đó mới nâng cao
LikeLike
những người hỏi như bạn thường k bao giờ thành công trong con đường học tập
LikeLike
Nặng lời thế. câu trả lời mang tính chất dìm hàng.
LikeLike
“Nếu ví JavaScript là thanh niên trai tráng 6 múi tươi trẻ hót hòn họt gì Java là cụ già gân, già mà vẫn còn khoẻ còn dai.” – e thích cái ví dụ của a :))
LikeLike
khỏe như tokuda luôn ấy ạ .Cơ mà code tường mình thật , mỗi tội lằng nhằng lắm cấu hình
LikeLike
Bài viết quá hay, cách viết thì gần gũi dễ hiểu. Mình rất thích bài này
P/s: Java vẫn luôn là người bạn đồng hành của mình trên khắp các mặt trận và tương lai cũng vậy
LikeLiked by 1 person
“Blockchaint” thừa chữ “t”
LikeLike
Đã sửa, cảm ơn bạn nhé 😉
LikeLike
anh có thể 1 bài về debug trong lập trình được không ạ
LikeLike
Ừm để anh xem thử, e đọc bài này trước nhé
https://toidicodedao.com/2016/07/18/cao-thu-fix-bug/
LikeLike
Bài viết rất hay, e cũng là lập trình viên C# nhưng hệ điều hành e đang dùng là Ubuntu 16.04 và server trên vultr là Debian 9. Ngoài 2 editor a Hoàng có nêu ở bài viết ra e xin giới thiệu 1 bộ sản phẩm IDE cho code đó là Jetbrains, hiện tại e đang dùng Jetbrain Rider để viết .Net Core 2.0 và ASP.Net MVC trên Ubuntu. Mọi người có thể dùng License server trên mạng nếu không đủ chi phí. :D. Nếu design có Abobe thì code có Jetbrains (full combo).
P/s: Một lần nữa cảm ơn tác giả.
LikeLike
Tensorflow theo mình biết chỉ cung cấp Interface cho Python thôi, còn lại là được viết trên C/C++ .
LikeLike
Ahihi vậy để mình update nhé 😉
LikeLike
E thấy bài viết khá hay, e thì đang học về java, nhung em thấy hơi lo do nhu cầu việc làm thì tương đối nhưng đòi hỏi trình độ cao còn về phần Android thì nó dần bị thay thế bởi kotlin rồi, anh có thể chia sẻ thêm không?
LikeLike
c# có chạy được trên androi hay ios ko ạ
LikeLike
Anh có bài viết nào về những quyển sách hay nên đọc khi học java không? Từ nhập môn đến nâng cao ấy. Em học từ community college transfer lên State University. Mà chua cái là thằng States nó dùng Java trong khi em học ở community lại là C++.
LikeLike
Em đọc bên này nhé
https://codeaholicguy.com/2016/02/23/chia-se-mot-so-sach-hay-ve-java/
LikeLiked by 2 people
Mình thì vẫn đang trung thành Java!
LikeLike
Viễn đã học và làm với Java, C#, Gosu. Đang phân vân việc học thêm PHP hay Python. Mình đang có tham vọng học công nghệ, ngôn ngữ lập trình để áp dụng và bước song song cùng với con đường kinh doanh(đã bắt đầu kinh doanh rồi). Mình muốn tự xây dựng và phát triển web, quảng cáo,… bằng tvốn kiến thức mình đã học và sẽ học.
Chúc mọi người ngày mới vui vẻ! 🙂
LikeLike
Học python đi anh. Python vừa làm web vừa làm data science luôn. Kinh tế thì ứng dụng data science tốt (phân tích hành vi khách hàng, thống kê,…)
LikeLiked by 1 person
Mình từ đó giờ lập trình bên C# , nhưng mạng Kim thì thấy hợp với JS , Python và Objective-C . Liệu có nên học thêm 3 ngôn ngữ đó bạn? 🙂
LikeLike
các bạn ơi cho mình hỏi làm thế nào để có 1 sidebar widgets bên phải màn hình như trang của admin vậy chỉ mình với cảm ơn các bạn nhiều
LikeLiked by 1 person
Mấy chú cứ yên tâm mà học PHP, PHP rất mạnh và linh hoạt, mình trở thành tỉ phú cũng nhờ vào PHP cả, chỉ cần giỏi thì sử dụng PHP càng mạnh nữa, các bạn nên nhớ lấy câu “Không có võ công vô địch thiên hạ, chỉ có người dùng võ công để vô địch thiên hạ” :))
LikeLike
si đa nhưng chưa đến giai đoạn AIDS nên vẫn cứ là phải chọc chọc chọc
LikeLike
e mang thuy ma hoc java co dc k :)). Tai e hoc o Canada ngta day C# vs Java
LikeLike
Em bắt đầu với C thì anh cói lời khuyên gì không ạ 🙂
LikeLike
Tớ đang nhận và làm các dự án nhỏ lẻ như: website, phần mềm kế toán
-quản lý đơn giản, nhận thấy PHP cùng một số Framework đang rất phù hợp về thời gian cũng như chi phí triển khai. Nghe bạn chê Php dử quá cũng hơi thốn,kkk
Tớ cũng muốn học Java vì thấy nó rất phổ biến, nhưng học xong nếu không join vào công ty thì không biết tìm dự án ở đâu ra?!
LikeLike
sếp ơi cho mình hỏi là C# có nghiên cưu được về máy học tri tuế nhân tạo các kiểu không nhỉ. và đã có từng làm vc đó chưa ak
LikeLike
Cái lựa chọn code theo phong thủy kia là đùa hay thật vậy a Hoàng =))
LikeLike
Theo mình, bạn nghĩ nó là thật hay đùa thì nó đều đúng là thế, riêng mình, mình thấy ý của a Hoàng rất hay và đã chọn nodejs 😀
LikeLike
Anh cho em hỏi những thói quen xấu khó bỏ của những người mới học PHP không có bài bản và người chỉ dạy là gì, a có thể nói qua sơ lược một chút được không!
LikeLike