在“想到”和“得到”之间还有一个“做到”!
——据说是许三多团长说的话
要做一个让自己满意的程序员,就需要持续地追求提高效能。程序员的职业效能是指单位时间里的有效成果。试想一下,你和别人都工作8个小时,别人的代码有用,你的代码没有用,那你的效能就是零。更进一步,如果每一个单位时间,别人都能产出比你多一点,那么日积月累,别人的进步必然远远超过你。从这个角度看,效能是职场竞争的关键因素。
怎么提高效能呢?
保持良好的状态是提升效能的第一步。程序员是用脑袋工作的,脑袋一团浆糊,肯定不可能输出合格的代码。所以,务必要确保在编码时,脑袋是清楚的。要确保以充沛的精力去编码,就必须充分的休息,养成良好的作息习惯。千万不要持续不断的编代码。想想上学的时候,一堂课也只有45分钟。中途必要的休息对于效能是至关重要的。番茄工作法不仅是一种时间管理手段,也是帮助程序员适当休息的好方法。如果真的很疲倦怎么办?睡觉,休息,无论做什么,都比编程好,因为这个时候,写不出什么好代码。
明确编程目标是提升效能的关键。编码的目的是什么?是为了工作还是学习?这个系统需要解决的问题是什么?实现了什么需求?这些问题决定了编程的效能。如果你是做一个企业级应用,选择那些开源的新鲜技术,可能就不恰当。首先,我需要花较长的时间学习,其次,可能会做太多的改造(我见过很多号称解决问题的系统和框架,实际使用时有很多问题解决不了,需要定制和修改),最后,也许我会发现这个新技术完全不适用。这样,走了很多弯路,还没有解决工作中的问题。
“作为军人,我总是先开枪,后问为什么”,这似乎是一句很酷的台词。不过作为程序员,没想好就编码,就只能用愚昧来形容了。程序员的成果当然是编码后的系统,但先想后做是必须坚持的原则。不幸的是,对很多程序员来说,只有敲代码才能“安慰”他们,至于事情本身的结果,反倒不是他们关心的重点。我发现,要养成先想后编码的习惯,对于我来说,也是有很大困难的。我的解决之道是强迫自己写文档。无论做什么系统,规模如何,首先写文档。我认为,如果一个系统的需求、设计都不能清晰地写出来,那么编码肯定是一塌糊涂,反复折腾的。其实,最简单的方式就是用笔在纸上写要点、画图,然后照个照片保存在印象笔记里。
最后,要提升效能,掌握总结归纳的方法很重要。遇到问题,找到答案并不是终点。关键是进一步的分析,以提升自己的能力。总结问题,第一步是区分问题的性质,是状态不好、经验不足、知识缺乏还是什么原因,第二要理解解决方案的基本原理。很多程序员只要找到答案就万事大吉,至于答案背后的知识点,以及解决问题本身的过程,就被抛在脑后了。下一次,遇到问题依然很低效的处理。
然而,说什么不重要,还是要做到。这又是一个关于个人生活方式的问题:自律。
网友评论