Định hướng ngành lập trình (Phần 1)

Nhiều bạn hỏi mình. “Lập trình nhiều ngôn ngữ quá, học gì giờ anh?". Vì vậy, trong bài viết hôm nay mình sẽ giúp các bạn thấy được bức tranh toàn cảnh của ngành lập trình, từ đó có thể đưa ra lựa chọn thích hợp …

Mặc dù đây có thể là kĩ năng mềm nhưng mình lại xếp vào kĩ năng cứng, vì chỉ khi bạn có định hướng, có lộ trình rõ ràng thì bạn mới có mục tiêu để học lập trình, không bị nản, học đúng kiến thức, làm đúng việc.

Lưu ý: Các ngôn ngữ dưới đây là những ngôn ngữ nền tảng để bắt đầu học lập trình theo định hướng, để đi làm thì cần học thêm những framework nâng cấp từ những ngôn ngữ này. Ví dụ học AngularJS là nâng cấp của JS để làm bên frontend.

Các ngành được đề cập trong phần này:

  • Lập trình web.

  • Lập trình mobile.

  • Lập trình desktop app.

  • Lập trình nhúng.

  • Lập trình game.

Lập trình web là gì?

Lập trình web đơn giản là 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 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ý).

Frontend hay Backend đều có những điểm hay riêng.Frontend hay Backend đều có những điểm hay riêng.

Đầ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.

Bạn thích dự án của hệ thống lớn hay đơn giản là dự án mì ăn liền đều do bạn chọn theo sở thích.Bạn thích dự án của hệ thống lớn hay đơn giản là dự án mì ăn liền đều do bạn chọn theo sở thích.

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 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, 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ó.

Thời đại ai ai cũng xài điện thoại thì lập trình mobile không là lựa chọn tồi.Thời đại ai ai cũng xài điện thoại thì lập trình mobile không là lựa chọn tồi.

Lập trình desktop app là gì?

Đó là bạn 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…

Ngôn ngữ : C#/C++ . Phổ biến nhất là C#, C# là sự lựa chọn hợp lý.

Desktop app cũng là ngành không nên bỏ qua nếu bạn thích ứng dụng trên windows/linux.Desktop app cũng là ngành không nên bỏ qua nếu bạn thích ứng dụng trên windows/linux.

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ể.

Ngôn ngữ : C/C++

Sự phát triển mạnh mẽ của công nghệ 5G, tự động hóa đã giúp ngành nhúng trở nên quan trọng.Sự phát triển mạnh mẽ của công nghệ 5G, tự động hóa đã giúp ngành nhúng trở nên quan trọng.

Lập trình game là gì?

Đọ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é.

C#:

C# là ngôn ngữ hướng đối tượng. Ngôn ngữ này nếu chưa có căn bản mà nhảy vô thì rất khó với các bạn. Nếu có học c++ rồi thì nhảy vô con này thì cũng cũng dễ chứ không phải khó lắm. Nhưng nếu học nó thì bạn sẽ được là một mũi tên trúng 3 đích hơn cả c++. 1 là làm web, 2 là làm app nè, 3 làm game nữa lại ngon lành. Nếu dùng C# làm Ngôn Ngữ Lập Trình Game thì có những Engine sau đây hỗ trợ nó:

  • Unity: Con này thì hỗ trợ thôi rồi 😀 mình cũng chả còn gì để bàn về sự “support" của nó.

  • Godot: Support vẫn khá còn yếu chưa được mạnh lắm.

  • CryEngine: Đây là Engine được built từ c++ và nó hỗ trợ C#, Lua.

  • WaveEngine: Đây là Engine mà được tạo ra dựa trên C# cho phép bạn tạo game đa nên tảng.

Python:

Đây thật sự là 1 Ngôn Ngữ Lập Trình Game dễ các bạn ạ. Dễ đến nỗi mà mình chưa học nó mà chỉ học ngôn ngữ dựa trên nó mà đã có thể làm quen được nhiều thứ, giải toán đồ,…. Dễ ẹt. Python không được ứng dụng trong game nhiều lắm đa số toàn mấy Engine game làm chán lắm.Python cũng được đánh giá khá cao trên bảng xếp hạng đấy chứ. Với Engine mà nó hỗ trợ thì có:

  • Godot Engine: Godot thì khỏi bàn luôn hỗ trợ như C# — Unity. Ngôn ngữ riêng của Engine này sử dụng GDScript dựa trên Python và Lua. Hầu hết là Python, Lua chiếm khá là ít luôn ý. Support 2D & 2.5D & 3D.

  • Cocos2D Engine: Con này thì Support giống Godot.

  • Panda3D: nhắc tới anh này trên chỗ C++ rồi nhỉ. Con này thì 3D thôi.

  • Pygame: anh này thì chắc chắn không thể không nhắc tới rồi làm game hơi kém tý nhưng vẫn ổn.

JavaScript:

Chắc chắc không không thể nhắc tới anh chàng này rồi. Một ngôn ngữ lập trình web, một ngôn ngữ cực kỳ là linh hoạt nhưng được sử dụng khá là nhiều trong lập trình game. Vậy thì nhưng Engine nào mà nó hỗ trợ:

  • Game Maker Studio: Chắc chắn không thể bỏ qua chàng trai này được. Engine mà mình làm game đầu tiên và cái game like sh*t :(.Còn này ngoài JavaScript còn sử dụng thêm là Game Maker Language. Làm game 2D — 3D. Nhưng 3D hỗ trợ rất rất rất kém. Nếu làm 3D game bằng con này thì khuyên bạn đổi Engine. Full plaform luôn nhé.

  • Gamvas : Con này thì làm game nền tảng HTML5.

  • GDevelop : Còn này 2D luôn, hỗ trợ hầu hết các nền tảng hiện nay.

  • PlayCanvas: Có anh này thì 3D đây, hỗ trợ như anh trên.

  • RPG Maker: Xém thì quên thằng này, làm game RPG bao ổn nhé các bạn.

Lua:

Ngôn ngữ lập trình game tuyệt vời. Mình có ấn tượng thật sự sâu sắc đến với ngôn ngữ này. Lua là ngôn ngữ được sử dụng nhiều VD như: Phần mềm PC Adobe’s Photoshop Lightroom, hệ thống nhúng hay chính tựa game mưa gió 1 thời World of Warcarft addons và Angry Birds. Lua là ngôn ngữ hàng đầu sử dụng trong game.Engine mà nó hỗ trợ thì có khá là nhiều và NGON:

  • CryEngine; con này vừa C++vừa lua nên khá ngon , chỉ hỗ trợ 3D.

  • Codea: Con này 2D chỉ dành cho iOS.

  • Defold : 2D-3D, đa nền tảng chỉ chạy bằng lua.

  • Leadwerks: 3D, Hỗ trợ nền tảng linux và windows.

  • Lumberyard: 3D con này hỗ trợ PS 4, PC,Xbox.

  • ShiVa: Con này 3D. Hỗ trợ nền tảng Windows,PS3,PS4 Xbox 360,Xbox One.

Lập trình game là đam mê của đa số các bạn nam ngành IT.Lập trình game là đam mê của đa số các bạn nam ngành IT.

Kết luận

Mỗi ngôn ngữ có điểm mạnh riêng, việc chọn ngôn ngữ có thể phụ thuộc vào tính năng, cách viết hoặc chỉ đơn giản là theo sở thích. Tuy nhiên, trước khi chọn một ngôn ngữ, bạn cần định hướng rõ mình sẽ theo ngành gì để có thể bắt đầu học từ bây giờ, không làm lãng phí thời gian vì “Đời người ngắn lắm ai ơi".

Happy Coding!

Source: chickencodes.com, anonyviet.com.