- 消除重复
代码需要消除重复,工作的习惯也要消除重复。不要拘于固有的工作状态,重复的工作状态往往使人陷入舒服的假象,陷入三年效应的危机。
- 提炼知识
首先我们学习的不是信息,而是知识。知识是有价值的,而信息则没有价值。只有通过自己的筛选,提炼,总结才可能将信息转变为知识。
- 成为习惯
知识是容易忘记的,只有将知识付诸于行动,并将其融汇到自己的工作状态中去,才能永久性地成为自己的财产。例如,快捷键的使用,不要刻意地去记忆,而是变成自己的一种工作习惯;不要去重复地劳动,使用 Shell 提供自动化程度,让 Shell 成为工作效率提升的利器,并将成为一种工作习惯。
- 更新知识
我们需要常常更新既有的知识体系,尤其我们处在一个知识大爆炸的时代。我痛恨那些信守教条的信徒,举个简单的例子,陈旧的代码规范常常要求 if (NULL != p) 这样的 YODA Notation 习惯用法。但是这样的表达编译器是高兴了,但对程序员是非常不友好的。“if you are at least 18 years old” 明显比“if 18 years is less than or equal to your age”更加符合英语表达习惯。有人驳论此这个习惯用法,但是现代编译器对此类误用通常报告警告;而且保持 TDD开发节奏,小步前进,此类低级错误很难逃出测试的法网。
- 重构自我
学,然后知不足;教,然后知困。不要停留在原点,应该时刻重构自己的知识体系。在刚入门 OO 设计的时候,我无处不用设计模式;因为我看到的所有书籍,都是在讲设计模式如何如何地好。直至后来看到了演进式设计,简单设计和过度设计的一些观点后,让我重新回归到理性。
- 专攻术业
人的精力是有限的,一个人不可能掌握住世界上所有的知识。与其在程序设计语言的抉择上犹豫不决,不如透彻理解方法论的内在本质;与其在众多框架中悬而未决,不如付出实际,着眼于问题本身。总之,博而不精,不可不防。