当我们在为掌握了最新的技术而欢欣雀跃时,但这些东西并不是用来解决问题的根本——它们只是用于解决问题的简单工具而已。我们必须非常谨慎,不要对某项正好喜欢或者正好很火的特定技术走火入魔。否则,我们将进入这样的思维怪圈:把掌握的那项技术比做是锤子,在思考问题时,会自然的把所有的问题都想象成是锤子可以解决的钉子。
2.写尽可能少的代码
这句话看起来有一些矛盾。但是我们在尝试解决问题的时候应当做到尽量编写更少的代码。意思是我们应当尝试用更精简的算法来实现所需要实现的功能。
优秀的软件工程师写尽可能少的代码。
伟大的软件工程师删除尽可能多的代码。
3.注释是最后选择
鲍勃·马丁曾经说过:“当你在为一段代码写注释的时候,你应当对自己糟糕的表达能力而反思。”这并不意味着就不要写注释了。大多数情况下是可以避免的,选择用更好的命名方式来取代它。只有在使用命名都无法表述清楚某个方法或者变量的目的时,注释才是最后的选择。
注释存在着误导的风险。在其它代码更新后,与某些更新前代码相关的注释常常会得不到同样的更新,这就导致了某些注释会变得非常的危险,它们很可能会把你引导到一个错误的方向。
4.自行测试
很多的软件开发人员认为测试代码只是QA人员的工作。这是不对的。保持质量是我们每个人的责任。你应当在报告编程工作完成之前,花费几分钟时间运行测试场景进行自我检测。
5.Get新东西
有句名言“刀不磨要生锈,人不学要落后。”这句话是很有道理的,因为无论是否获取到新的知识,你每天都会遗忘掉一些以前的东西。今天的技术发展日新月异,如果你不改善自己的技巧,学习新的东西,你很快就会被甩开。
6.乐在其中
这是非常正确的。或许,你进入这个行业仅仅是因为它的薪水可观。选择一份报酬丰厚的工作这并没有错,但是还有更好的选择,比如医生或者律师。事实上很多人选择做软件开发还有一个原因,那就是他们喜欢写代码。在你被工作压力所累的时候,不要忘了你选择这份职业的初衷。
7.你不是超能人
在你学到了很多知识的时候,你仍然有很多东西不知道。意识到这点很重要,因为它可以驱使你去了解更多的东西。不知道问题的所有答案没有关系,不了解某个东西说出来并寻求帮助也无关紧要。在很多情况下,你可以选择现学现用。
8.化繁为简
所有的问题都可以进行分解。而最优雅的解决方案通常都非常简单。但是,要变得简单并不容易,这需要许多的工作。在解决问题时,可以先找到一个较为复杂的笨方法。在此基础上进行努力改进和提炼,使它在正确的基础上变得简单。这需要花费很多时间和努力,而人类不正是因为这个过程才慢慢变得聪明么?