Những môn học nào thật sự quan trọng trong ngành lập trình?

Bây giờ đã là đầu tháng 11, thời điểm các em sinh viên bắt đầu nhập học, tìm hiểu về lập trình.

Vì thế, gần đây mình nhận được nhiều câu hỏi về việc nên tập trung học những môn nào, những môn nào là quan trọng, sẽ được sử dụng nhiều trong công việc.

Do vậy, mình viết bài này để chia sẻ về các môn học quan trọng trong ngành này, cho các bạn sinh viên từ năm nhất đến năm cuối biết để mà chuẩn bị nhé!

 

Code Dạo có vài lời nhắn nhủ trước là: Môn học nào được dạy trong trường cũng có lý do của nó!

  • Có vài môn mang nặng tính lý thuyết, đi làm thực tế thì ít dùng. Nhưng nó là nền tảng để các bạn tư duy, tìm hiểu ngành
  • Có những môn rất hàn lâm, đi làm cũng ít dùng nhưng sẽ rất cần nếu các bạn học lên cao, đi sâu theo hướng nghiên cứu
  • Kiến thức nói chung rất quan trọng, đừng mang tâm lý ỷ lại, học lệch môn này môn kia. Có khi kiến thức lúc này không dùng, lúc khác cần bạn phải tự mò mẫm học lại từ đầu đấy.
Muốn theo AI, Machine Learning thì không được sợ Toán nghe chưa!

Những môn cực kì quan trọng và căn bản

Đây là những môn căn bản cực kì quan trọng. Nó là nền tảng để bạn theo ngành lập trình, cho việc viết code sau này. Mấy môn này học lơ tơ mơ là sau này sẽ ngáo ngơ, không học nổi mấy môn sau, ra đi làm không biết code luôn!

Do vậy, với những môn này, hãy cố gắng học hành chăm chỉ, không cúp tiết, chịu khó làm bài tập trên lớp, tối về nhà tìm hiểu thêm nhé.

Những môn này bao gồm:

  • Nhập môn lập trình: Thường dạy bằng C/C++, hướng dẫn bạn lập trình, làm quen với các khái niệm như biến, hàm, chuỗi, con trỏ
  • Hướng đối tượng: Dạy bạn các khái niệm lập trình hướng đối tượng (OOP) như class, object; cách thiết kế class, object
  • Nhập môn công nghệ phần mềm: Giới thiệu tổng quát về ngành phần mềm, về cách máy tính hoạt động, qui trình làm việc v…v
  • Thiết kế vi mạch, xử lý tín hiệu số: Đây là những môn quan trọng cho các bạn học nhúng.
  • Cơ sở dữ liệu (SQL): Giới thiệu về database, nơi lưu trữ dữ liệu người dùng, cách thiết kế và lấy dữ liệu từ database ra sao. Hiện tại thì 69.96% các phần mềm lẫn web đều dùng database, không học môn này là hơi bị mệt.
Làm web hay mobile app gì thì cũng có thể đụng tới database hết nhé!

Những môn khá quan trọng, dùng nhiều trong công việc

Đây là những môn dựa trên các môn nền tảng mình nói ở phần 1. Kiến thức trong các môn này sẽ được áp dụng nhiều trong quá trình làm việc.

Đa phần những bạn tự học hoặc học trung tâm thường bỏ qua những môn này. Nếu có nền tảng vững, bạn cũng có thể tự học và tìm hiểu mấy môn này nhé, nó sẽ giúp bạn hiểu rõ bản chất vấn đề, bản chất công nghệ hơn:

  • Cấu trúc dữ liệu và giải thuật: Chỉ cần nắm vững và biết cách áp dụng, ko cần quá giỏi để thi HSG hoặc ACM
  • Hệ điều hành, mạng máy tính: Học để hiểu các khái niệm trong hệ điều hành, các máy tính liên lạc và kết nối với nhau. Giả sử bạn làm web mà không có kiến thức mạng, không hiểu gói tin (packet) có hình dạng ra sao, khi gặp vấn đề sẽ không debug được đâu.
  • Kiểm thử phần mềm: Dạy bạn cách tư duy như một tester, làm sao để kiểm thử phần mềm. Trước đây mình đã có bài giải thích tại sao developer cần có tư duy tester rồi nhé!
  • Ngôn ngữ lập trình chuyên sâu: Tùy trường, có thể họ sẽ dạy cho bạn những khái niệm chuyên sâu (concurrency, UI, database) của 1 ngôn ngữ như C#, Java. Hãy tranh thủ học để biết một ngôn ngữ có thể làm được những gì nhé!
Tư duy tester sẽ giúp bạn thấu hiểu tester và dễ giao tiếp với họ hơn

Kiến thức phụ thêm

Những môn còn lại là bonus thêm, đa phần nó giúp các bạn rèn luyện tư duy và cách suy nghĩ như:

  • Xác xuất thống kê: Đi làm thì ta ít áp dụng trực tiếp mấy cái này. Thế nhưng, nó sẽ giúp bạn nhiều trong cuộc sống, hoặc khi cần estimate xác xuất gặp bug của user, tần suất lỗi của chương trình.
  • Toán rời rạc, cao cấp: Tích phân, đạo hàm v…v thì đi làm mình không đụng nhiều lắm. Tuy nhiên khi học lên Master thì mình phải xem lại mấy môn này để hiểu cách tính, đọc paper hiểu công thức Toán.

Note: những bạn nào muốn đi theo hướng AI, Machine Learning, Data Science thì học kĩ mấy môn Toán và Xác Suất Thống Kê vào. Mới mấy cái cơ bản như vậy đã than khó thì sau này không đọc nổi tài liệu trong ngành đâu!

Thấy Toán là sợ thì không theo nghiệp AI, Machine Learning được đâu nhé!
  • Đạo đức nghề nghiệp: Học cho biết cho vui thôi, chứ thực tế cũng ít khi nào chúng ta phải code những cái gì trái với lương tâm, phải xem lại đạo đức lắm.
  • Web, mobile, cloud: Mấy môn này rất thực tế, nhưng khá dễ nên có thể tự học, không cần chờ trường dạy. Kiến thức trong trường cũng chưa chắc đã cập nhật bằng kiến thức trên mạng hoặc trung tâm.

Tạm kết

Trong bài này, mình đã chia sẻ về những môn học quan trọng trong ngành lập trình rồi đấy!

Các bạn sinh viên có thể xem để tham khảo. Tập trung vào những môn chính là tốt, nhưng đừng học lệch hoặc bỏ quên những môn lý thuyết nhé. Đến lúc không rành lý thuyết, làm mà không hiểu mình làm gì thì sẽ gặp rắc rối đấy!

À quên, các bạn sẽ thấy mình không bỏ những môn như Toán Lý Hóa Đại Cương, Assembly, triết học tư tưởng Mác Lê Nin vào. Lý do là thời đó mình học FPT không học đại cương và Assembly, tư tưởng này nọ thì học chỉ 1, 2 tuần.

Đến nay đi làm vài năm thì mình thấy nó cũng chẳng có ý nghĩa gì cả (Mấy trường UK, US cũng chả thèm cho vào). Các bạn nào học thấy cực, thấy bị hành xác thì cứ coi như … mình xui, học để rèn tư duy nhé!!

 

P/S: Các bạn cũng có thể xem vlog và ngắm khuôn mặt đạp trai của mình tại bit.ly/codedaotube nha :3

Advertisements

3 thoughts on “Những môn học nào thật sự quan trọng trong ngành lập trình?”

  1. em nghĩ là còn có môn “Kỹ thuật lập trình” nữa, dạy bằng C,C# để sinh viên viết code sạch và đẹp hơn, ít lỗi hơn, cơ mờ theo em cảm nhận thì trong môi trường sinh viên ít ai thẩm thấu được môn ý :3 em cũng thế huhu

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s