赵岩 http://zhaoyan.website
最近收到一个微博网友提出的这个问题,下面我简单地回答一下。
我没有读过很多的C语言教材。有一本谭浩强老师的《C语言程序设计》,貌似是很经典的,你可以考虑一下。我在哈尔滨工业大学教C语言的时候,使用的是工大苏小红老师的《C语言程序设计(第一版)》,个人感觉还可以。这本书目前好像出第二版了,但是我个人还是推荐第一版。
简单地说,这个问题就回答完了,下面再啰嗦几句,你要有时间就看看,没时间也看看,因为下面的话更有价值。我想说的是,教材就这么回事,大部分教材内容都差不多。也就是说,如果你看教材A没明白,那么教材B你也看不明白。教材的主要作用就是,教会你一些基本的概念,然后由这些基本的概念开始,你要开始简单的实践并产生一些问题,并尝试解决这些问题,这是你进步的开始。
下面再啰嗦几句,有没有时间都要看看!下面的话才是最重要的。既然你要开始学习C语言了,我要告诉你道理,知识和技能这三者之间的区别。这三者中,道理,有的时候以段子或者名人名言等面目出现,它是目前微信圈最流行的。它的最主要的特点就是一个字:贱!产出贱,传播贱,收获贱。大师们一不小心憋出一个段子,“像富人那样思考,追寻梦想去奔跑!”,然后按几下键传到微博,微信上。你打开手机按一下键,看到段子后热血沸腾,感觉整个人都不一样了!当然了,出去奔跑是有点累的,所以最后你决定转发一下,证明自己对人生有了崭新的理解和认识。不过你有没有想过,这个世界上最终是能量是守恒的。你按一下键获得的东西,这种东西到底有什么用?
段子流行后面的真实原因是人都是懒惰和想投机取巧的。举个例子来说,要想健康说起来是很简单:少吃,多动,早睡就好了。但是这三点做起来真是太TM的难了!你一边享受着自己喜欢的但是不健康的生活方式,一边深深的自责并瘫痪在床上翻看着手机。这个时候一位满面红光的养生专家发段子了,他说你不用担心,你可以把吃出来的病再吃回去的,只要你每天吃5种不同颜色的食物就可以了!这个时候长相甜美的营养专家也发帖了,她说你只要饭后吃一个蓝色的小药丸就可以了,只要988,五脏六腑乐哈哈!这个时候仁波切也发帖了,他说:南无无量天尊,该吃吃,该喝喝,啥事别忘心里搁!看完这些你心情大好,豁然开朗的同时并且还有点饿了。最后你妈妈来了,她让你别看手机并且早点睡觉。你不耐烦地说知道了。看到没,如果再有人告诉你什么21天从入门到精通的话,你要提高警惕。骗子成功的主要原因就是我们都想不劳而获,切记!
下面说说知识,这个东西你要获得,你就必须要付出成本了。无论是自学还是上学,你都要付出相当的金钱成本和时间成本。所以老师和学校的存在,你也可以理解为一种是半强制的措施,保证你能完成这个相对无聊,枯燥的学习过程,而不至于轻易地半途而废。无论你是通过在线学习,还是自己的兴趣驱动,我都真心希望你,坚持下来一个完整,系统的学习周期。 在学习知识的过程中,好的老师和好的书会让你少走些弯路。好的老师就是我!好书包括《C语言点滴》和《C程序设计新思维(第二版)》,前一本书会回答你看教材时产生的各种问题,后一半书介绍了一个完整的C语言的生态系统。前一本书深入,后一本书广阔。另外,别指望着通过看几本书精通C语言,记住一点,知识和技能是不一样的。
和知识相比,技能不可能通过看书获取,因为技能的获取完全靠自己的实践。所以100%带有强制性,例如你的毕业论文,你公司的任务等。 你要忍受任务带来的压力,要面对现实中各种复杂的问题和挫折。实验,思考,分析,解决。在这个令你最劳累的过程中,你失去了头发,获得了技能。技能的获取没有捷径,拿C语言来说,别人都说C语言坑多,解决这个问题的方法其实非常简单,就是每个坑你就踩一遍!顺便告诉你,这个过程中你是没时间,也没心情去转发段子的!
不过我要恭喜你,根据能量守恒定律,失去头发而获得的技能是最值钱的。在你未来的生活中,你要靠你的技能来赚取你的工资,你的技能的水平也决定了你的生活水平。举例来说,现在美国家庭的平均年收入是6万美元,而一个有技能的C/C++程序猿的年薪在8万~10万之间(一般公司的保守值,大公司在12万左右)。这个数字并不是再鼓励你,相反它是在警告你,学习C语言的路上,其实没有多少人能坚持到最后!当你的第一个hello world程序编译的时候,你面对满屏幕的错误和警告,再一次问问自己,是要继续和世界打招呼,还是转行去当专家和大师!