Sinh viên IT học gì trong trường đại học?

Mình có thể chụp hình luôn chương trình đào tạo của trường để bạn xem cho nhanh, nhưng nó dài quá nên thôi.

Theo mình, một trong những điểm mạnh của việc học đại học là chương trình học được thiết kế bài bản, với đầy đủ các môn học giúp bạn có đầy đủ kiến thức ở các lĩnh vực khác nhau trong ngành lập trình phần mềm. Tuy nhiên, những kiến thức này rất dễ trở thành lý thuyết suông bởi phần lớn sinh viên đều không biết nó được áp dụng trong thực tế như thế nào, liên kết với nhau ra sao.

Ở phần này, mình sẽ giúp bạn liệt kê ra một số môn học trong trường đại học mà mình cho là quan trọng. Mục đích của mình là giúp các bạn sinh viên mới dễ dàng hình dung, gắn kết các mảng kiến thức lại với nhau hơn. Các bạn đã đi làm cũng có thể tham khảo, biết đâu sẽ tìm ra được phần kiến thức đang thiếu để rèn luyện thì sao.

Tất nhiên danh sách này sẽ dựa trên chương trình đào tạo mà mình đã được học ở trường. Mỗi trường sẽ có một số khác biệt, tuy nhiên đa phần các môn quan trọng đều giống nhau cả.


1. Nền tảng lập trình
Dù bạn học chuyên ngành hẹp nào đi chăng nữa thì bạn cũng phải học nền tảng lập trình. Những môn học nền tảng lập trình vô cùng quan trọng, quan trọng hơn bất cứ thứ gì khác bạn được học trong trường. Lý do mình nói nó quan trọng như vậy là bởi, thứ nhất, những môn học này sẽ đặt nền móng cho các kiến thức khác của bạn sau này, thứ 2, những môn học này được dạy vào năm nhất, năm 2, nếu chẳng may bạn để mất gốc, nguy cơ cao là bạn sẽ không thể theo những môn còn lại, đồng thời chấm dứt sớm duyên nợ với ngành này. Vì vậy, hãy cố gắng học kĩ một số môn mà mình nêu sau đây nhé.

Nhập môn lập trình
Môn này sẽ dạy cho bạn những khái niệm cơ bản nhất liên quan đến lập trình. Bao gồm một số thứ như: biến, hàm, vòng lặp… Những kiến thức trong môn này không khó, nhưng bạn bắt buộc phải thành thạo chúng để có thể bước tiếp.

Kinh nghiệm của mình cho mấy kiến thức nhập môn là cứ làm hết tất cả bài tập giảng viên giao là được, thời gian rảnh còn lại bạn có thể đọc thêm sách, blog tiếng Anh để học một số từ vựng liên quan đến lập trình.

Kĩ thuật lập trình
Môn này nâng cao hơn nhập môn một chút, bạn sẽ được học các kĩ thuật lập trình nâng cao như: đệ quy, quy hoạch động, thuật toán… Theo mình, điểm quan trọng của môn học này không nằm ở kĩ thuật, bởi bạn sẽ quên các kĩ thuật được học nhanh thôi. Quan trọng ở chỗ đây là thời gian bạn rèn luyện khả năng lập trình của bản thân, không giới hạn ở bất cứ kĩ thuật gì, đơn giản là luyện khả năng code mà thôi.

Vì vậy, hãy code nhiều nhất có thể trong thời gian học môn này, code thuật toán, giải bài tập, đọc sách về code… Nhớ là đừng vội lên mạng học mấy khóa học web, di động này kia nhé, mấy cái đó học nhanh lắm, nhưng kĩ năng code trâu thì cần thời gian rèn luyện. Mục tiêu trong môn này là bạn có thể code bất cứ thứ gì, chỉ cần có đề là bạn có thể code. Sau này có thể bạn sẽ quên đi cách code mấy bài đó, nhưng kĩ năng sẽ ở lại với bạn.

Lập trình hướng đối tượng (object oriented programming )
Sống hay chết nằm ở đây, nếu bạn để mất gốc môn học này thì khả năng cao là game over.

Lịch sử lập trình xuất hiện 3 phương pháp lập trình chính, gồm có: procedural programming, object oriented programming (OOP), functional programming. Trong đó procedural đã dần chìm vào quên lãng, functional chưa chiếm được thị phần cao, chỉ có object oriented là vẫn đang ở thời kì đỉnh cao. Hầu hết các ngôn ngữ lập trình hiện đại đều được xây dựng dựa trên OOP, có nghĩa rằng dù bạn muốn học C#, Java, Python hay bất cứ ngôn ngữ hướng đối tượng nào khác thì bạn đều phải hiểu rõ về lập trình hướng đối tượng. Đủ để bạn hiểu về tầm quan trọng của nó rồi nhỉ?

Trong môn học này, học theo giảng viên là chưa đủ, bạn cần đọc sách, tài liệu nhiều nhất có thể, đồng thời áp dụng các kiến thức học được vào code. Ngoài ra, đây cũng là giai đoạn bạn dần có đủ kiến thức lập trình để tự học, vì vậy bạn cũng có thể tự học làm một ứng dụng, website nhỏ để rèn luyện các kiến thức hướng đối tượng đã được học.


Cấu trúc dữ liệu và giải thuật
Môn này mình nghe mấy Thầy trong trường nói ngày xưa nó quan trọng lắm, bây giờ thì bớt quan trọng đi một chút rồi. Lý do là bởi các hệ thống máy tính thời trước thường có nguồn tài nguyên hạn hẹp, vì vậy dữ liệu cần được tổ chức tốt nhằm tiết kiệm bộ nhớ, giải thuật cần được tối ưu nhằm nâng cao hiệu suất. Ngày nay các máy tính đều rất mạnh mẽ, nên các vấn đề về cấu trúc dữ liệu, giải thuật ít được quan tâm hơn.

Nói như vậy không có nghĩa là môn học này không quan trọng, trong môn học này, bạn cần nắm bắt được các cấu trúc dữ liệu cơ bản (array, linked list, stack, queue…), các loại thuật toán cơ bản (sắp xếp, tìm kiếm…). Thời gian còn lại, giống như môn kĩ thuật lập trình, bạn hãy code nhiều nhất có thể, mục đích cuối cùng là rèn luyện kĩ năng code, bởi rất có thể sau này bạn sẽ quên đi các loại thuật toán đã được học, nhưng kĩ năng code thì vẫn còn.

2. Kiến thức tổng quát
Những môn học dạng kiến thức tổng quát thường không liên quan đến lập trình, nhưng thiếu những kiến thức dạng này thì kĩ năng lập trình của bạn cũng vô giá trị.

Database
Cho dù bạn lập trình web, lập trình desktop hay lập trình di dộng thì database vẫn thường là trung tâm. Nói ngắn gọn thì database là nơi để ứng dụng của bạn lưu trữ dữ liệu, giống như khi bạn đăng kí một account facebook, account của bạn sẽ được lưu vào database của facebook để quản lý.

Ở Việt Nam, thông thường các trường đại học sẽ giảng dạy relational database. Mục tiêu trong môn học này là cố gắng hiểu nhiều nhất có thể, thế thôi, vì nó là một trong những môn học rộng và khó.

Mạng căn bản
Môn học này sẽ trang bị cho bạn những kiến thức căn bản về mạng mà một developer cần nắm bắt. Các kiến thức về mạng thường rất rộng, một số trường đại học có hẳn một chuyên ngành nhỏ cho lĩnh vực này.

Trong môn học này, bạn sẽ được học cách internet hoạt động, một số mô hình mạng, DNS server, DHCP server…, nói chung là đủ thứ trên đời. Các kiến thức này sẽ bổ trợ cho quá trình làm phần mềm của bạn. Bạn vẫn có thể code mà không biết đến những kiến thức này, tuy nhiên, nếu không có chúng bạn sẽ khó có thể hiểu được cách phần mềm hoạt động từ đầu đến cuối, xử lý vấn đề khi có bug lạ, đặc biệt là bạn sẽ luôn cảm thấy thiếu thiếu trong hệ thống kiến thức của bản thân.

An toàn thông tin
Vô cùng quan trọng, bảo mật thông tin cho khách hàng là trách nhiệm, đạo đức của một developer. Môn học này sẽ giúp bạn nắm bắt được một số kiến thức cơ bản về an toàn thông tin, bảo mật dữ liệu. Từ đó giúp bạn làm phần mềm hiệu quả, an toàn hơn.

Tạm kết
Phía trên là các kiến thức nền tảng mà bạn cần nắm trước khi bắt đầu học những công nghệ mới, có những kiến thức bạn cần nắm kĩ ngay trong trường (nền tảng lập trình), cũng có những kiến thức bạn cần thời gian, trải nghiệm để dần hoàn thiện (những kiến thức tổng quát, lập trình).

Nắm được kiến thức trong các môn học mình nêu ở trên sẽ giúp bạn tiến một bước dài trên con đường trở thành một developer tầm cỡ. Ở phần 2, mình sẽ tiếp tục với những môn học quan trọng khác để chúng ta có một giáo trình hoàn thiện.

Nguồn : https://thedarkknighttech.com

Related Articles