大一学弟问我:为什么现在985高校还在给大一学生上C语言课?

很简单,因为 C 语言对于计算机科班生来说就是基础课,其地位不单单是一门编程语言。为什么呢?

因为在我看来,没有比C语言更适合用来理解计算机系统了。

大二、大三将会学到的操作系统、体系结构 这些东西非常适合用 C 语言去理解或者去实践。

并且 C 语言本身的语言特性非常少,但是想学好又是不容易,很多人都觉得C语言难,难在哪里呢?回想了一下我大一时的感受:

  • 简陋的标准库,几乎没有可用的数据结构
  • 指针很难理解和使用
  • 需要了解汇编、链接、装载、内存等才能把 C 语言用好

不巧的是,这些东西正是计算机系统知识的一部分,所以用 C 语言作为学习计算机系统知识是最有效率的方式。

真的很难想象用 Java 或是 Python 去给别人讲解内存,因为这些语言抽象程度都比 C 语言高,意味着离计算机系统也就越远。

在 TIOBE 编程语言排行榜上,C语言几乎永远占据前三位,其地位自然毋庸置疑。

TIOBE-2020排行榜

这个榜单充分说明了 C 语言的重要性,学好了 C ,对于你理解函数调用原理、栈、内存等计算机基础很有帮助。而你提到的 Java、Python 确实有丰富的类库,但是这都是偏应用层,可以在你学好 C 语言之后很快上手,而基础才是最费时间最费精力的。

而且几乎你开发中用到的很多东西都是用C语言编写的,Linux、Nginx、Redis、MySQL、Git…或许你会想要探究下原理,阅读点这些开源软件的源码,那么 C 语言也是你必备的瑞士军刀。

深入学习 C 语言,能够了解计算机底层的执行原理,是理解程序运行机制的绝佳语言,无出其右。

在这里,不得不引用对C语言最经典的总结:

任何比C语言更低级的语言,都不足以完整地抽象一个计算机系统;
任何比C高级的语言,都可以用C来实现。

这真是极高而中肯的评价!

所以对于计算机科班来说,不管你是做前端还是后端,算法还是开发,C 语言都建议你好好学习。这是无关方向的一门语言,就是基础!

如果你不明白基础的重要性,我建议你读读我这篇文章:

怎样才算一个计算机知识体系完整的毕业生

那么如何学好 C 语言呢,我大一的时候始终不得其法,后来大二重学,才自认为掌握了 C 语言的精髓,所以在这里推荐一些我觉得比较好的学习资源:

首先是中国大学mooc上浙大翁凯老师的C语言课,当时学习全靠翁凯老师了,课程质量也是非常的棒,讲课幽默,深入浅出非常容易理解。不多说了,看过的同学都知道:

这里分为两门:

  1. 第一门是面向高考结束想提前自学一点编程的,叫大学先修课:

C语言程序设计CAP-大学先修课

虽然叫先修课,但是覆盖了C语言的主要知识点,也适合大一新生~

  1. 第二门是C语言程序设计进阶,会带你用C语言完成一些有趣的项目,比如一些图形界面小游戏,先修课学习C语言语法基础,进阶课带你项目实操,搭配使用,你就是同学中的大神!

C语言程序设计进阶

看完这个基本C语言没有问题了,那么如果想继续深入学习,我推荐几本书:

  • 《C与指针》
  • 《C专家编程》
  • 《高质量C编程指南》
  • 《彻底搞懂C指针》

这里有些不是书,有些就是一些总结的PDF,但是非常好,可以说,看完这些,你在C语言方面说不上精通,但是绝对是一流水准。

如果上面有些 PDF 找不到,可以私信我,我发你。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值