优秀,劣质,优秀和顶尖的软件开发人员有什么区别?


回答 1:

它与不良/中等/伟大/顶级焊工或砌砖工之间的区别或多或少相同,除了少数例外。

  • 业绩规模不同。 在我遇到的最好的和最差的程序员之间,编写和调试完整的库/程序所花费的时间可能相差多达100倍。 我想不出另一种人类活动能达到如此高的比例。最好的程序员提出了巧妙的改进-超出了规范的范围,在规范本身中发现了漏洞,并努力在编写规范之前对其进行梳理。码。 从代码中挤出性能的最后一滴,很久以前一个小程序员会放弃说:“哦! 够好了。”

最糟糕的程序员通常会留下细微的破坏痕迹,这些破坏痕迹会通过生产设计不良,不可靠且效率低下的软件而使小型企业瘫痪。

也许对于瓦工和焊工来说是一样的-但任何人都可以看一眼砖墙,意识到它不是直的或垂直的,或者砂浆的加工不均匀。 对于焊工,您可以对焊缝进行X射线检查并以某种自动化的方式测量缺陷。

但是,当程序中存在许多细微的错误-或核心设计存在严重缺陷-甚至效率大大降低时-糟糕的程序员搬迁后的一段时间内,这些深刻而困难的问题可能就不会显现出来继续另一份工作。

如果公司还配备了优秀的程序员,那么与从头开始编写软件所需的时间相比,该人将浪费更多的时间查找和修复这些问题……但是对于砌砖工和焊工来说,情况可能是相同的。

就是说,一些最好的程序员是表面上的东西-他们可能很难与他们合作,具有可怕的人际交往能力-这种事情。 在其他业务领域也是如此。 当音乐家或演员处在他们职业的低端时,他们将是合理且包容的。但是,当明星们受到重压时,他们可能会开始提出不合理的要求,并认为自己“在人类的其余部分之上”。

(范·海伦(Van Halen)在他们的合同中要求为他们提供一碗M&M,并且去掉所有棕色的!)

这远非普遍适用-但这肯定会发生。


回答 2:

一切都取决于选择。 最好的开发人员知道何时扩大规模,何时不扩大规模,何时制定自己的解决方案以及何时使用现有库。 当我们使用Devskiller测试开发人员时,我们发现他们的代码不仅美观,而且可以及时交付,但最终产品不需要大量的返工。

软件就像任何技术产品一样。 最好的开发人员交付的项目类似于Toyota Corolla:

资料来源:File:Toyota Corolla Style(2016 European version).jpg

它是全球销量最高的汽车模型,产量超过4000万辆,以其简单,实用和可靠而著称。 它的批量生产价格便宜,并且在不占用太多资源的情况下可以实现预期的效果。

如果Carola就像一个伟大的开发人员创造的产品,那么中等水平的开发人员的输出将类似于Juicero:

出处:http://antyweb.pl/juicero-zawies ...

现在说出您想要的Juicero,它可以完成应该做的事情,即榨汁。 问题是,在生命周期的一英寸内进行了过度设计。 结果是价格昂贵的产品,其实用性仅比您的手稍强。 换句话说,它可以实现预期的功能,但效率低下,对大多数人失去了价值。

但是至少Juicero可以工作。 糟糕的开发人员的代码会在微风中冒出像Tacoma Narrows桥这样的东西:

换句话说,一个糟糕的开发人员可能会负责在整个应用程序崩溃之前,其他人需要修复的潜在灾难性错误,从而将时间和资源浪费在项目的其余部分上。

如您所见,使开发人员好坏的不是他们的先天知识,而是他们如何将其技能和决策应用于实际应用。 观察他们有多好的最好方法是给他们进行实践测试,例如Devskiller所管理的测试,以查看他们的能力是实用的还是纯粹的抽象。