Cóc SE nên họcngôn ngữ nào?

30/06/2019
Hà Hải Ngân
6

Ngôn ngữ lập trình (NNLT) là thứ tối cần thiết đối với mọi lập trình viên (LTV). Bài viết kì này trong series “Cóc học code” sẽ phân tích về các loại ngôn ngữ (NN) hữu ích và những điều xoay quanh nó để giúp các Cóc có định hướng tốt nhất cho lộ trình học tập của mình.

Công nghệ vẫn không ngừng phát triển mạnh mẽ, thế giới vẫn không ngừng đổi thay, nên nếu những người làm trong lĩnh vực này không ngừng tự học, tiến tới sẽ bị đào thải. Do đó, những gì bạn được học ở trường có thể trở nên lỗi thời hoặc không còn phù hợp khi bạn đi làm.

Giữa vô vàn ngôn ngữ hay ho, có ý kiến cho rằng hãy học NN mà bạn thích, có người lại khuyên hãy theo NN mà công ty bạn muốn vào làm sử dụng nhưng tôi sẽ lại khuyên bạn rằng hãy chọn học NN phục vụ cho lĩnh vực công việc mà bạn hướng tới và đừng mải chạy theo xu thế. Một NN hay công nghệ có thể là “trend” ở thời điểm hiện tại nhưng không có gì chắc chắn rằng nó vẫn sẽ dẫn đầu trong vòng 1-3 năm nữa.

Trước tiên, nếu bạn chưa rõ sau này mình sẽ theo mảng gì, hãy tìm đọc bài viết kì 2 (phần đầu) trong series để định hướng cho bản thân nhé. Vì sản phẩm của mỗi mảng có những đặc thù riêng nên nó cũng được xây dựng từ các loại NNLT khác nhau. Khi đã nắm vững được một NNLT và quen dần với tư duy lập trình rồi thì việc học các NNLT khác sẽ không còn quá khó khăn. Dưới đây là một số gợi ý về các loại NN ứng với từng mục đích công việc khác nhau để bạn dễ tham khảo.

Các loại Ngôn ngữ lập trình

  • Lập trình Website

Về cơ bản, lập trình Web được chia thành lập trình Front-end (phía người dùng) và lập trình Back-end (phía máy chủ). Một cách dễ hiểu, Front-end bao gồm tất cả những gì mà người dùng có thể nhìn thấy và tương tác được còn Back-end gồm những xử lý, lưu trữ, bảo mật… phía sau lớp giao diện ấy.

Related image

  • Lập trình Front-end

Khi nhắc đến lập trình Website, nhiều người nghĩ ngay đến “bộ ba huyền thoại” HTML, CSS, JavaScript. Trong đó, HTML và CSS không được coi là NNLT vì chúng không được dùng để điều khiển máy tính hoặc mô tả thuật toán nhưng đó vẫn là NN không thể thiếu để dựng nên cấu trúc cho một trang web.

Bên cạnh đó, JavaScript là NNLT thông dịch vô cùng linh hoạt, có thể được dùng cho cả front-end và back-end nhờ các công nghệ, thư viện và frameworks đa dạng của nó (Angular.js, React.js… cho front-end; Meteor.js, Node.js… cho back-end).

  • Lập trình Back-end

Ngoài JavaScript, phía web server cũng có thể được viết bằng Java, C#, PHP, Golang (còn được gọi là Go), Ruby, Python… và dùng NN SQL để kết nối với cơ sở dữ liệu.

Trong khi C# (thông qua ASP.NET), Java (framework Struts2, Spring…) đã quá quen thuộc và được tuyển dụng rất nhiều, PHP cũng phổ biến không kém bởi tính nhanh, nhỏ gọn, ổn định, dễ học, thời gian tạo ra sản phẩm ngắn hơn các NNLT khác thì Go hay Ruby lại thường xuyên góp mặt trong danh sách những NNLT được yêu thích nhất bởi tính đơn giản, cú pháp tường minh, dễ học nhưng khả năng xử lý lại vô cùng mạnh mẽ. Đặc biệt, Go có tốc độ vượt trội, hỗ trợ tốt cho lập trình đa luồng (concurrency) nên là lựa chọn hàng đầu cho các phần mềm realtime và high performance (Google Search, phần mềm chứng khoán…).

  • Lập trình ứng dụng di động

Hiện nay, Android và iOS là hai hệ điều hành (HĐH) điện thoại phổ biến nhất. Do đó, lập trình mobile apps cũng được chia thành hai hướng: cho Android và cho iOS.

  • Lập trình Android

Với những ưu điểm vượt trội như hướng đối tượng, đa nền tảng, khối lượng thư viện hỗ trợ đồ sộ,… nên từ khi ra đời đến nay, Java luôn nằm trong “top” những NNLT có “độ phủ sóng” rộng nhất. Bản thân HĐH Android cũng viết bằng Java nên các ứng dụng chạy trên HĐH này cũng được viết bằng Java và Kotlin – NNLT chạy trên máy ảo Java và tương thích hoàn toàn với Java.

  • Lập trình iOS

Hiện nay, hầu hết các iOS apps đều được viết bằng Object-C và Swift. Trong đó, Swift do chính Apple tạo ra, dù mới được công bố từ năm 2014 nhưng đã chinh phục không ít các nhà phát triển phần mềm bởi tính thân thiện, dễ học và khả năng chống lỗi tốt của nó.

  • Lập trình nhúng

Related image

Có thể khá ngạc nhiên với nhiều người nhưng phần mềm nhúng chiếm đến 90% sản lượng phần mềm trên Thế giới. Chúng vẫn đang hiện hữu hàng ngày trong bất cứ ngôi nhà nào, từ tivi, tủ lạnh, máy giặt, quạt điện,… Hơn nữa, trong thời đại Internet of Things (IoT) đang lên ngôi thì lĩnh vực này lại càng “hot” hơn bao giờ hết. Bên cạnh một số NNLT nổi tiếng như C/C++, Java, Go, Rust đã kể ở trên, thì lĩnh vực này còn đón chào những cái tên khá lạ khác như Assembly, B#, ParaSail hay Forth.

  • Các lĩnh vực khác

Ngoài ba mảng cơ bản đã được nêu ở trên, vẫn còn những vùng đất màu mỡ chờ bạn khai phá như lập trình ứng dụng Desktop, lập trình Games (chủ yếu dùng C/C++, Unity, C#), bảo mật, an toàn thông tin hay khoa học dữ liệu (sử dụng NN R), Machine Learning, Artificial Intelligence (dùng NN Python)…

  • Ngoại ngữ

Tuỳ thuộc vào môi trường làm việc hoặc loại khách hàng của công ty mà bạn sẽ được yêu cầu phải biết thêm một (vài) ngoại ngữ như tiếng Anh, tiếng Nhật, tiếng Đức… Hơn nữa, biết và giỏi ngoại ngữ sẽ giúp mở ra cho bạn nhiều cơ hội hơn cũng như công việc thuận lợi, thăng tiến hơn.

Các gợi ý trên đây được tổng hợp từ vốn hiểu biết hạn chế của cá nhân tác giả. Vì độ dài có hạn nên bài viết chỉ cung cấp cho bạn một số gợi ý và giới thiệu khái quát về một số NNLT phổ biến hiện nay. Tuy nhiên, để làm thực tế thì NNLT là chưa đủ, các bạn còn cần phải học thêm về các frameworks, công nghệ, design patterns… liên quan nữa.

Cóc Đọc và Những người bạn chúc các Cóc nhà FPT Edu sẽ có những lựa chọn sáng suốt và luôn học tập thật tốt!

Bút Bay

6
Tags: