优秀的程序员的七个特质
从技术层面来讲,和我工作过的程序员良莠不齐。之前和优秀程序员搭档使我非常轻松,不禁使我思考一个问题:优秀的程序员都有那些特质?或者说什么成就了他们高效的编程工作。
以我个人看法,年纪、学历、薪水这些外在因素和是否优秀没有什么任何关系。它取决于你的内在,也就是思想。我观察到这些优秀的程序员都有一些相似的习惯,这里不是说他们所选择的语言、对结构数据的理解、工作经验;是他们工作方式、态度,以及他们对外演讲的收放自如。
当然,优秀的程序员远不止具备上述的那些特质,以偏概全的绝对判断也不可取。但是,至少当你具备其中的一部分,就离优秀程序员不远了。
调查研究(未雨绸缪或者谷歌搜索)
随便这种特质的术语叫什么,都不影响出现越来越多已经通过某种方式解决的编程问题。只有你想不到,没有你做不到,这世界上已经没有绝对的新鲜事儿了。优秀的程序员在解决问题之前就会通过GitHub图书馆、网络博客、沟通互助等形式来做调查研究。
解读、研究错误信息
解析堆栈路径信息很麻烦,但是不这么做的话,就不会知道哪里有问题。况且,高效的程序员是乐于深入研究问题,但是一般的程序员却不愿意迎难而上,研究解决问题。它频繁的出现以至于到不可置信的地步。
检查源代码
文档显示、测试结果甚至是自己的团队,都有可能出现不是本意的错误或者误差。所以,你如果想要确切明白工作细节,就必须检查源代码。
不必担心它不是你最擅长的语言。一个Ruby程序员可以找出其中C语言库的错误,任何事情开始做就有可能成功,不做永远不会成功。
处在封闭源代码的环境会让事情变得很棘手,但是原则不能被动摇。结果低效的程序员宁愿被问题困扰无法解决,也根本不愿意去检查源代码。
大胆主动尝试
必须自愿、主动的去做一项工作。他们内心有着难以控制的冲劲儿,遇到问题和困难会显得很兴奋,当然有时候也会显得不够沉稳。但是这种解决问题的本能反应,绝对是会起到正面的效果。
懂得绕过危机
初级程序员一般都有一个共同点:处理问题不够全面,总是陷入危机和逃离危机的恶性循环。
而且往往不会反省自己的错误,反而在运行良好的代码上浪费时间调试。初级程序员的理性处理很少,基本都是凭借直觉面对问题,缺少严谨的分析。
相反,高级程序员是深入研究问题的根源,并且站在一个宏观的角度去思考,为以后可以避免危机做了很多的铺垫和准备。
善于沟通
编辑就是另一种形式的沟通交流,写代码和写文章是一样的道理,能得到用户和读者的喜爱最重要。所以,会写文章、报告,在大会谈吐自如的初级程序员,在将来一定也会成为高效程序员。
英语和代码有相似之处,用圆括号、括号和单个字母的函数写出一行代码当然是有可能的,前提是有人理解,优秀的程序员会花时间以各种渠道交流、沟通。
保持工作热情
个人认为是这是最重要的特质(当然,任何工作都需要高度的工作热情)
俗话说,不能爱一行干一行,应该要干一行爱一行,它说的就是这个意思。优秀的程序员大多喜欢编程工作,反而初级程序员对编程充满不屑和厌倦,大多数初级程序员仅仅为了生活和薪水去编程。
有的程序员利用周末时间去无偿做自己喜欢的项目,所以他们每天都在创新和进步,最终他们得到不同的生活方式和丰厚的薪水。这才是成为优秀程序员真正原因。对于这些程序员来说,编写代码是改变世界的方式,也是获得别人尊敬的目标。
翻译:曲径
英语原文:What Makes a Good Programmer Good?
优秀的程序员的七个特质
转载上一篇:photoshop
下一篇:LINUX软链接和硬链接
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
年薪百万的程序员都在用的摸鱼方式……
上午就已经把工作做完了,才心血来潮想和大家分享一下我的“摸鱼”技巧。本文将介绍自动化部署的优势和实践。通过了解自动化部署的基本原理和工具,帮助大家争取实现高效、可靠的软件发布流程。
自动化部署 开发人员 生产环境 DevOps 测试人员 -
成为优秀程序员需要具备的 6 个特质
成为优秀程序员需要具备哪些特质?
公众号 迭代 问题解决方案 专业知识 优秀程序员 -
优秀的程序员
优秀的程序员,在编写每一个类,都要编写这个类的测试方法
职场 程序员 休闲