第33章 Personal Character
个人性格
- 33.1 个人性格是否和本书话题无关
- 33.2 聪明和谦虚
- 33.3 求知欲
- 33.4 诚实
- 33.5 交流与合作
- 33.6 创造力和纪律
- 33.7 懒惰
- 33.8 不如你想象中那样其作用的性格因素
- 33.9 习惯
33.1 Isn‘t Personal Character Off The Topic
个人性格是否和本书话题无关
编程过程非常耗用脑力,这种特性使得个人性格显得很重要。编程工作本质上是项无法监督的工作,因为没人真正清楚你正在做什么。我们都经常有这样的经历——耗用80%的时间着力于项目的个别地方,而花费20%的时间来完成其余80%的工作。
老板无法强迫你成为好的程序员,很多时候他甚至无法判断是否合格。如果你想有所成就,只能全凭自己,这涉及到你的个人性格。
一旦决心成为出色的程序员,你的发展潜力是很大的。各种研究发现,不同程序员创建某个程序所需的时间差可达10:1,同时还发现不同程序员调试程序所需的时间、程序实现规模、速度、错误率和检查出的错误数目也能达到10:1。
你无法提升自己的聪明程度,但性格在一定程度上能够改进。事实证明个人性格对于造就出程序员高手更具有决定性意义。
33.2 Intelligence and Humility
聪明和谦虚
聪明不像是个人性格的一个 方面,也确实不是。碰巧的是,高智商与优秀程序员之间并无太紧密的联系。
什么?难道不需要智商很高吗?
对,是不需要。没人能同计算机那样迅速敏捷。要充分理解一个普通的程序,你得有很强的吸取细节的能力并同时消化它们。如何专注你的聪明才智,比你有多聪明更重要。
正如第5章“软件构建中的设计”所提到的,Edger Dijkstra在1972年的图灵奖演讲会上宣读了一篇名为《The Humble Programmer》(《谦卑的程序员》)的文章。他认为大部分编程工作都旨在弥补我们有限的智力。精通编程的人是那些了解自己头脑有多大局限性的人,都很谦虚。而那些编程糟糕的人,总是拒绝接受自己脑瓜不能胜任工作的事实,自负使得他们无法成为优秀的程序员。承认自己智力有限并通过学习来弥补,你会成为更好的程序员。你越是谦卑,进步就越快。
很多好的编程做法都能减轻你的大脑灰质细胞(指脑力)的负担。
将系统“分解”,是为了使之易于理解。
进行审查、评审和测试正是 为了减少人为失误。
将子程序编写得短小,以减轻大脑负荷。
基于问题而不是底层实现细节来编程,从而减少工作量。
通过各种各样的规范,将思路从相对繁琐的编程事物中解放出来。
你也许会觉得开发更高的智力方是正途,所以无需这些编程拐棍;你也可能对利用这些智力拐棍的程序员不屑一顾。然而实际上,研究表名谦虚的程序员善于弥补其不足之处,所编写的代码让自己和其他人都易看懂,其中的错误页较少。满是错误和延误的开发过程才是邪门歪道。