伟大的开发者

如何成为一名优秀的开发者?你觉得自己算是一名优秀的开发者吗?如果是的话,你有没有考虑过,作为一名优秀的开发者,应当具备哪些优秀的品质?原文作者Gregor Riegler 发表了一篇博文《 What makes a great Developer》,文中提到了成就优秀开发者的九大品质,译文如下:

一、激情

  开发者往往会因每一次成功完成任务后而感到欣喜,这是因为当你已经掌握并且拥有智能的解决方案时,这些对你来说都是非常的有利。

  编程不只是一份工作,它还是一门艺术、是诗歌。因为激情和动力才成就成功。软件开发行业不仅巨大,而且发展也相当的快速。一名好的开发人员能够跟得上时代的步伐,因为他知道任何事情都可以做得更好。不断学习新的方法,以满足饥渴(意思是学习永无止境)。

二、好奇心

  通常程序是确定的,因为在计算机领域里不存在所谓的事故。每一个结果必定有其原因。一个伟大的开发者不允许有事故发生。这是因为他宁愿搜索和调试众多的软件层,在开发环境中找到原因。正因为如此让他积累了丰富的经验知识,让他更好地理解、阅读并解释应用程序“怪异”的行为。

  “The important thing is not to stop questioning. Curiosity has its own reason for existing.”重要的是不要停止提问。好奇心有它存在的理由。——Albert Einstein

  "The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents."许多专家认为,导致世界毁灭最可能的原因是意外事件。那正是我们在做的;我们是计算机专业人士,我们正在制造意外事件。——Nathaniel Borenstein

三、认知

  编程是解决问题的行为。问题可以分解成多个组成部分,最终成为一个整体组合在一起。在大脑里寻找问题并作出反应,让它们相互作用这就需要具备真正的技能。

四、一丝不苟

  编程到处充满着陷进,哪怕只是一个细节也会导致软件开发崩溃。细节就是魔鬼,即使是很小的懒惰也可轻易地摧毁项目。这就是为什么说完美是如此的强大、强调高质量的重要性,直至走向成功。

  如果你能容忍第一个缺陷,那么第二个、第三个就会接踵而来,直到最后你得到了一个烂摊子。一名好的开发人员是不会容忍任何缺陷,这就避免了陷进从而提升了项目质量。这就好比一个“ 破窗理论”,意思是说一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破最终导致毁坏了整栋房子。

五、时间

  伟大来源于经验。是的,你可以简单地遵照建议、模式和最佳实践。但这与学识无关,这是由于错误和迭代演变而来的。

六、谦虚

  伟大的开发者知道他所不知道的,并且深知永远都不会知道所有的事情。他要知道,总会有改进的空间,这同样适用于自己的工作,他敢承认自己的错误并接受批判。

七、韧劲

  好的开发者会向解决方案宣战,他会跟其叫板,即使是让他奋斗数小时、一夜、甚至是到天亮。也有的开发者在遇到问题时,第一时间内他不会考虑问题,但是他把这个当做挑战,除非它不是个反模式。来之不易的成功来源于自信。

八、视野

  在软件开发行业中,开发者经常会在小项目上花费很长时间,虽然很集中,但很容易迷失方向,而忽略对系统其他部分的影响。好的开发者在技能上应该眼观大局,根据现状有预见性地作出判断。

九、懒惰

  这个听来很愚蠢,懒惰应该摆在首要位置,但并非如此,懒惰导致了许多改进。最重要的是懒惰导致了许多自动化。每次当你成功拒绝手动而采用自动,或许你已经获得了改进。

  自动化是通向完美无缺、高效及进步的关键。完美无缺,因为理想中的计算机是不会犯任何错误的(并不适用于每个方面),但是人类却容易产生错误。效率,从长远来看这是在投资节约时间。你越早使用自动化,越能节省时间。进步,每一次进步都会给做其它事情留些空间。

  好的开发者太懒散以至于:

  • 编写完整的API文档,他让JavaDoc做这项工作;
  • 正确格式化代码,让IDE做这项工作;
  • 一遍一遍地测试功能,他使用单元测试进行自动化;
  • 遇到阅读复杂的方法,所以他利用好的命名编写简短易读的方法;
  • 重复编写同行代码,他需求方法来重构以避免这样呆板的代码,因为他太懒不想重复自己(DRY);
  • 没人要求实现该功能(适可而止_YAGNI原则);
  • 使用位运算和移位做减法运算,保持简单原则(KISS);
  • 让同事帮他别写代码(结对编程)。

原文地址:http://tech.it168.com/a2013/0620/1497/000001497364.shtml

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

原来,你是这样的R语言

? 今天给大家介绍一款在开源世界里集万千宠爱于一身的软件——R语言。 有多受宠呢?简单说,你能想到的地方都有它的身影。 做学术?看看R在各大语言排名系统的表...

23610
来自专栏华章科技

大数据商业智能的十大戒律

如今,各路企业和组织都不再使用上一代架构来存储大数据。既然如此,为什么还要使用上一代商业智能(BI)工具来进行大数据分析呢?在为企业选择BI工具时,应该遵守以下...

832
来自专栏绿巨人专栏

为什么.NET感觉上比Java差一点

3618
来自专栏大数据文摘

业界 | 成为CTO之前,我希望有人告诉我这些

932
来自专栏云计算D1net

美国国防部正在试验软件定义网络 进展十分有限

软件定义网络(software-defined networking)有很大的希望提高设置和控制网络的效率,将引发信息技术的这一关键方面发生根本性的改变。虽然国...

3678
来自专栏ATYUN订阅号

人工智能平台Jane为企业提供高效信息检索

筛选旧文件对于一个人来说耗时耗力,而对于拥有数千名员工的大型组织和企业来说,更如同噩梦一般。这就是前Answers.com首席执行官David Karandis...

1232
来自专栏编程微刊

程序员怎么写出一份漂亮的简历

4835
来自专栏Java帮帮-微信公众号-技术文章全总结

怎么才算一个合格的程序员?【大牛经验】

产品经理经常改需求这是程序员最头疼的事情,作为程序员应该也站在PM的角度思考,帮助PM分析出本质的需求,这也许可以减少需求的变更。当然,前提是得干一行爱一行,...

1402
来自专栏猿天地

招聘季来临 如何写好一份让你薪资翻倍的技术简历

金九银十,对应届毕业生来说又到了一年一度的校园招聘黄金季了。估计很多人都开始准备自己的面试简历了。今天就简单聊聊如何打造一份好的面试简历吧。

1271
来自专栏大数据钻研

稀土

致每一位加入稀土团队的你,我们到底在为怎样的一群人服务? 每一个公司、每一个产品都有它创立的意义,这篇文章只是希望帮助加入稀土的你们了解我们是一个怎样的公司,在...

2995

扫码关注云+社区