我认为 C 语言最为核心的有三块:
首先指针和内存是需要在学习 C 语言过程中就理解、搞定的,推荐两本书: 《C程序设计语言》、《C和指针》 如果你觉得初学看书过于困难,那么可以去中国大学 MOOC 上浙大翁凯老师的 C 语言课,可以直接去 B 站搜。 视频结合书一起看,相信会理解得更加深刻。 这里分为两门: 第一门是面向高考结束想提前自学一点编程的,叫大学先修课:
虽然叫先修课,但是覆盖了C语言的主要知识点,也适合大一新生~ 第二门是C语言程序设计进阶, 会带你用C语言完成一些有趣的项目,比如一些图形界面小游戏,先修课学习C语言语法基础,进阶课带你项目实操,搭配使用,你就是同学中的大神!
然后,学习完了 C 语言基本语法后,你会发现似乎只能开发在黑窗口里运行的程序,写不出那些漂亮的 GUI。 确实,C 语言本来就不擅长做这些,C 语言擅长的是开发系统组件来支撑上层应用。 但是如果你迫切的想做出一些可视化、有趣的东西,那么可以这样做:
当然了,如果你对那些可视化的东西没那么大兴趣,甚至还挺喜欢黑窗口的,那么恭喜你,你有成为大佬的潜质。 当你熟悉完 C 语言基本的语法以后,建议去学习数据结构与算法,用 C 语言去实现链表、树、二叉树、堆、排序、搜索等等。 推荐看看《算法:C语言实现》这本书。 如果能通过 void 指针实现一些泛型数据结构就更棒了,比如标准库里的 qsort 就能支持任意可比较结构体排序。 然后,时间应该很快来到了大二、大三,这时候你应该学习系统编程,什么是系统编程呢,其实就是 CSAPP 这本书上所讲授的内容。 系统编程其实就是学习如何用 C 语言编写出真正可用的软件,比如像 http server、redis 这种,会涉及到:
系统编程推荐《深入理解计算机系统》、《Unix网络编程》、《Unix高级环境编程》,Windows 下的我基本没学过,所以就不推荐了。 C 语言的世界: 也许以后实际工作中你完全没有机会去写 C,但是这并没关系,打好了基础,学其它也会学得很快、很透彻。 对于计算机专业的同学,还是建议学好 C 语言,与其它课程相结合,多懂一点程序背后的实现原理。 |
|