做了个小调查,发现使用C语言做第一门编程语言课的大学达到了90%以上。
我认为大一先上C语言的核心原因:
一是语法简单,更加贴近计算机本质的一些东西,学C也不是简单的学语言本身,而是想透过C语言去理解一些如寄存器、内存、函数调用、跳转等东西。
二是为大二、大三阶段的专业课打下一个基础,当然很多同学说我不学C一样可以学操作系统、计网呀。
当然,这些和C没必然关联,只是很多实验你确实不好继续做,除非你只打算看看概念,背背什么是进程、线程。
如何正确的打开C语言?
我认为C语言最为核心的有三块:
指针
内存
系统编程
首先指针和内存是需要在学习C语言过程中就理解、搞定的,推荐两本书:
《C程序设计语言》、《C和指针》
如果你觉得初学看书过于困难,那么可以在职坐标学习C语言线上课程,结合书一起看,相信会理解得更加深刻。
然后,学习完了C语言基本语法后,你会发现似乎只能开发在黑窗口里运行的程序,写不出那些漂亮的GUI。
确实,C语言本来就不擅长做这些,C语言擅长的是开发系统组件来支撑上层应用。
但是如果你迫切地想做出一些可视化、有趣的东西,那么可以这样做:
找一些C语言的图形库,比如easyx,借助这些图形库,你完全可以实现一些图形界面的游戏。
继续去学Python、Java这种语言,然后学习Web开发,写写网页。
当然了,如果你对那些可视化的东西没那么大兴趣,甚至还挺喜欢黑窗口的,那么恭喜你,你有成为大佬的潜质。
当你熟悉完C语言基本的语法以后,建议去学习数据结构与算法,用C语言去实现链表、树、二叉树、堆、排序、搜索等等。
推荐看看《算法:C语言实现》这本书。
如果能通过void指针实现一些泛型数据结构就更棒了,比如标准库里的qsort就能支持任意可比较结构体排序。
然后,时间应该很快来到了大二、大三,这时候你应该学习系统编程,什么是系统编程呢,其实就是CSAPP这本书上所讲授的内容。
系统编程其实就是学习如何用C语言编写出真正可用的软件,比如像