【学习路线】C 语言学习指南
今天来分享一下,内容有点长(从下午 6 点写到现在),全文分为以下四部分,这篇我没有在任何地方发过,也算是为星球做点小贡献。
为什么学C语言
C语言学习途径
C语言常见问题
C语言学习路线
一、为什么要学C语言
一)应付考试
大多数人学这门语言,是被迫的,因为几乎所有高校,C语言是第一门计算机语言,不仅仅是计算机相关专业,理工科专业几乎都要学。
我大学是医学信息管理专业也是要学C语言的(我也是被迫学的),我们学校那些医学类专业也要学C语言。
虽然对于大多数人来说,学了没有一丁点用,但为了应付期末考试,为了不挂科,还是要认真对待一下C语言。
还有专升本,计算机专升本考的就是C语言,这几年关注我的读者有很大一批是专升本过来的。
除了期末考试、专升本,还有部分院校计算机考研需要C语言。
在应试教育体系下,你没有任何办法不学,只能随波逐流学一下了。
当然了,如果你将来打算从事开发,第一门编程语言我说实话,不太建议你学C语言,你去学前端都比C语言强,因为C语言出结果太难了。
吭哧吭哧学几个月,最后只能做个黑框,很没有成就感,它不像前端,你随便学学就能做个静态网页,成就感直接拉满,这个很重要,能激励你持续学下去。
二)铺垫
有一门语言基础之后,学其他语言会很快,尤其是当你有C语言基础去学 C++,会快很多。
我能从一名医学生转型写了一年 C# 代码,又转型写了一年前端代码,我个人认为和我C语言学的还不错有关。
举个例子,就说C语言的结构体,和面向对象里面的类非常像。
C语言里面的指针,C++ 里也有,很多人可能不知道 C# 虽然明面上没有指针,但是 C#可以 unfase。
所以说你有这个基础之后,学其他会快不少。
现在主流数据结构的算法,大多都是C语言实现的,或者是C++写的,学数据结构也避不开这两门语言。
三)打比赛刷算法
蓝桥杯、ACM 没有固定使用一种特定的编程语言,参赛选手可以自由选择任何一种计算机编程语言。
但是C语言或者C++基本上是首选语言,我大二那会和几位医学朋友组队打ACM,每天专门抽出两个小时去刷杭电的 ACM 题库。
当时用的就是C语言,虽然最后只拿了个 ACM 省赛三等奖,但对于当时的我来说是个非常大的激励。
我了解到身边的朋友参加比赛,基本上就是 C/C++。
二、C语言学习途径
一)书籍
大部分高校用的是谭浩强的书,这本书好坏今天暂且不论,但是你要我推荐的话,我不会给你推荐这本书,这本书最令我反感的地方是变量起名太随便了。
实际上开发中你给变量起名最起码要所见即所意,别人一看你的变量名就知道你这是什么。
接下来推荐几本我看过的好书:
1、C Primer Plus(第六版)
这本书作者是 Stephen Prata,作者在加州工业学院获得学士学位,从加州大学伯克利分校获得博士学位。
全书共17章,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等知识。
附录给出了各章后面复习题、编程练习的答案和丰富的C编程参考资料。
2、C语言程序设计现代方法
