黑马程序员技术交流社区

标题: 听大神谈如何提高编程水平(BY 王垠) [打印本页]

作者: 唯有繁星    时间: 2015-12-1 00:27
标题: 听大神谈如何提高编程水平(BY 王垠)

既然“天才是百分之一的灵感,百分之九十九的汗水”,那我先来谈谈这汗水的部分吧。有人问我,提高编程水平最有效的办法是什么?我想了很久,终于发现最有效的办法,其实是反反复复地修改和推敲代码。

在IU的时候,由于Dan Friedman的严格教导,我们以写出冗长复杂的代码为耻。如果你代码多写了几行,这老顽童就会大笑,说:“当年我解决这个问题,只写了5行代码,你回去再想想吧……” 当然,有时候他只是夸张一下,故意刺激你的,其实没有人能只用5行代码完成。然而这种提炼代码,减少冗余的习惯,却由此深入了我的骨髓。

有些人喜欢炫耀自己写了多少多少万行的代码,仿佛代码的数量是衡量编程水平的标准。然而,如果你总是匆匆写出代码,却从来不回头去推敲,修改和提炼,其实是不可能提高编程水平的。你会制造出越来越多平庸甚至糟糕的代码。在这种意义上,很多人所谓的“工作经验”,跟他代码的质量,其实不一定成正比。如果有几十年的工作经验,却从来不回头去提炼和反思自己的代码,那么他也许还不如一个只有一两年经验,却喜欢反复推敲,仔细领悟的人。

有位文豪说得好:“看一个作家的水平,不是看他发表了多少文字,而要看他的废纸篓里扔掉了多少。” 我觉得同样的理论适用于编程。好的程序员,他们删掉的代码,比留下来的还要多很多。如果你看见一个人写了很多代码,却没有删掉多少,那他的代码一定有很多垃圾。

就像文学作品一样,代码是不可能一蹴而就的。灵感似乎总是零零星星,陆陆续续到来的。任何人都不可能一笔呵成,就算再厉害的程序员,也需要经过一段时间,才能发现最简单优雅的写法。有时候你反复提炼一段代码,觉得到了顶峰,没法再改进了,可是过了几个月再回头来看,又发现好多可以改进和简化的地方。这跟写文章一模一样,回头看几个月或者几年前写的东西,你总能发现一些改进。

所以如果反复提炼代码已经不再有进展,那么你可以暂时把它放下。过几个星期或者几个月再回头来看,也许就有焕然一新的灵感。这样反反复复很多次之后,你就积累起了灵感和智慧,从而能够在遇到新问题的时候直接朝正确,或者接近正确的方向前进。



作者: 堕落天使    时间: 2015-12-1 07:40
给力,谢谢分享
作者: sytoby    时间: 2015-12-1 09:29
很实在,很好
作者: cherrycool    时间: 2015-12-1 09:32
对自己要求严格一点 精益求精
作者: 那些年的小马哥    时间: 2015-12-1 15:32
收获很多,楼主讲的很实在,不错
作者: liruixue    时间: 2015-12-1 15:38
说的好,赞一个
作者: 杨奉泊    时间: 2015-12-1 19:01
记得了 看样以后我也得这么学才行啊

作者: 、Z    时间: 2015-12-1 22:42
听你这么一分析。感觉确实如此,但是对于我这种还是处于基础基层的人,还是需要多敲,多锻炼手感。等到了自己闲暇的时候,这时候对以前的代码的提炼和精简尤为重要
作者: wkop    时间: 2015-12-1 23:36
"反反复复地修改和推敲代码" 谢谢分享!
作者: 火火火火鸟    时间: 2015-12-2 00:25
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2