post-image

Cần học gì khi muốn làm lập trình viên?

Tổng quan

Lập trình là một lĩnh vực khó đòi hỏi người học phải có kiến thức sâu rộng, khả năng đọc hiểu ngôn ngữ tốt và cần có sự kiên trì.

Khi còn ngồi trên ghế nhà trường, nhiều bạn vẫn mông lung và chưa định hướng được lập trình viên cần học môn gì để có thể hỗ trợ tốt cho công việc của mình.

Bài viết này sẽ đưa ra cho các bạn gợi ý về các môn học để bạn dựa theo kinh nghiệm của các lập trình viên đi trước.

Sinh viên nên học những gì?

Kiến thức luôn luôn hữu ích và cần thiết. Có nghĩa là dù bạn học gì, thì nó cũng sẽ cần dùng cho bạn ở một thời điểm nào đó. Giống như mình, khi làm sinh viên, mình nghĩ sẽ chẳng bao giờ dùng đến kiến thức về kế toán, bán hàng hay thuyết trình. Nhưng bây giờ khi làm sản phẩm, mình lại phải sử dụng và đang đi học lại những kiến thức ấy.

Nhưng nếu học tràn lan, học quá nhiều, đôi lúc lại dễ bị tẩu hoả nhập ma và không sâu một cái gì cả. Cái sự cân bằng giữa sâu và rộng thực ra khó nói, tuỳ lựa chọn mỗi người và đánh giá của mỗi người mà thôi.

Nếu phải lựa chọn 4 môn bắt buộc phải học để trở thành lập trình viên giỏi, mình xin lựa chọn những môn sau (theo thứ tự ưu tiên):

  1. Tiếng Anh
    Tiếng Anh mình nghĩ quan trọng số 1. Để học và làm trong ngành CNTT, mà cụ thể hơn là lập trình viên, bạn sẽ phải thường xuyên đọc và tìm hiểu các công nghệ, nền tảng, kiến thức ở trên mạng và bằng tiếng Anh. Các tài liệu bằng tiếng Việt, thường thì không đủ mới (thậm chí cực kì cũ kĩ) và không đủ nhanh so với sự thay đổi liên tục của thế giới. Chưa kể, đến khi đi làm, bạn sẽ thường xuyên có cơ hội phải giao tiếp với khách hàng, nhóm làm việc nước ngoài. Do đó, tiếng Anh không tốt sẽ hạn chế khả năng làm việc của bạn đấy.
    Nói cho bạn biết, nếu giỏi tiếng Anh, bạn có cơ hội kiếm việc ở các công ty nước ngoài hoặc ít nhất là làm việc với khách hàng nước ngoài, với thu nhập cao hơn khoảng 20% (trừ 1 số công ty outsourcing làm việc với khách hàng Nhật).
  2. Ngôn ngữ lập trình hướng đối tượng: Java hay C++?
    Là lập trình viên, tất nhiên phải biết lập trình rồi. Đúng không? Vấn đề là tại sao lại chọn 1 trong 2 ngôn ngữ này?
    Sau này, khi làm lập trình viên, nếu bạn làm về frontend thì bạn không cần dùng Java hay C++, nếu bạn lập trình Web thì biết PHP cũng là đủ xài. Do đó, việc chọn ngôn ngữ lập trình có thể còn phải tính toán cả con đường tương lai của bạn.
    Ở mức chung chung và thông thường, cá nhân mình đưa ra lựa chọn C++ hay Java dành cho sinh viên, vì mình nghĩ 2 ngôn ngữ này thể hiện khá đầy đủ và đúng đắn bản chất của một ngôn ngữ lập trình bậc cao, việc rèn luyện thành thạo 2 ngôn ngữ lập trình này có thể dễ dàng học và chuyển sang một ngôn ngữ khác. Và ngoài ra, 2 ngôn ngữ này cũng nằm trong danh sách những ngôn ngữ lập trình thông dụng và có khả năng ứng dụng rộng rãi nhất.
  3. Cấu trúc dữ liệu và giải thuật
    Môn này, đa phần các lập trình viên bỏ qua và không xem trọng. Ở 1 số trung tâm đào tạo nghề, cũng không hề dạy môn này. Đó là vì môn này khó.
    Cũng đã có bài mình chia sẻ tầm quan trọng về giải thuật trong blog này. Nên bài này sẽ không nói thêm nhiều nữa. Nhưng cá nhân mình cho rằng, nếu học tốt về giải thuật, có tư duy giải thuật, bạn sẽ làm phần mềm tốt hơn và chính xác hơn bình thường.
    Có một sự thật, đó là bạn mình khi đi phỏng vấn các công ty lớn như Google, AWA hay Grab thì đều phải trình bày và giải quyết những bài tập có tính giải thuật rất cao. Bạn có thể không cần nhớ cách cài đặt một giải thuật, nhưng hãy biết đến nó, và vận dụng nó linh hoạt khi phần mềm của bạn cần sử dụng đến nó.
  4. Cơ sở dữ liệu
    Khi mình đi học, mình khá coi thường và ít học môn này. Đó thật sự là một sai lầm.
    Bạn biết rồi đấy, ngày hôm nay, sản phẩm phần mềm nào cũng dùng tới cơ sở dữ liệu. Kể cả là Game điện thoại hay Web bán hàng, bạn cũng cần lưu thông tin người sử dụng. Đặc biệt, trong các hệ thống lớn, cơ sở dữ liệu là 1 phần tất yếu và vô cùng quan trọng. Cơ sở dữ liệu sẽ là đơn giản, khi phần mềm của bạn chỉ có 10 hay 100 người dùng, số lượng nghiệp vụ chỉ bé tí tẹo và đơn giản như kiểu lưu điểm của học sinh hay thời gian đi làm của một nhân viên. Nhưng hãy suy nghĩ xem, nếu bạn phải làm những hệ thống lớn có hàng triệu người dùng, số lượng bản ghi sinh ra trong từng giây lên đến con số hàng chục triệu, cùng với các quan hệ, nghiệp vụ chồng chéo, bạn sẽ làm như thế nào?
    Rất nhiều đồng nghiệp hay chính tôi, đều biết cách viết 1 câu lệnh truy vấn để lấy được thông tin cần thiết. Nhưng chúng tôi không giải quyết được vấn đề, khi dữ liệu lớn, 1 câu lệnh truy vấn có thể tốn hàng chục giây. Nếu học và hiểu rõ về bản chất của cơ sở dữ liệu, các câu lệnh truy vấn, bạn mới thật sự có thể trở thành lập trình viên giỏi và tham gia để xây dựng một sản phẩm có rất đông người dùng
    ————————
    Còn rất nhiều môn đáng học và nên học như: “Mạng máy tính”, “Kiến trúc máy tính”, “Nguyên lý hệ điều hành”, … Mình không khuyên bạn bỏ qua mấy môn này, nhưng trong khuôn khổ và thời gian có hạn, cá nhân mình nghĩ 4 môn bên trên là cần thiết nhất để trở thành 1 lập trình viên giỏi.

Lập trình viên học Ngôn ngữ gì?


Lập trình viên cần học gì thì chắc chắn câu trả lời là ngôn ngữ lập trình.

Một dự án có thể được tạo thành từ nhiều ngôn ngữ lập trình.

Và có rất nhiều ngôn ngữ lập trình nhưng mình sẽ giới thiệu một số ngôn ngữ lập trình được sử dụng phổ biến nhất hiện nay.
 

1. Ngôn ngữ Java
Java là ngôn ngữ lập trình hướng đối tượng tốt nhất, viết một lần nhưng có thể sử dụng được trên các nền tảng khác nhau: Linux, Windows, OSX.

Nếu bạn là một người bắt đầu học lập trình viên thì Java là ngôn ngữ lập trình dễ học giúp bạn có thể học một cách nhanh chóng và hiệu quả.
 

Java được dùng trong các ứng dụng của Android, ứng dụng Web, máy chủ trong lĩnh vực tài chính, big data, ứng dụng công nghệ,…

2. Ngôn ngữ Python

Python hiện là ngôn ngữ có tốc độ phát triển nhanh nhất.

Nếu sử dụng chỉ số đánh giá số lượng các hướng dẫn học Python trên Internet (chỉ số PYPL Index) thì Python đang đứng số 1.

Python là một ngôn ngữ gần nhất với ngôn ngữ con người (tiếng Anh).

Bạn có thể nghĩ thế nào – Viết thế đó.

Dễ bắt đầu học, dễ đọc là yếu tố cốt lõi của Python.

Python được sử dụng và chủ đạo trong lĩnh vực: Trí tuệ nhân tạo, Máy học, Dữ liệu lớn, Khoa học dữ liệu…

3. Ngôn ngữ JavaScript

JavaScript là một ngôn ngữ kịch bản được sử dụng chủ yếu cho lập trình web.

Trong vài năm trở lại đây, JavaScript cũng có bước tiến mạnh mẽ bởi sự ủng hộ, dẫn dắt của các công ty công nghệ hàng đầu như Facebook, Google …

Vì thế, JavaScript còn lấn sân sang cả Lập trình ứng dụng di động đa nền tảng và thực sự chiếm lĩnh ở phân khúc này.

Ví dụ, Ngày trước muốn lập trình ứng dụng cho iOS thì sử dụng Objective-C / Swift, lập trình ứng dụng di động cho Android thì sử dụng Java / Kotlin. Muốn xây dựng ứng dụng cho các nền tảng khác nhau thì gần như là nhân đôi chi phí, công sức.

Nhưng bây giờ chỉ cần sử dụng JavaScript mà thôi.

Công sức giảm 50% so với trước kia.

Và có thể bạn chưa biết, ban đầu JavaScript không thể lập trình Web Back end. Nhưng với sự ra đời của công nghệ NodeJS thì điều đó đã trở thành có thể.

Bạn thấy không, JavaScript thật sự đa năng.

Nếu chọn học JavaScript thì bạn tiết kiệm được công sức, thời gian đi rất rất nhiều.

4. Ngôn ngữ C và C++
Đây cũng là hai ngôn ngữ lập trình dành cho người bắt đầu học. Nếu học tốt hai ngôn ngữ lập trình này bạn sẽ tạo ra sản phẩm có tốc độ xử lý thông tin nhanh hơn các ngôn ngữ khác.

Ngôn ngữ này thường được dùng trong game, giao diện người dùng, tính toán, đồ họa, hệ điều hành, phần mềm doanh nghiệp,…

Các game trên PS, Xbox hầu như đều được làm từ C++ đó.

Tổng kết

Trên đây là một số kiến thức để bạn có thể biết được cần học gì khi muốn làm lập trình viên? Chúc bạn học tốt.

Nguồn video: Phạm Huy Hoàng

Leave a Reply

Your email address will not be published. Required fields are marked *