同学们好:
先自我介绍一下,我是你们的助教吴喆(厚颜无耻地要求大家叫我吉吉老师:-D),本科学的电子,所以陆陆续续接触了不少C/C++的工作,曾经被编码折磨得死去活来,如今却对其念念不舍,颇有点“斯德哥摩尔综合征”的味道,或许,我就是个受虐狂吧,哈哈(不禁想起三国杀里的黄盖对周瑜说的话——请鞭笞我吧,公瑾!)。
大学学习过程中还是走了不少弯路的,而且还有些弯路是“致命的”,当时也并不是无人点拨,只可惜我一根筋,听不进相左意见,直到撞了南墙才肯回头认错,痛改前非,现在在外工作,方知踏实学习之珍贵,对校园生活也甚是怀念起来。目前在用C语言教小朋友信息学奥赛,所以更是回忆起大一学C语言的点点滴滴......
大一,多么的naive!当时的我用“无知”或者“浅薄”二字形容无比适合,抱着搞硬件电路,那就可以“混”软件的态度,用傲慢演绎了何谓二货。那时太“专”应试了,可能刚高考完,思维还没有从题海中得到释放,对于新新学科,尤其是暂时看不到未来何用的学科,产生了鄙夷的态度,这是很极其可悲的!因为起步就落后了别人一大截,技能指数增长的初期没牢靠,所以后期就显得乏力,那会儿自己还在线性缓慢进步时,别人已经指数爆炸了。
除了傲慢,还有懒惰,不是手工活儿的懒惰,是思维上的懒惰。记得当时习惯了算数学题的快速、简洁、美观,对起步如负铅块的C语言课程感到极为不适,为何如此讲究语法?怎么计算个数还要声明类型?格式输出有那么重要吗?......这种看似小问题,乃至有人认为不是问题的问题,都是跳跃思维在作怪,恰恰会阻碍大家后续前进,会减慢登上C语言高级台阶的速率,我们应该用严谨有序的逻辑思维或程序思维来做好铺垫。
在此,踩过荆棘的大师兄奉劝诸君,入门需谨慎,骄懒有风险!
以上闲扯了些开场白(不喜者请跳读,这里可用跳跃思维哈==),接下来讲点干货(fucking goods)。
1.为什么要学习程序设计呢?
想先问一个问题,大家此刻在网站上看到了我写的博客,请问它从“无”到“有”怎么来的?相信这个问题要是详细展开,绝对没几个人能回答得上来,但这就是计算机技术帮助我们做到的,而要理解计算机技术,从程序设计开始是一件很有意义的事,不仅能了解计算机程序工作原理,更是掌握了编写程序的技能,何乐而不为呢?
2.为什么选择C语言呢?
程序语言有很多,选择有很多,选C有优势,可以解决某些小程序的编程,将来学C++也好过渡,它比较基本。(以上都在胡拽,其实我个人推荐初学用Python。。)
3.怎么学习C程序设计呢?
①给自己一个暗示,训练思维和开拓眼界为主——原来大千世界还有一种这样的思考方式。这样就不至于在困难面前低头,可以增添自己的认知智慧,当然,谁不想让自己变得更聪明的可以排除除外;
②掌握好基础语法,重视所有出现的概念。有的概念一时半会儿搞不清楚的,也要记下来,为后文做好铺垫。。(怎么感觉读C语言课本跟在读小说似的)
③重视实践,先给自己要编写1000行代码的目标。有的同学看书看明白了,就觉得重码一遍费力,但是我可以很认真负责地告诉这位同学,请相信人脑的“失真度”,信息从“图像”到“字符”绝对存在损失,这就极其要求大家动手操作了,这样才能训练大脑的神经回路,得到精准的知识记忆,再在记忆的基础上,打通任督二脉,拓宽大脑的工作记忆空间,获得对C语言知识的更高层次的认识;
④获得反馈,咬定助教不放松。。系统(更何况在新生学习初期一般都不成系统)在没有外界能量输入的情况下,一定是会熵增的,也就是变得复杂,变得混乱,所以新生们,你们一定要多多询问老师,尤其是拿人钱财,替人消灾的助教老师啊,尤其是那个叫吉吉老师的助教啊,不要放过他,把问题都砸向他吧,让他帮助你们获得良好的反馈,然后熵减,然后复利,然后飞飞飞飞飞起来~~~
听说你们要开始学C了,诸君看罢此文,都准备好启程了么?