初识C语言@2008年
大一的时候就开设了C语言的课程,当时没有电脑。想着就是一门语言嘛,那就是要多背诵了。但是我的英语也学的不怎么滴,于是乎,我拿着C语言的教课书,默记,甚至跑到学校的后山大声朗读背诵。学期末考试,66分,后面的编程题完全不知道怎么下笔……在学习一门相似的东西的时候,能否能够借用你相似经验,需要看两方面的因素:
- 他们本质是否相似。
- 另外一项技能你学的怎么样。
他们本质类似吗?一个是与人交流的语言,另一个是和机器相关的操作,一个可以很模糊,有很多种选择,另一个确实很精确,少个分号,都不行。人类语言更多的目的是为了交流彼此的想法,计算语言的目的是为了编程。他们的本质是很不同的。和编程类似的东西,我一直找不到一个合适的比喻,4年以后看到格雷厄姆(黑客与画家作者,也是YC创业之父)对编程的比喻,他认为编程和画画最为相似。我虽然没有学习过画画,但是随着经验的增加,最真实的编程过程的确和画画很像,在一个草稿上不断的修改。
英语通过背的方式学的也并不怎么样,人们都是借鉴优秀的经验,想想但是我借用劣势的经验,脑子真是进水了。
依然记得学C语言的第一节课,老师就说这们课是你们以后吃饭的本领,怎么做,五个字“多练多动手”。貌似理解了道理,没有按照这个道理去做,和左耳进右耳出没有什么区别。
了解C语言@2010年
那年夏天我认为自己失恋了,心里很难过,想找过途径发泄。写下说说“吃饭为了活着,活着为了编程”。在后面连续的15天时间里面拿着C语言课本,看一遍程序,而且是要看明白,不懂的地方去查,去问一定要明白,合上书本,在电脑上写一边,遇到错误,上网搜索解决方法,踩过 “;”、编写错误、数组大小、字符大小等坑,慢慢爬出来。那暑假的15天时间,就是按照“吃饭为了活着,活着为了编程”这个标准过得,经过这么一段时间真正学会了C语言的语法。除此之外还有几句话一直在心里回荡
- “编程先不问为什么,先要知道是什么”
- 只有自己做一边,才知道自己是漏掉什么的情况下“看会的”……
理解并会用C语言@2012年
12年找工作又系统地看了一遍C语言课本这是基础,接着看《程序员面试宝典》,这本书给了很多企业面试的例子,企业之所以会面试这些问题,很大部分原因是人们常犯,面试的例子便是知识的精华,尤其对于C语言这种使用性很强的学问上。当时看的时候有很多看不懂,并非语法不懂,而是内存和习惯用法上。找工作的时候还算顺利,进了华为.
在入职之后的三个月里面才真正的会用C语言。那个时候,大家竞赛这使用C语言做 OJ(在线评测题)。这阶段,不仅仅是看你对语法的理解,更重要的是,你怎么使用C语言去解决一个又一个问题。不断的解决问题的过程中,再也不觉得C语言陌生了,感觉对C语言的认识达到了非常熟悉的程度。
知识不是学会的,而是用会的,用着用着就会了。
内化C语言 @ 2012-2016
这个阶段使用C语言,不仅仅是能够写出可以使用程序,更需要做的的是写出大家都看得懂的程序。衡量代码不是代码多复杂,而是面对一个复杂的问题找到一个简单易行的解决办法。这个时候考虑的很多问题超出语言本身,代码架构的设计,系统资源的使用,开发计划的因素,合作开发人员的能力,跟踪交付等等。这个时候的没有意识到自己在用C语言写代码,而C语言是我的一种表达方式。