Ngôn ngữ lập trình nào sinh viên nên biết trước khi tốt nghiệp

0
Lập trình và ngôn ngữ lập trình
Lập trình và ngôn ngữ lập trình

Hiện nay có rất rất nhiều ngôn ngữ lập trình khác nhau. Việc học và sử dụng ngôn ngữ nào là tùy vào từng mục đích cụ thể. Dĩ nhiên có một sự thực là không ai có thể học được hết tất cả, và cũng chả cần học nhiều như thế làm gì.

Việc học ngôn ngữ nào cụ thể và mức độ thành thạo yêu cầu phụ thuộc vào chương trình đào tạo của từng trường cụ thể, cũng như phụ thuộc vào định hướng riêng của từng bạn. Tuy nhiên, có những điểm chung giữa các chương trình này.

Trong bài viết này chúng ta sẽ phân tích qua qua một số ngôn ngữ thường được dạy trong trường cho sinh viên công nghệ thông tin. Bài viết sẽ giúp các bạn có cái nhìn tổng thể về các ngôn ngữ và vai trò của nó, cũng như giúp bạn đưa ra định hướng riêng.

Ngôn ngữ C/C++

Đầu tiên không thể không nhắc tới hai người bạn lâu năm này. Ngôn ngữ C thường là ngôn ngữ được giới thiệu đầu tiên khi sinh viên mới vào trường. Ngôn ngữ này được giảng dạy nhiều trong học phần, tạm gọi là, Nhập môn lập trình (C). Ngôn ngữ C cũng thường được sử dụng tiếp khi học cấu trúc dữ liệu và thuật toán.

Hiện nay nhiều nơi bắt đầu cho sinh viên nhập môn lập trình với Python hoặc Java. Tuy nhiên, C vẫn được rất nhiều trường ưu ái chọn lựa.

Nếu bắt đầu là C thì trong học phần Lập trình hướng đối tượng thường lựa chọn tiếp C++ để đỡ mất công học thêm một ngôn ngữ nữa.

Việc bắt đầu bằng C/C++ có khá nhiều ưu điểm. Các ngôn ngữ học về sau và được sử dụng nhiều trong công việc (như Java, PHP, C#, JavaScript) đều dùng cấu trúc tương tự C/C++. Do đó, người học sẽ dễ dàng tiếp cận hơn.

Tuy nhiên, C/C++ cũng có những vấn đề. Hai ngôn ngữ này tương đối khó học (đến mức thành thạo). Một số khá lớn sinh viên về sau hầu như không sử dụng C/C++ cho học và làm việc. Các công việc liên quan đến C/C++ đều tương đối khó khăn với phần đông sinh viên.

Vì các lý do trên, C/C++ là một ngôn ngữ nên/bắt buộc học, nhưng không hi vọng đạt tới mức có thể sử dụng để phát triển phần mềm thực sự. Hãy học hai ngôn ngữ này để làm nền cho việc học các ngôn ngữ khác về sau.

Sau giai đoạn cơ sở, sinh viên thường sẽ phải lựa chọn định hướng chuyên sâu của riêng mình. Tùy thuộc vào định hướng sẽ có những “combo” ngôn ngữ khác nhau.

Các ngôn ngữ lập trình dùng trong phát triển ứng dụng web

Đây là nhánh rất hot về nhu cầu tuyển dụng. Hầu như công ty phần mềm nào cũng tuyển món này. Tuy nhiên, phát triển ứng dụng web cũng có nhiều hướng nhỏ, cơ bản có thể gọi là back-end, front-end, full-stack.

Lập trình Front-end: ngôn ngữ JavaScript

Dù theo hướng con nào, ngôn ngữ lập trình bắt buộc phải học là JavaScript. Tùy theo hướng sẽ cần đến các mức độ thành thạo khác nhau.

JavaScript dùng để viết code chạy trên trình duyệt (thành phần front-end của ứng dụng web). Code JavaScript giúp các “trang web” hoạt động giống các chương trình, thay vì giống như các tài liệu tĩnh.

Nếu theo hướng front-end, JavaScript bắt buộc phải thành thạo. Không chỉ vậy, còn phải học cách sử dụng nhiều bộ framework hoặc thư viện JavaScript như jQuery, React, Angular.

Ngoài JavaScript, còn hai “ngôn ngữ” nữa phải học. Đó là HTML và CSS. Lưu ý rằng, đây không phải là các ngôn ngữ lập trình. Vai trò của chúng là định hình nội dung và hình thức. Hai anh này là bắt buộc (đến mức thành thạo) đối với front-end.

Lập trình Back-end: ngôn ngữ PHP, C#, Java

Đối với back-end có nhiều lựa chọn khác nhau. Các ngôn ngữ này có một chức năng chung là thực hiện tính toán trên server trước khi trả kết quả lại cho trình duyệt.

Đối với web mã mở, PHP không nghi ngờ gì là ứng viên số 1. PHP được sử dụng bởi các site khổng lồ (như Facebook). Nhu cầu tuyển dụng anh này đặc biệt lớn.

Sau khi thành thạo ngôn ngữ, cần học sử dụng một số framework PHP như Laravel, CodeIgniter, Yii.

Ngôn ngữ lập trình C#

ASP.NET là nền tảng phát triển ứng dụng web của Microsoft cũng được sử dụng rất nhiều để phát triển các hệ thống lớn. Ngôn ngữ hàng đầu để phát triển ứng dụng ASP.NET là C#. Vì vậy, ai theo xu hướng này không có lý do gì để bỏ qua C#.

Không chỉ vậy, trên nền ASP.NET có một số mô hình phát triển ứng dụng web riêng (như MVC, Web API). Ai đi theo xu hướng này đều phải học hết.

Ngôn ngữ lập trình Java

Java là một trong những ngôn ngữ phổ biến hàng đầu hiện nay. Java được sử dụng để phát triển hầu như mọi loại ứng dụng. Đừng nhầm lẫn Java với JavaScript.

Khi hoàn thành học ngôn ngữ Java căn bản cũng sẽ phải học cách sử dụng một trong số các Java framework cho phát triển ứng dụng web (như Spring).

Các ngôn ngữ lập trình cho phát triển ứng dụng mobile

Mobile-hóa là một xu hướng đã diễn ra từ một số năm trước. Nhu cầu chuyển các ứng dụng sẵn có lên mobile hoặc viết ứng dụng mới hiện đang rất lớn. Do đó, nhu cầu tuyển dụng về mobile đặc biệt lớn.

Hiện nay chỉ còn bộ đôi hệ điều hành mobile cạnh tranh nhau, Android và iOS. Windows mobile đã cáo chung.

Lập trình Android – ngôn ngữ Java, C#, C++

Có nhiều cách khác nhau để viết app cho Android.

Cách thức được xem là “chính thống” hơn cả là dùng Java và bộ Android SDK. Ở đây chúng ta gặp lại Java. Tuy nhiên, lưu ý rằng, mặc dù cùng là Java nhưng thư viện sử dụng sẽ rất khác.

C# cũng có thể dùng để viết ứng dụng Android thông qua một nền tảng gọi là Xamarin. Xamarin cho phép viết code một lần và biên dịch sang cả ứng dụng iOS lẫn Android. Mặc dù nghe rất hấp dẫn nhưng nhu cầu tuyển dụng hiện không rõ ràng. Nếu muốn đi theo Android, tốt nhất là dùng Java.

Android xây dựng trên nhân Linux, mà Linux viết bằng C. C/C++ hoàn toàn có thể dùng để viết ra ứng dụng cho Android. Tuy nhiên, với sinh viên “bình thường” thì phương pháp này không được khuyến khích. Tốt nhất là đi theo Java.

Lập trình iOS – ngôn ngữ Objective-C, Swift, C#

Cũng có một số cách khác nhau để viết app cho iOS.

Trước đây ngôn ngữ hàng đầu là Objective-C. Hiện nay lập trình viên được khuyến khích chuyển sang một ngôn ngữ mới, Swift.

Như trên đã nói, có thể dùng C#/Xamarin để viết ứng dụng cho iOS.

Đối với hướng phát triển này, ngôn ngữ tốt nhất nên học là Swift.

Các ngôn ngữ lập trình cho phát triển ứng dụng desktop – C#, Java, C++

Đây là mảng truyền thống và lâu đời nhất của công nghệ phần mềm. Rất nhiều ngôn ngữ và công nghệ có thể dùng để viết ứng dụng desktop.

Tuy nhiên, do xu hướng web và mobile, nhu cầu phát triển loại ứng dụng này giảm dần.

Nếu lựa chọn theo xu hướng này, hai ngôn ngữ được sử dụng nhiều và có nhu cầu tuyển dụng lớn hơn cả là C# và Java.

Dĩ nhiên, ngôn ngữ lập trình riêng nó là không đủ để phát triển ứng dụng. Tùy thuộc vào nhu cầu có thể phải học thêm một/một số framework cùng với ngôn ngữ. Ví dụ, nếu học C# thì phải học tiếp Windows Forms hoặc WPF – các công nghệ phát triển ứng dụng desktop của Microsoft.

Xu hướng nghiên cứu – R, Python, Matlab

Sinh viên đi theo xu hướng nghiên cứu phải lập trình rất nhiều, tuy nhiên, không hoàn toàn giống như lập trình ứng dụng ở trên.

Các ngôn ngữ sử dụng nhiều nhất trong nghiên cứu là Python, R và Matlab.

Python là một ngôn ngữ lập trình đa năng nhưng lại được sử dụng đặc biệt phổ biến trong tính toán khoa học. Ngôn ngữ này dễ học, dễ sử dụng, hỗ trợ thư viện (đặc biệt là thư viện tính toán cho khoa học) rất lớn. Nếu theo xu hướng này, Python là một ngôn ngữ phải thành thạo.

Matlab cũng có một ngôn ngữ lập trình riêng để thực hiện những tính toán phức tạp. Đây cũng là một cụ không thể thiếu cho nghiên cứu chuyên sâu về công nghệ.

R là một ngôn ngữ chuyên dùng cho xử lý số liệu. Đây cũng là ngôn ngữ nên học nếu đi theo xu hướng nghiên cứu.

Kết luận

Ở trên chúng ta đã giới thiệu qua các ngôn ngữ lập trình có thể xuất hiện trong các chương trình đào tạo đại học về công nghệ thông tin. Chúng ta cũng nhóm các ngôn ngữ này theo từng hướng công việc cụ thể.

Lưu ý rằng, ở đây chúng ta chỉ làm bước phân tích khá chung chung. Tùy thuộc vào từng lĩnh vực sâu, tùy từng chương trình đào tạo ở các trường có thể có thêm nhiều vấn đề nữa cần nghiên cứu thêm.

Như chúng tôi được biết, đường hướng cụ thể thường do sinh viên tự chọn và sau đó tự học các ngôn ngữ và công cụ cần thiết. Trong khuôn khổ một chương trình đào tạo không thể cung cấp hết các nội dung trên. Bản thân mỗi người cũng không đủ khả năng để học và thành thạo tất cả các loại công cụ đó. Vì vậy, việc lựa chọn hướng đi nào là của sinh viên.

Cho dù đi theo hướng nào, điều quan trọng nhất là phải đạt đến mức “master” thì mới kiếm được việc. Đừng tham ôm quá nhiều thứ mà mỗi thứ chỉ biết một tí. Nếu ngôn ngữ và công cụ nào cũng chỉ biết đến ở mức độ “giải phương trình bậc 2” thì biết nhiều cũng không có giá trị gì.

Cũng nên lưu ý rằng, ngôn ngữ và công nghệ phát triển ứng dụng đóng vai trò công cụ và chỉ là một phần của việc đào tạo công nghệ thông tin. Tư duy logic và thuật toán, tư duy và kỹ năng phân tích bài toán, mô hình hóa và thiết kế phần mềm, v.v., đóng vai trò quan trọng hơn rất nhiều. Do đó, đừng quá đề cao việc biết nhiều công cụ. Nếu chỉ có các công cụ lập trình trong tay, bạn không khác gì người công nhân code cả.

Bạn hãy đọc thêm về những gì sinh viên công nghệ thông tin cần học trước khi tốt nghiệp. Nếu bạn mới bắt đầu hoặc đang mắc kẹt trong việc học lập trình căn bản, hãy tham khảo bài viết này.

Hy vọng bài viết này sẽ giúp ích cho bạn phần nào khi chọn đường đi cho riêng mình.

Chúc các bạn thành công!

+ Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
+ Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
+ Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
Cảm ơn bạn!

Theo dõi
Thông báo của
guest

0 Thảo luận
Phản hồi nội tuyến
Xem tất cả bình luận