很简单,因为 C 语言对于计算机科班生来说就是基础课,其地位不单单是一门编程语言。为什么呢?
因为在我看来,没有比C语言更适合用来理解计算机系统了。
大二、大三将会学到的操作系统、体系结构 这些东西非常适合用 C 语言去理解或者去实践。
并且 C 语言本身的语言特性非常少,但是想学好又是不容易,很多人都觉得C语言难,难在哪里呢?回想了一下我大一时的感受:
- 简陋的标准库,几乎没有可用的数据结构
- 指针很难理解和使用
- 需要了解汇编、链接、装载、内存等才能把 C 语言用好
不巧的是,这些东西正是计算机系统知识的一部分,所以用 C 语言作为学习计算机系统知识是最有效率的方式。
真的很难想象用 Java 或是 Python 去给别人讲解内存,因为这些语言抽象程度都比 C 语言高,意味着离计算机系统也就越远。
在 TIOBE 编程语言排行榜上,C语言几乎永远占据前三位,其地位自然毋庸置疑。
这个榜单充分说明了 C 语言的重要性,学好了 C ,对于你理解函数调用原理、栈、内存等计算机基础很有帮助。而你提到的 Java、Python 确实有丰富的类库,但是这都是偏应用层,可以在你学好 C 语言之后很快上手,而基础才是最费时间最费精力的。
而且几乎你开发中用到的很多东西都是用C语言编写的,Linux、Nginx、Redis、MySQL、Git…或许你会想要探究下原理,阅读点这些开源软件的源码,那么 C 语言也是你必备的瑞士