33 个人性格
33.1 个人性格是否和编程相关
- 软件开发过程中,人们很少注意个人性格问题,然而却是非常重要的一点,重要到取决定性作用。
- 编程工作本质上是一项无法监督的工作,老板或上司无法强迫你成为好的程序员,很多时候他甚至无法判断你是否合格。如果你想有所成就,只能全凭自己,这涉及到个人性格问题。
- 你无法提升自己的聪明程度,但性格在一定程度上可以改进。事实证明,个人性格对于造就出出色的程序员有决定性作用。
33.2 聪明和谦虚
- 成为出色的开发人员,高智商并不是必备条件,谦虚的性格和总结经验的习惯能让你事半功倍。
- 很多好的编程做法可以减轻你的脑力负担:
- 将系统“分解”,使之易于理解。
- 进行复查工作,减少犯错几率。
- 将子程序编写的简短明了,减轻理解负担。
- 通过各种规范来避免错误和把控代码质量(编程规范)。
33.3 求知欲
- 在开发过程中建立自我意识:从琐碎的工作中找到自己的不足和短板,从项目中挖掘关键点。
- 实验:对编程和开发过程做实验,是学习的有效途径之一。
- 阅读解决问题的有关方法:解决问题是开发中的核心行为,同时也是个人成长中最有效的行为。
- 在行动之前做分析和计划:很多程序员在写一个功能的时候没有认真思考这个功能就开始了编码,首先应该先分解功能,列出重点再开始编码。
- 学习成功的项目开发经验:研究高手的程序,分析他的设计和想法,找出他的优点和不足。积极主动的找专家评论你的代码。
- 阅读其它资料:书籍、博客、github、论坛、资讯等。
- 同专业人士交流:多和身边的同行交流、在论坛交流、加入群组交流、帮助别人解决问题等。
- 向专业级别看齐:把自己定位在较高的目标,如技术负责人。要明白技术负责人的编程工作只有20%,其余都是与人打交道。作为技术带头人写代码是写给他人看的,而非机器。
- 再厉害的程序员不重视代码的可读性,通常也只能算是熟练工种。
33.4 诚实
- 不是高手时不假装是高手:不要不懂装懂,或者以为自己好像懂了。
- 乐于承认错误:要承认自己观点的错误,接受他人的正确观点。
- 透彻的理解自己写的代码,而不是只要编译运行没问题就算完了。有很多程序员写代码试着把与改成非,运行一下发现恰巧好了,这种情况只能说明你的程序可以实现功能了,不代表没有问题。
- 提供实际的状况报告:这个是对自己有清醒认识的表现。
33.5 交流与合作
- 真正优秀的程序员知道怎样同别人融洽的工作和娱乐。
33.6 创造力和纪律
- 新入行的年轻人崇尚创造力,这没有问题,应该鼓励,但是创造力不代表没有纪律。安全稳定的程序必然会要求会有很多规范和限制。
33.7 懒惰
- 拖延不喜欢的任务:这种行为没有任何益处。公司不会喜欢你这样的员工,对于你自己也不会有任何提高。
- 迅速做完不喜欢的任务,以拍拖之:不喜欢的任务,并没有想象的那么麻烦,养成立即快速干完的习惯,然后去做自己喜欢的事情,这是“合理懒”,因为从结果上看是解决了问题。
- 编写某个工具来完成不喜欢的任务,以便以后可以摆脱这类事情:这是最具价值的“高级懒”,有效编程中最重要的工作是思考,而人思考的时候通常不会看上去很忙,如果一个程序员总是忙个不停,那他肯定不是一个优秀的程序员。
33.8 不如你想象中那样起作用的性格因素
- 坚持:在开发过程中总会遇到一些奇葩问题,怎么都找不到原因,如果你这时候坚持要突破它,当你耗费大量时间和精力解决后,固然很有成就感,但是真的有效吗?我们不妨另辟蹊径,尝试换个思路,绕过这个问题,以后回头再试这个问题,可能回头再看的时候就会豁然开朗,这是很常见的。
- 经验:不要固守经验,要适应变化,敢于尝试。
33.9 习惯
- 好习惯很重要,因为程序员写代码的好多行为都是无意识完成的。比如代码规范,缩进、空行、注释等,不是想着要去加的,优秀的程序员都是习惯就完成了这些的。任何有成就的优秀程序员,前几年就做的很好,有优秀的编程习惯、学习习惯等。
- 如何改掉已经形成的坏习惯这是个大话题,不是这里讨论的。
- 还有一种方式是练习新习惯,有了新习惯,老习惯就自然会消失。
33 要点总结
- 人个性格对其编程能力有直接影响。
- 最有关系的性格为:谦虚、求知欲、诚实、创造性和纪律、已经高明的偷懒。
- 小聪明、经验、坚持和疯狂有时候害处往往比益处大。
- 学习新知识,而且必须是在工作之外的学习才是真正的提高。
- 好性格与培养正确的习惯关系很大。