Bậc đại học nên bỏ một số môn lập trình

Thực trạng: hiện nay ở các trường đại học, trong chuyên ngành CNTT vẫn có rất nhiều trường đưa một số môn lập trình vào làm môn học ở bậc đại học, ví dụ:

  • Lập trình Java
  • Lập trình C#
  • Lập trình Mạng
  • Lập trình Python.

Nhưng có một vấn đề mà có thể nhiều bạn sinh viên không biết đó là bản chất ở bậc đại học thì sẽ không học những môn này, việc đưa những môn này vào làm một môn học ở bậc đại học là sai hoàn toàn về tư tưởng.
Bản chất ở bậc đại học người ta chỉ dạy cho sinh viên hai môn là nhập môn lập trình và lập trình hướng đối tượng. Thế là hết, còn lại Python, hay Java, hay C# hay một framework nào đó thì bạn phải tự học. Hoặc nếu các bạn muốn học thì phải vào các trường nghề, như Apptech thì mới được dạy. Cái hơn của Đại Học là nó ở chỗ đó.
Ngày trước thời còn sinh viên ở đại học Vinh mình có môn lập trình mạng java, ông thầy của mình là TS Trần Văn Cảnh (hiện thầy đang là nhà nghiên cứu về khoa học dữ liệu ở Đức), thầy dạy mình môn này, thầy có bảo “mấy cái môn này thì chẳng ai người ta học ở bậc đại học đâu, mà các anh phải tự tìm hiểu, tôi cũng không hiểu tại sao mấy môn này lại được học ở hệ đại học”.
Không chỉ riêng thầy mà ngay cả một số thầy ở khoa CNTT ở đại học Bách Khoa Hà Nội cũng đã từng nói vấn đề này, có một số môn lập trình hoàn toàn không xứng đáng được dạy trong trường đại học, nó chỉ xứng đáng ở trường nghề và trường đào tạo lập trình viên.

Mình nói ra vấn đề này để anh em CNTT cùng bàn luận cho ý kiến, mỗi một góc nhìn biết đâu lại cho chúng ta một chút kiến thức gì đó. Cái quan trọng là biết lắng nghe để học hỏi.

1 Like

Python chứ không phải pythol nha bạn, trường mình có môn lập trình .NET nhưng trong giáo trình không có bất cứ trang nào dạy cú pháp, cách cài đặt framework này vẫn dùng .NET để dạy OOP, design pattern, nguyên lý lập trình, …v/v. Cuối kỳ nộp sản phẩm, project chỉ chấm điểm phần cốt lõi, tổ chức cấu trúc như nào, dùng pattern nào, PTTKHT ra sao, database design tốt không, có nâng cấp sau này được không … chứ không quan trọng dùng những công nghệ gì, call bao nhiêu API của framework. Tương tự có những môn mà tên môn, mã môn chứa từ khoá Angular, React, … nhưng không dạy bất cứ cú pháp HTML, CSS, JS nào cả mà dạy nguyên lý thiết kế giao diện, UX/UI, phân tích xu hướng thị trường, tâm lý hành vi người dùng. Tương tự những môn như AI, data mining, … chỉ mượn Python để thực thi thôi, SV vẫn tự học ,giáo trình không có bất kỳ trang nào dạy cách code bằng python cả.
Để dạy bằng lái B1, B2 thì người ta dùng Toyota vios để dạy nguyên lý vận hành xe và luật giao thông khiến học viên ngộ nhận là trường chỉ dạy chiếc xe vios thôi.

3 Likes

chuẩn, đại học ở đâu ko biết chứ nga trường mình, cả năm 1 dc học 1 môn lập trình c cơ bản, năm 2 học java, năm 3 học c#, chả hiểu sao dạy lắm thế, nên cho sinh viên chọn chuyên 1 ngôn ngữ để đi làm

Bách Khoa HCM không có những môn như vậy!

Thế theo bạn thì bậc đại học nên học những môn gì? Và môn nào đang được dạy mà không cần thiết?
Tại sao bạn lại nghĩ học những môn trên là dư thừa?

Một lý do mà mình biết, các chuyên ngành bên KHTN đều cần kĩ năng lập trình để thiết lập mô hình thí nghiệm, họ cần kĩ năng thiết yếu nhất làm việc chuyên môn của họ, không cần phải học đầy đủ các kỹ thuật lập trình, cách tổ chức code khoa học. Ví dụ:

  • Matlab: tìm nghiệm xấp xỉ cho các phương trình đạo hàm riêng (Vật lý), tính toán ma trận và giải thuật xử lý chuỗi gene (Công nghệ sinh học).

  • SQL: Xử lý dữ liệu đầu vào, tinh lọc dữ liệu (Khoa học dữ liệu, Thống kê)

  • Python, R: viết các giải thuật tìm thông tin mô tả hay dự đoán biến ngẫu nhiên với tập mẫu được lấy từ tổng thể, vẽ các đồ thị cho mẫu dữ liệu (Công nghệ sinh học, Thống kê, Xã hội học, …)

Do đặc thù ngành nghề nên các ngành đó không dạy hết các môn căn bản bên CNTT đâu. Họ cần cái gì thì dạy cái đó luôn, chi tiết về cú pháp, code đẹp là bỏ qua hết.

4 Likes

Theo mình đoán là bạn chủ topic đề cập rằng ý là những môn đó là những môn mang tính nghề nghiệp. Kiểu như mẹo/ kỹ năng nhỏ trong cuộc sống => trong nghề CNTT thì người làm sẽ gặp <= người ta tự học qua quá trình làm việc.

Ở đại học người ta chỉ nên (theo ý chủ topic) trang bị kiến thức tổng quát, kiến thức nền tảng (vì đại học dạy nghề chỉ là một phần, nhiệm vụ nghiên cứu hàn lâm quan trọng hơn) chứ không trang bị kiến thức nghề kiểu trường dạy nghề vì việc đó là không cần thiết, lấn sân.

Để hiểu dễ hơn, thì diễn lại ý chủ topic theo ý của mình hay nói: bạn đi học lái xe hơi/ ô-tô chứ bạn không đi học lái KIA Morning, Vinfast Lux 2.0, Toyota Vios hoặc xe… Hổ Vồ :smiley:

Trong thực tế, tuy là “học lái xe” nhưng người ta không dạy/ học theo kiểu lái giống như các streamer lái xe bus đường dài hoàn toàn giả lập mà các trường sẽ cho bạn “thực hành bằng một chiếc xe cụ thể nào đó” (như C/C++, Python, Java). Như vậy, chỉ mượn tạm một ngôn ngữ có hỗ trợ OOP để minh hoạ.

Hết!

6 Likes

Ngày tôi đi học chỉ được dạy qua loa ASM, C, C++ và VB6.

2 Likes

đúng vậy, học lập trình khác với lập trình java, học oop khác với java oop
có rất nhiều người lầm tưởng, oop là gắn theo những ngôn ngữ nào đó, ngôn ngữ hỗ trợ oop, nhưng về bản chất thì hoàn toàn sai

Object-oriented programming is a programming paradigm based on the concept of “objects”, which can contain data and code: data in the form of fields, and code, in the form of procedures. A feature of objects is that an object’s own procedures can access and often modify the data fields of itself.

chỉ cần lập trình mà có tính chất của oop thì gọi là oop, chứ không phải vào c++ hay class java tạo class/method rồi private/public mới là oop

rất nhiều bạn quên đi những cái cơ bản này, nói tới oop thì lại phải là java mà không biết java chỉ dùng để làm ví dụ
hậu quả của mì ăn liền

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?