计算机系,不学c,不自己动手实现数据结构,而是直接使用python的数据结构,那你学到了计算机的什么东西呢?c里面有很多关于内存的手动设计,让你更明白什么是浅拷贝,什么是深贝,什么是栈,什么是堆,什么是变量生存周期,指针变量与int变量之间的区别,各种数据结构的区别。这是你用python入门所无法学到或无法领会到的。而每一门程序语言的编程陷阱往往来源于以上的东西。如果你无法真正理解以上的概念,那你很容易犯各种编程错误。
而掌握了以上概念,各种非函数式编程语言对你来说都是相同的,无非语法变换而已。而这些概念只有在允许你操纵内存以及需要自己实现数据结构的c语言中才能体会到。
除此之外,上面的一些概念只是初级入门。计算机网络中的一些概念,更是只有在c语言中才能体会。比如计算机系统中的对齐方式,主机字节序与网络字序的区别,tcp为什么是流协议等等。更加别谈操作系统本身就是由汇编和c写成,图形ui大部分也是由c或c++写成。各种语言的编译器也是由c写成。
再除此之外,我不觉得还有哪一门语言在语法上比c更加简单。正因为c够简单,够原始,才需要使用者了解更多的底层细节,而这正是每一位计算机系本科出身的人本应该做的。
如果搞计算机纯理论,那确实不用学c,或者更进一步连编程语言都不用学习。如果要用编程语言解决实际的问题,那么c的本科四年锻炼绝对是绕不过的。
以上是肺腑之言。