世界上的很多事情都是有规律的,就像 《高效能人士的七个习惯》,优秀的程序员也有七个主要特征。这些特征有些是先天具备的,也就是天赋,但有些是在日常的编程工作中学习、进步、积累、总结获得的。每个程序员都想知道自己是不是一个优秀的程序员,那么,就参考一下下面这7条,看看自己是否达到了做一个优秀程序员的标准。

1、喜欢帮助他人,照顾比自己差的程序员

程序员的脾气通常很大,常常会和客户、同事,甚至老板在程序问题上发生争执。优秀的程序员能够站在对方的立场上想问题,能理解客户的无知、初级程序员的无能、老板的无奈,他总能用最大耐心来帮助他人,帮助同事,帮助新来的员工,使他们能快速成长。

2、对编程有激情

很多程序员干这一行只是为了挣钱,如果有更好的职业,他们会毫不犹豫的辞掉程序员的工作。而优秀的程序员热爱编程,喜欢钻研代码中的问题,他们感到能指挥电脑来帮助人们和自己解决现实生活中的问题是一种神奇的能力。当遇到问题无法解决时,他们会茶不思、饭不想,无法入睡。

3、君子善假于物

优秀的程序员知道如何能更高效的完成任务,如何更能有效的解决问题。当遇到问题时,不钻牛角尖,善于利用外部工具解决自己的问题,特别是能熟练应用搜索引擎。初级的程序员只会使用百度和百度知道搜索问题,而高级的程序员/优秀程序员使用谷歌和Stack Overflow或者MSDN forums这类网站寻找更优秀的答案。

4、务实而又灵活

很多程序员有一个共同的特征,就是不喜欢有约束,不喜欢制度,不喜欢签到,不喜欢写日志,不喜欢写测试,不喜欢晨会等等。但优秀的程序员愿意遵守制度,他知道程序员的个人英雄主义是天性,但开发一个正式的项目是一个团队的工作,有集体就要有纪律。而优秀的程序员并不是墨守成规,生搬教条,他们会根据环境的变化、形式的发展来不断调整自己的策略,使制度更好的为工作服务。

5、不仅关心技术方面的知识,同时关注非技术方面的知识

不称职的程序员喜欢临时抱佛脚,只有在需要的时候才去学习。而优秀的程序员会去主动学习各种相关知识,对各种知识来源都有一种开放的心态,而不会象有的人那样固步自封。 而且,并不只局限在跟职业相关的技术类知识,同时他也会学习任何感到有趣的知识,比如沟通技巧等。

6、懂得放弃

在中国做软件的企业里有一个通病,就是喜欢堆砌功能,总梦想做一个大而全、一个万能的、一个放之四海皆可用的软件,但现实情况是,这的软件通常做不成功,很多半途而废。优秀的程序员知道何时如何放弃,当大限临近,人手不够,需求不清时,他们会果断的判断出那些功能应该延后,那些功能应该力保上线。

7、有企业精神

很多程序员喜欢认为自己是打工者,以打工者的身份看待自己,以打工者的心态工作。优秀的程序员会把自己当成企业的主人,他们知道企业的利益和自己休戚相关。而且,优秀的程序员会想象如果自己创办一家企业,需要哪方面的知识,缺少哪方面的技巧。只有将自己放在主人的位置上,你才能真正理解经营一个企业家需要的技能。