当前位置: 首页 > 励志文章 > 良好的程序员与优秀的程序员究竟有何差异?

良好的程序员与优秀的程序员究竟有何差异?

时间:2020-03-30 11:51:11点击:

全文由3196个单词组成,预计持续10分钟。

资料来源:Pexels

如果编写代码是一门科学,那么所有开发人员的表现就没有什么不同。

但事实并非如此。

作为一门艺术,当朝着相同的结果努力时,两个开发者不会有相同的想法或认知。虽然有些人很难达到预期的结果,但有些人可以效仿,就好像他们在开始编写代码或解决问题时突然意识到了一样。

软件工程专家史蒂夫·麦康奈尔在博客中描述了萨克曼、埃里克森和格兰特在20世纪60年代末进行的一项原创研究。他们发现最好和最差程序员的原始编码时间之比大约是20: 1。最有趣的是,他们发现程序员的经验与代码质量或生产率无关。

简而言之,写好代码的能力并不是区分优秀程序员和优秀程序员的唯一因素。

从一个好的程序员开始。那么,优秀程序员的特征是什么?

具有优秀的技术技能,能够书写整洁的代码。

具备扎实的开发技术知识和解决问题的专业技能。

了解编程最佳实践以及何时使用它们。

对编程有持久的热情,并积极为团队做贡献。

受到团队其他成员的尊重和喜爱。

所以,如果你是一名程序员,并且具备上述特征,恭喜你!你是个好程序员。你应该感到骄傲。

现在让我们介绍一些优秀的程序员。

难能可贵的人才。

生产效率是好程序员的3倍,是坏程序员的10倍。

,属于前1%,不仅写代码,还具有一系列无形的特征,使它在许多程序员中脱颖而出。

简而言之,好的程序员=好的程序员+一系列无形的特征。

虽然这不容易,但是如果你足够努力,有一些无形的品质可以帮助你从一个好的程序员变成一个好的程序员。

优秀的程序员有杰出的学习能力。

资料来源:Pexels

优秀的程序员思维敏捷,这意味着他们有能力学习新技术,并且不怕新技术。

他们可以整合看似分散的信息并动态处理。每个程序员都不会知道答案。此时,优秀的程序员会找到不同的资源,与合适的人讨论,并找到解决方案(不管解决方案看起来有多难)。每个人能拥有的最好的技能是知道如何学习,而优秀的程序员已经掌握了自学的技能。

一个好的程序员不会让他的自我意识干预工作和学习。如果他需要知道什么,他会从低到高接近公司里的任何人。

优秀的程序员可以平衡实用主义和完美主义。

Etsy的首席技术官JohnAllspaw在他的文章《如何成为高级工程师》中提出了一个很好的观点。他说一流的开发人员是健康的怀疑论者,他们总是在工作中问自己和同事问题。

“我还会错过什么吗?”

“这怎么可能不成功?”

"你能帮我在我的想法中找到尽可能多的漏洞吗?"

"虽然在技术上是合理的,但组织的其他成员能完全理解它的操作、故障排除和扩展吗?"

这些问题背后的想法是,他们完全理解同行评审的重要性,只有通过可靠的同行评审才能做出好的设计决策。所以他们“恳求”批评。优秀的程序员通常在广泛的测试后信任他们的代码。

此外,他们可以了解市场动态和尽快交付产品的需求。因此,他们不仅能做出快速而糟糕的处理,还能提出优雅而微妙的解决方案,并能巧妙选择适合当前具体情况的解决方案。

一些程序员对某些问题缺乏必要的详细关注,而其他人则陷入完美主义模式。优秀的程序员可以完美地平衡二者。

优秀的程序员有敏锐的直觉。

在《尼各马科伦理学》第六卷中,著名的哲学家和政治家亚里士多德讨论了人们为了获得真正的知识而在任何领域取得成功所必需的五种能力中的第四种:直觉。

亚里士多德的观点很简单。直觉是我们开始了解一切的方式。通过直觉获得的知识必须锚定所有其他知识。事实上,这种获取知识的方法非常基础,很难证明。因为通过直觉获得的知识不是基于一系列事实或推论。相反,我们只有通过内省和直接感知才能知道直觉的真相。

从史蒂夫·乔布斯到理查德·布兰森(英国亿万富翁)再到沃伦·巴菲特,他们都是凭直觉做事的人,无论做什么都会成功。因为他们能比别人更清楚地看到事物,更快地找到问题的最佳解决方案。毫无疑问,这些人有足够的专业知识和经验。然而,他们似乎仍有天生的直觉,这使他们能够理解复杂问题的本质,并找到意想不到的正确解决方案。

一般来说,优秀的程序员基于他们广泛的阅读和良好的开发直觉,对算法、技术和软件架构有着直观的理解。他们只需看一眼就能知道他们的“设备库中”哪种工具最适合解决手头的问题。它的直觉能力远远超出了开发和编程的范围。这使他们在向外行和专业人士解释时能够灵活地处理技术和非技术问题。

优秀的程序员目光远大,喜欢挑战和追求卓越,并且经常试图击败其他人来破解自己的代码。

资料来源:Pexels

优秀的程序员是沟通的大师。

达米恩·菲利亚特罗是对的:

"良好的沟通技巧与良好的发展技巧直接相关."

为了让别人理解你的想法,你必须简化它们,尽可能清晰地表达出来。这听起来很简单,不是吗?不幸的是,表达不清晰是所有工作问题的根源。这是因为一种叫做“知识诅咒”的现象。

1990年,斯坦福大学心理学研究生伊丽莎白·牛顿通过研究一个简单的游戏阐述了“知识诅咒”现象。游戏将参与者分成两个角色:敲门者和听者。要求每位打击乐手选择一首流行歌曲,如“生日快乐歌”,然后在桌上敲出这首歌的旋律,以便听众能猜出这首歌的名字。

在牛顿的实验中,总共有120首歌曲被点击,听众只猜对了其中三首:成功率为2.5%。但是在他们猜测之前,打击乐手预测听众猜测的概率是50%。打击乐派认为成功传递信息的比例可以达到1/2,但实际上只有1/40。为什么?

当敲门者敲门时,他或她会情不自禁地听到伴随他或她的敲门声的曲调。同时,所有的听众只能听到奇怪的莫尔斯电码。听众需要非常困难地识别曲调,这让打击乐手感到惊讶。

问题是一旦我们知道了一些东西(比如一首歌的旋律),很难想象我们不知道它。我们的知识“诅咒”了我们。因为我们很难再现他们的心理状态,所以很难与他人分享我们的知识。

这就是为什么优秀的程序员总是在信息交付给团队后进行确认。他们还可以清楚地理解问题,将它们分解成假设,并提出解决方案。他们可以快速理解概念或提出适当的问题来理解,尤其是他们不需要将所有内容都写入文档。

因此,如果你想成为一名优秀的程序员,你需要确保你和你的团队保持有效的沟通。这不仅能让你保持更高水平的承诺,还能向你的上司证明你对交付高质量的产品真的很感兴趣并做出了承诺。

资料来源:Pexels

正如你所看到的,要想在你的领域出类拔萃,你不需要任何花哨的学位,甚至不需要钱来投资。

你需要的是一种学习态度,一种对知识的疯狂渴望,以及一种基于多年积累的知识将事物联系起来的直觉能力。培养健康积极的态度,抛弃自己,宽容地接受反馈并采取行动也很重要。一旦你做到了,我保证你会有所成就。

正如鲍勃·马利所说:

“一个人的伟大不在于他获得了多少财富,而在于他的正直和积极影响周围人的能力。”

评论、表扬和关注

让我们分享人工智能学习和发展的干货。

如果重印,请在后台留言并遵守重印规则。