我对优秀程序员的理解

虽然自己也写了十几年代码,做了十几年的程序员,从最初级程序员,一步步走来,但是我自认自己算不上优秀的程序员,只能说是一个合格的程序员,但是非常有幸的是在我工作的十几年时间里,经历过的6,7家公司中我结交和认识了很多优秀的程序员,从他们身上我总结了一些我对于优秀程序员的理解。

1.扎实的基础知识,这点相信大部分人都会认可的,没有一个坚实的基础就不可能构建摩天大楼

2.对于问题的深究不放,优秀的程序员对于在工作中出现的一个bug,不会仅仅停留在解决bug的层面上,他们还会深入的发掘这个bug后面的知识,会深挖这个问题背后的原因,这样他们不但能够掌握更多的知识,而且对于已有的知识也是个巩固和加强

3.超强的查错调试能力,原则上来说,我们都是追求保证自己写出的代码不出现问题,但是现实是,很少有人可以做到自己的代码写完后,肯定不出问题,因为有太多的可能性导致出问题,特别是客户端程序,一千台机器就有一种环境,就可能会出现你意想不到的问题,服务器的程序相对来说,环境的问题要小些,但是服务器程序可能面对的大负荷带来的问题也是意想不到的,这个时候就非常考验一个程序员的查错和调试能力,优秀的程序员能够利用其调试手段准确的定位问题并解决问题,所以Troubleshooting能力是优秀程序员的一个最主要的特征

4.优秀的程序员在对待新技术的使用上,都会采取非常谨慎的态度,他们对于新技术都是非常敏感的,会第一时间的去学习新技术,但是如果在实际工作中需要用到某种新技术的时候,他们一定会判断自己对于这种新技术是否能够完全把控住,出现问题后自己是否有能力找到问题解决问题,如果不能,那么就不会采用

5.优秀的程序员一定都是具有天赋的,这种天赋就是作为优秀程序员应该具备的才干,这点也非常关键,优秀有时候真的不是你花时间花功夫就能做到的,真的需要具有天赋

6.优秀的程序员,至少我遇到的都非常低调,从来不会认为自己比别人有多强,也非常愿意和别人交流自己所掌握的知识

看完《黑客与画家》后,我觉得我原来认为的优秀程序员就可以理解为黑客——专家级的程序员。