C语言-我的学习路

面向阅读对象

  • 刚刚升入大学,开始接触C语言的计算机相关专业新生
  • 特别感兴趣,想通过编程锻炼思维的C语言学习者

不愿看我絮叨的大佬,可以直接拖到文章下方

我的C语言学习之路

0x00前言

距离第一次接触C语言编程,过去很长时间了。这中间陆续学习了很多门语言,零散的写过一些代码,然而水平并不高。在C语言上,我的能力也大概就是能够独立完成课后设计,数据结构相关的题目,二叉树、图等的课后设计,可以使用C或者C++独立实现。后面写的Java Web代码稍多一点。做过的代码行数最多的也就是在linux下实现过一个基于控制台的局域网通信项目。

在C语言上,因为做过的很多项目都是一些课后作业性质的,缺乏大项目洗礼、锻炼。只能点到为止,希望对于感觉C语言学习有困难有所帮助,并同时期望阅读到本文的新生们能够在大二结束时候达到独立完成各种使用C语言的作业的水平,对于VS等IDE也有较深程度的了解。

0x01 忘不了的黄昏

我大学时候使用的教程是钱能的C++教程,一本红皮书。记忆里,那是个带着晴朗空气的九月下午,从学校科技馆提前一节下课,到了信息楼实验室。

因为没有带课本,就在学校的老机器上凭记忆码着hello world。写完后运行了一下,有几个错误,然后定位到错误修改。再次运行,0 error 0 warning。真是最美的初体验,或许是占了记忆力稍好一点的优势,从hello world中得来了自信心。下机后,拿到课本在读一边关于hello world的介绍,从include开始,到最后的return,一点一点去理解行行代码的实际意思,恍然大悟,编程的感觉很好哇。

实际上现在是10月份下旬了,大家肯定都学完这个经典的入门程序了。如果要你纸上默写一下这个程序,能不能默写的出来?能不能讲出每一行代码的作用?。这就是第一步,千里之行,始于hello world。Hello world虽小,五脏俱全。关于编程,关于计算机体系,关于API,都在这小小的几行代码了。

0x02 初窥编程门径

实际上这个不应该算是第二阶段,算作1.5阶段比较合适。
这个节点是怎么样的呢?
学完for、while、do while循环,很多人还是写不出代码,觉得看是看的懂了,就是写不出,通病。那我们应该怎么解决?

我是通过打印第一个平行四边形起家的。想做得出这个没别的办法,先看书上例子。看完例子,做习题,琢磨哪一些是在变化的量,哪一些没有在变化。替换掉那些行数,列数的数字,能够独立成功打印出一个三角形,一个平行四边形,对于循环等结构的具体执行过程也就聊熟于心了。

0x03 具体知识学习

实际上过了上一关,编程就没有问题了。剩下的就是学习各种语言相关的细节了,C语言的话,就是字符串、指针、结构体等知识,后面复杂点有位运算、共用体、枚举结构。加上最后的文件操作。有了前面的例子,后面认真听课,完成老师的作业,抄一抄课本上样例代码,就结束了。真的,C语言学起来就应该是如此轻松。因为当独立打印出平行四边形时候,你就已经领悟了编程的本质。

0x04 练习加强基础

在我的C语言学习经历中,再新的阶段就是大一的寒假了。寒假在家,也没有笔记本电脑。还是在纸上将书本上的所有代码抄写了一边。

在接下来大一下学期有时间就刷题目,做完了酷勤C语言100题中的一大半吧!做这些题我零零散散大概用了我半个学期的时间。中间还从学校的图书馆借了一本C语言小游戏百例,都是写猜数字什么的简单游戏。

酷勤C语言百题

0x05 最后

其实我个人资质是很平庸的,写代码到今天,也没有取得很大的成绩,但是至少在写代码这条道路上找到了一点儿方向感,希望这微薄的话语能够给大家带来一点前行的力量。在开始的时候遇到一些困难是应该的,觉得时间被浪费很多也是必然的,一定要有一个练习的心态。

简版-数语以敝之

秘诀

一本语法书+50道练习题=入门

达成目标

  • 独立完成C语言的课程设计,看懂几百行甚至千行内的代码(能力水平判定)
  • 通过对C语言的学习加强计算机修养(软性)

简短版-C语言升级打怪之路

  • 第一关:手写hello world调试运行,理解每一行代码
  • 第二关:使用顺序、判断、循环三种结构打印规律的复杂图形
  • 第三关:认真阅读C语言语法书上的其他内容
  • 第四关:50道题目左右的编程训练
  • 第五关:独立完成课程的大作业

推荐阅读更多精彩内容