如果写代码是一门科学,那么所有开发人员的表现几乎没有区别。
但事实并非如此。
如同一门艺术,在朝着同一结果努力时,两个开发人员不会有同样的思维或认知。尽管一些人很难达到想要的结果,但少数人却能水到渠成,就好像每当他们开始写代码或者解决问题时,就忽然顿悟了。
软件工程专家史蒂芬·麦康奈尔(Steve McConnell)的一篇博客中,讲述了20世纪60年代后期由萨克曼(Sackman)、埃里克森(Erikson)和格兰特(Grant)展开的一项原始研究。他们发现,最好和最差的程序员的原始编码时间之比大约为20:1。最有趣的是,他们发现程序员的经验与代码质量或生产效率无关。
简言之,能否写出好的代码并不是区分良好程序员和优秀程序员的唯一因素。
先从良好程序员开始。那么,良好程序员有什么特征?
· 具有优秀的技术技能,能写出干净整洁的代码。
· 具有扎实的开发技术知识和解决问题的专业技术。
· 了解编程的最佳实践以及何时使用它们。
· 对编程有着持久的热情,并积极为团队做贡献。
· 备受团队的其他成员尊敬和喜欢。
所以,如果你是一名程序员且具有以上特征,那么恭喜!你是一名良好的程序员。你应该感到自豪。
现在开始介绍优秀的程序员。
· 罕见难有的人才。
· 生产效率是良好程序员的3倍,是糟糕程序员的10倍。
· 属于顶尖的1%,不仅写代码,还拥有一系列无形的特质,使其在众多程序员中脱颖而出。
简言之,优秀程序员=良好程序员+一系列无形特质。