优秀的程序员的七个特质

从技术层面来讲,和我工作过的程序员良莠不齐。之前和优秀程序员搭档使我非常轻松,不禁使我思考一个问题:优秀的程序员都有那些特质?或者说什么成就了他们高效的编程工作。

以我个人看法,年纪、学历、薪水这些外在因素和是否优秀没有什么任何关系。它取决于你的内在,也就是思想。我观察到这些优秀的程序员都有一些相似的习惯,这里不是说他们所选择的语言、对结构数据的理解、工作经验;是他们工作方式、态度,以及他们对外演讲的收放自如。

当然,优秀的程序员远不止具备上述的那些特质,以偏概全的绝对判断也不可取。但是,至少当你具备其中的一部分,就离优秀程序员不远了。

调查研究(未雨绸缪或者谷歌搜索)

随便这种特质的术语叫什么,都不影响出现越来越多已经通过某种方式解决的编程问题。只有你想不到,没有你做不到,这世界上已经没有绝对的新鲜事儿了。优秀的程序员在解决问题之前就会通过GitHub图书馆、网络博客、沟通互助等形式来做调查研究。

解读、研究错误信息

解析堆栈路径信息很麻烦,但是不这么做的话,就不会知道哪里有问题。况且,高效的程序员是乐于深入研究问题,但是一般的程序员却不愿意迎难而上,研究解决问题。它频繁的出现以至于到不可置信的地步。

检查源代码

文档显示、测试结果甚至是自己的团队,都有可能出现不是本意的错误或者误差。所以,你如果想要确切明白工作细节,就必须检查源代码。

不必担心它不是你最擅长的语言。一个Ruby程序员可以找出其中C语言库的错误,任何事情开始做就有可能成功,不做永远不会成功。

处在封闭源代码的环境会让事情变得很棘手,但是原则不能被动摇。结果低效的程序员宁愿被问题困扰无法解决,也根本不愿意去检查源代码。

大胆主动尝试

必须自愿、主动的去做一项工作。他们内心有着难以控制的冲劲儿,遇到问题和困难会显得很兴奋,当然有时候也会显得不够沉稳。但是这种解决问题的本能反应,绝对是会起到正面的效果。

懂得绕过危机

初级程序员一般都有一个共同点:处理问题不够全面,总是陷入危机和逃离危机的恶性循环。而且往往不会反省自己的错误,反而在运行良好的代码上浪费时间调试。初级程序员的理性处理很少,基本都是凭借直觉面对问题,缺少严谨的分析。

相反,高级程序员是深入研究问题的根源,并且站在一个宏观的角度去思考,为以后可以避免危机做了很多的铺垫和准备。

善于沟通

编辑就是另一种形式的沟通交流,写代码和写文章是一样的道理,能得到用户和读者的喜爱最重要。所以,会写文章、报告,在大会谈吐自如的初级程序员,在将来一定也会成为高效程序员。英语和代码有相似之处,用圆括号、括号和单个字母的函数写出一行代码当然是有可能的,前提是有人理解,优秀的程序员会花时间以各种渠道交流、沟通。

保持工作热情

个人认为是这是最重要的特质(当然,任何工作都需要高度的工作热情)俗话说,不能爱一行干一行,应该要干一行爱一行,它说的就是这个意思。优秀的程序员大多喜欢编程工作,反而初级程序员对编程充满不屑和厌倦,大多数初级程序员仅仅为了生活和薪水去编程。

有的程序员利用周末时间去无偿做自己喜欢的项目,所以他们每天都在创新和进步,最终他们得到不同的生活方式和丰厚的薪水。这才是成为优秀程序员真正原因。对于这些程序员来说,编写代码是改变世界的方式,也是获得别人尊敬的目标。

翻译:曲径

英语原文:What Makes a Good Programmer Good?

发表评论

Close Menu