这是使您脱颖而出的一个软件开发人员。

约书亚·厄尔(Unslash)摄

作为开发人员,我们倾向于痴迷于技术选择。 互联网上充斥着比较Angular与React,React与Vue,Vue与……JavaScript社区如今热衷的其他框架的文章。

别误会,这不是抨击JavaScript社区的另一篇博客文章。 您也可以在软件开发的其他领域中找到这种现象。 哪一个更好? Postgres或MySQL,Java与Scala,Vim与Emacs,Tab与空间…

尽管诸如此类的辩论往往非常激烈,但类似的比较,甚至我们根据它们进行的选择,在现实世界中都没有多大意义。

因此,如果您选择的技术无关紧要,那么实际上什么才可以使您成为更好的开发人员?

–函数编程
– 也许。

–了解所有四种设计模式的帮派?
– 也许。

–软技能?
–大概吧。

虽然拥有这些技能很有价值,但有些东西却比所有技能都重要。 但是,在我向您透露之前,我需要您先了解一件事。

不雇用软件开发人员来编写代码。

说软件开发人员的工作是编写代码,就像说外科医生的工作是用手术刀割开人们。 编写代码只是达到目的的一种手段。

软件开发人员的工作是通过交付工作产品来创建解决业务挑战的解决方案。

让我暂时离开这个想法。 让它沉入……

作为软件开发人员,我们经常陷入自私和神经质的思维方式,即专注于编写完美的代码,选择完美的框架和完美的工具。 因此,我们忘记了我们的工作是服务。 为我们的客户提供有效的解决方案。 我在广泛意义上使用“客户”一词。 您可能不会这样考虑,但是您的雇主是您的客户-他们雇用您来解决他们的问题。 如果您从事开源项目,那么使用它的人也是您的客户。 基本上,从您生产的软件中受益的任何人都是您的客户。

最后,没有人关心您使用的是Angular还是React,Java或Scala。 这些是一些持久且非常重要的选择,但它们只是帮助您实现目标的工具。 目标是交付有效的产品,您的技术偏好是次要的。

同样,没有人关心代码的“好”“坏” 即使是相对“糟糕”但可以正常工作和交付的代码,其价值也要比完美,不能正常交付和无法正常工作的代码具有更高的价值。 未使用的产品无法使用。

我认为是乔尔·斯波尔斯基(Joel Spolsky)说的,一个好的开发人员就是“聪明并且能完成工作”的人 不幸的是,我们的职业充满了聪明的人,他们为完成事情而努力,因为他们试图变得太完美,并且痴迷于错误的事情。 放开完美并优先考虑运输,这一单一的改变将使您领先于其他所有人。