Đây là câu hỏi của rất nhiều bạn mới bước vào con đường lập trình viên, tại các group về lập trình thì tôi thấy khá nhiều về câu hỏi này nên hôm nay tôi sẽ viết bài chia sẻ về vấn đề này.
Đầu tiên bạn phải xác định được bạn muốn làm về gì, bởi vì phạm vi lập trình rất là nhiều lĩnh vực như web, mobile, desktop app, lập trình nhúng, lập trình game… Và sau khi chọn được lĩnh vực mà mình muốn đi thì bạn sẽ phải bắt đầu chọn ngôn ngữ lập trình để xây dựng lĩnh vực của bạn. Để chọn được lĩnh vực mà bạn muốn theo đuổi thì đây cũng là một câu hỏi khó đối với những bạn chưa biết gì về lập trình, khi tôi còn là sinh viên thì tôi cũng thắc mắc về hướng đi của mình, lĩnh vực của tôi cũng là vô tình mà tôi chọn nó mà thôi, nhưng đối với các bạn thì hãy xác định trước lĩnh vực của mình. Hãy suy nghĩ về những lĩnh vực web, mobile, desktop app. Bạn cảm thấy mình thích thú về lĩnh vực nào, đam mê về cái nào thì hãy chọn nó, chọn cái nào cũng đều làm việc được, vì vậy hãy chọn theo đam mê nhé.
Để tìm được đam mê của mình thì các bạn phải biết sơ qua về làm web là làm gì, mobile là làm gì và desktop app là làm gì, thì hôm nay tôi sẽ nói sơ qua về những cái này cho mọi người, để mọi người có thể biết được và tìm hiểu nhé.
* Lập trình web là gì?
Lập trình web đơn giản là chúng ta sẽ tạo ra những trang web với những hiệu ứng sinh động, những trang web màu mè, những trang web bán hàng, những trang web tin tức, những trang web lưu trữ video, hình ảnh của bạn…Và còn rất nhiều những trang web khác nữa.
* Lập trình mobile là gì?
Như các bạn đã biết thì những dòng smart phone hiện nay được chia ra làm hai hệ điều hành đó là android và iOS. Lập trình mobile là việc chúng ta xây dựng tạo ra những ứng dụng chạy trên những thiết bị đó. Ví dụ như app facebook, tiki, lazada trên thiết bị điện thoại của chúng ta.
* Lập trình desktop app là gì?
Đó là ban sẽ tạo ra các ứng dụng chạy trên windows hoặc linux, điển hình là những ứng dụng như là zalo window, skype window, ứng dụng quản lý bệnh viện, ứng dụng quản lý điểm sinh viên…
* Lập trình nhúng là gì?
Lập trình nhúng là cách mà một chương trình điều khiển thiết bị nhỏ nhất như đèn LED, đồ chơi điện tử, … hoặc là một phần trong các hệ thống lớn như xe con, đèn giao thông, dây chuyền lắp ráp trong nhà máy … Đối với lập trình nhúng, lập trình viên phải quan tâm tới sự giới hạn và cấu trúc của phần cứng bao gồm các vi mạch và hệ thống mạch điện. Do đó, mặc dù khó khăn hơn về mặt lập trình nhưng bạn được tự do quản lí các cảm biến, thanh ghi, cấp phát bộ nhớ, … từ đó có thể tối ưu hóa chương trình đến mức cao nhất có thể.
* Lập trình game là gì?
Cái này thì chắc ai cũng biết là gì rồi nên tôi sẽ không nói tới ở đây nhé.
=> Đọc đến đây thì chắc bạn đã hình dung được những lĩnh vực mà đang phổ biến trong ngành IT của chúng ta và có thể bạn đã xác định được lĩnh vực của mình muốn đi và bây giờ tới bước quan trọng nhất đó là chọn ngôn ngữ để học nhé. Việc lựa chọn ngôn ngữ cũng vô cùng khó khăn vì mỗi ngôn ngữ nó đều có thể làm được những lĩnh vực mà tôi đã nói ở trên, dưới đây tôi chỉ sẽ phân tích cho bạn biết được thế mạnh của những ngôn ngữ, còn việc chọn lựa nó là do các bạn nhé.
1. Lập trình web
Lập trình web thì hiện đang được chia ra làm hai thành phần chính đó là frontend và backend. Mà mỗi cái cần phải học ngôn ngữ tương ứng
+ Frontend : Html/css/javascript : Xử lý phía người dùng, xây dựng giao diện người dùng.
+ Backend : Java, C#, Python, PHP : Xử lý phía server (Nhận yêu cần từ phía người dùng và xử lý).
Đọc đến đây có phải các bạn cũng đang loạn đầu lên rồi phải khônh? Vì các ngôn ngữ mà tôi liệt kê nó đều lập trình được web và bạn không biết chọn ngôn ngữ nào để học, xin đừng lo tôi sẽ phân tích những lý do để mình sẽ chọn nó.
Đầu tiên thì phần frontend, cái này chắc chắn bạn phải học. Vì nó liên quan đến việc xây dựng giao diện web, cái này nó kết hợp với ngôn ngữ backend nào cũng được. Việc thứ hai là chọn ngôn ngữ backend để học, ngôn ngữ phổ biến nhất đó là Java, C# và PHP, hiện nay các công ty tuyển rất nhiều cho những vị trí này, lương cao hay thấp thì tùy vào trình độ kỹ thuật và khả năng thuyết phục của bạn với nhà tuyển dụng, còn Python thì ít hơn những cái trên, tuy nhiên xu hướng tương lai thì python sẽ rất là thịnh cho việc làm web bởi vì những công ty bên Nhật hiện nay outsource về Việt Nam rất nhiều dự án web làm bằng python.
Đối với java thì chủ yếu xây dựng những hệ thống lớn đòi hỏi khả năng bảo mật cao như ngân hàng, bảo hiểm, vì những framework web của java nó hỗ trợ rất mạnh về khả năng bảo mật của hệ thống. Vì chủ yếu xây dựng những hệ thống lớn như vậy thì công việc freelancer sẽ không có nhiều, nên nếu bạn nào muốn khi đi làm mà cần làm thêm việc ngoài để kiếm tiền thì java không phải là một sự lựa chọn sáng suốt và thêm nữa hosting của java rất chi là đắt, việc duy trì hosting hay server chạy web bằng java thì chi phí không hề rẻ chút nào.
Đối với C# thì tương tự như java nó cũng xây dựng những hệ thống lớn, thằng này nó chơi với Microsoft nên muốn sử dụng nhiều thư viện của nó thì đều phải trả tiền cả, thường thì những khách hàng thuê làm thì họ có rất nhiều tiền, chi phí mua hay gì thì cũng do khách hàng bỏ tiền. Và nếu muốn làm freelancer để kiếm thêm thu nhập thì cũng không phải là một sự lựa chọn sáng suốt. Cú pháp C# thì cũng tương tự như Java, chọn C# hay Java đều được cả.
Đối với PHP thì ở việt nam rất là ưa chuộng ngôn ngữ này vì tính mỳ ăn liền của nó, PHP thường được xây dựng những trang web nhanh chóng, nếu muốn làm freelancer thì đây là một sự lựa chọn hoàn hảo, với tính ổn định và chi phí duy trì hosting rất là rẻ, nhưng làm web thì đừng phá giá nhé.
Đối với python hiện nay cũng rất phát triển, nó dễ học hơn java và c# vì cú pháp đơn giản dễ hiểu, python có một framework nổi tiếng là django giúp chúng ta xây dựng web cũng rất nhanh, tuy nhiên nếu không hiểu chuyên sâu về nó thì cũng rất khó để tùy biến theo nghiệp vụ của web. Hosting ở việt nam thì cũng ít hỗ trợ python, nếu muốn chạy web thì phải tự dựng server của mình.
Thấy nhiều bạn lên group nói rằng java sắp chết nên học python đi, thì mình xin khẳng định là java vẫn đang phát triển rất mạnh bạn nhé, vì những hệ thống cũ thì rất nhiều trang web được làm bằng java. Giả sử một ngày nào đó dự án web mới không được phát triển bằng java thì vẫn sẽ có những dự án nâng cấp hệ thống cũ, sửa đổi, bảo trì thì sẽ cần những lập trình viên java.
2. Lập trình mobile
Lập trình mobile hiện nay thì đang được chia ra làm hai loại đó là lập trình đa nền tảng và đơn nền tảng.
* Đơn nền tảng là những ngôn ngữ lập trình ra và chạy được chỉ trên android hoặc chỉ chạy được trên iOS mà thôi.
Android : Java, Kottlin.
iOS : Object – C, Swift
* Đa nền tảng là chúng ta sẽ chỉ lập trình một lần, sản phẩm có thể chạy được trên cả android và iOS.
Android và iOS : React native, Flutter, phonegap, xamarin…
Về Android thì Kottlin là ngôn ngữ mới, java android thì đã cũ, tương tự như iOS thì Swift là mới, object – C là cũ. Tuy nhiên nếu bạn muốn đa dạng trong công việc thì nên học nếu đi theo android thì học cả java và Kottlin. Tương tự như iOS cũng vậy, học thì không bao giờ là đủ cả. Về lập trình đa nền tảng thì nó sẽ giúp tiết kiệm được chi phí nếu muốn làm app trên cả hai hệ điều hành, nhưng được cái này thì mất cái kia, hiệu suất của app sẽ không bằng được như lập trình bằng chính ngôn ngữ của nó.
3. Lập trình desktop app
Ngôn ngữ : C#/C++ . Phổ biến nhất là C#, C# là sự lựa chọn hợp lý
4. Lập trình nhúng
Ngôn ngữ : C/C++
3. Lập trình game
Ngôn ngữ : C# (Unity)
Và đến đây cũng đã kết thúc bài viết về Mới học lập trình thì nên học những gì? Hy vọng bài viết này sẽ giúp ích cho các bạn về sự lựa chọn của mình. Cám ơn các bạn đã quan tâm theo dõi.
Nguồn bài viết tại đây.