高明的程序员善于通过阅读程序来发现有价值的东西,并不断地提高自已的水平。
我们很多的学习都是从阅读开始,学一门语言,学一门技术,一般都会先选择好的老帅或好的教材,去听,去阅读,然后慢慢地理解并掌握,阅读在我们的学习与生活可以说无处不在,阅读是我们学习知识增长见识扩大视野的关键环节。
在大四之时,我开始感觉到课本知识的局限性,特别是在我领悟到自已不得不干技术这行当时,我就更加迫不急待地去学习很多的编程技术,我开始不断地阅读各种各样的编程书籍,也开始被一行又一行的代码所吸引,每当理解到一段代码的作用时,心里就特别的愉悦与富有成就感,当我用DELPHI写出第一个象样的程序时,激动与兴奋了好几天,同学们都在兴高采烈地描绘着毕业后到某某政府机关或金融机构大显身手的宏伟蓝图,我是羡慕的,也是无奈的,我不得不零时抱佛脚,疯狂地阅读,努力学好一门技术,为的是能找到工作混口饭吃,先生存再谈发展。
温伯格大师在《程序开发心理学》里认为程序开发也是写作的一种形式,它与其它的写作形式没有什么两样。众所周知,作家能写出好书,大都博览群书,可以说阅读是提高写作水平的一条重要途径,同样的,程序员学习程序开发,阅读程序对水平的提高也有很大的促进作用,程序员通过阅读程序,可以发现与总结出有价值的东西,比如一段代码之所以如此编写,是由各种因素决定的,有的是因为计算机的局限,有的是因为程序语言的局限,有的是因为程序员本身的水平,而有的则可能是因为标准规范的约束,通过仔细地阅读程序,你会发现并理解到这些因素,并从中受益匪浅。
那么,我们应如何来阅读程序呢?
温伯格不愧为大师级的人物,不仅知识渊博,而且字里行间还非常地幽默风趣,他认为“阅读程序与阅读小说是不一样的,阅读程序的最好方法并非是依次从头到尾。程序不像迷语,我们无法从末尾几页找到答案,也不像一本引人入胜的书籍,只需直接翻到褶皱最多的那几页,我们就能找到最精彩的片断。”简而言之,程序中最好的部分所出现的位置是不确定的,因此我们在阅读程序时,最好逐一考察研究每一段代码,搞清楚每一段代码的来龙去脉,理解每一段代码在程序中所起的作用,“进而形成一个虚拟的程序结构,并以此为基础来进行阅读”。
我开始学习VC++的时候,每学到一个知识点,先从理解概念开始,然后找一段别人已写好的程序来阅读,理解每一行代码在整个程序中的作用,如果这行代码错了会有什么样的结果,如果没有这行代码又会怎么样,阅读后再去上机操作,验证自已的理解是否正确,这样学习虽然较花时间,但有所收获,有的初学者很急躁,不到一个月的时间,就吹牛自已看了多少本书,但学到的只是一些表皮的知识,没有什么用的,还不如认真地钻研一本书,效果可能更加显著,其实你也会慢慢发现,书店里的书虽然多如牛毛,但都大同小异,这很是悲哀!
综上所述,我们需要理解点:一是程序被编写成什么样子,取决于众多的因素;二是阅读程序不能象阅读小说,程序中精彩的部分出现的位置是不确定。另外,阿蒙建议同行们善于通过阅读程序来学习程序开发,每学一个知识点,先去阅读与分析现有的程序,相信对你的学习是有促进作用的。