【软件工程师】如何成为 10 倍软件工程师

Chinese, Simplified

初级工程师常犯的 3 个错误。 你在做吗?

10x engineers are fact. Bigfoot is not.

最好的工程师比普通工程师好 10 倍。 就像一支单人军队一样,他们自己提供的价值比一支初级工程师团队加起来的速度更快。

但那怎么可能呢? 不是越多越好吗?

在我担任 Netflix 和 Amazon 的工程主管期间,我曾与两位刚毕业的实习生一起工作,一直到首席工程师(亚马逊的 L7 及以上),我可以证明确实存在 10 倍工程师。 我也可以自信地说他们不是:

  • 打字速度快 10 倍
  • 工作 10 倍的时间
  • 编写 10 倍以上的代码

事实上,10 倍工程师可能会以一半的速度打字,一半的工作量,并花更多的时间删除代码而不是编写代码。

10x engineers tend to be better at LeetCode too, but it’s not what sets them apart.

最好的工程师和初级工程师之间的区别归结为心态问题。 他们使用正确的工具,提出正确的问题,并且知道如何确定优先级。 即使是非技术人员也可以开发的与编码无关的技能。



最好的工程师与普通工程师的区别在于(令人惊讶的是)非技术技能。



在本文中,我讨论了初级工程师常犯的 3 个常见错误,以及高级工程师如何以不同的方式解决相同的问题——导致截然不同的结果。



1. 对工具的研究不够



亚伯拉罕·林肯曾经说过:“如果我有 8 个小时砍树,我会花 7 个小时磨斧头。”

初级工程师将花费 8 个小时用钝斧砍伐。 高级工程师花了一个小时挑选合适的电锯。

5分钟砍树。

  • Honest Abe would’ve made a great engineer.

我看到初级工程师犯的一个常见错误是他们一头扎进编码中。 他们只坚持使用他们知道的工具,并尝试使其适应各种情况。



如果一个普通工程师只知道如何使用锤子,他们也会用它来挖洞。🙄



他们几乎没有花时间研究其他替代方案——或者是否有可能完成编写 0 代码的工作!

使用正确的工具是工作数周与在 10 分钟内完成任务之间的区别。 这就是产生 10 倍差异的地方。



示例任务:建立网站



最近,我有幸与一位初级工程师打赌谁可以更快地建立个人网站。

新毕业生用了 2 周时间,写了 1000 多行代码。 两周后她甚至没有完成!

我花了 1 天时间,写了 0 行代码,甚至没有流汗。 你可以在这里看到我主页的结果。

  • Notion page + super.so for deployments = michaellin.io

当我请初级工程师解释她是如何处理这个问题时,她为什么花了这么长时间才完成的原因变得很清楚:



“嗯,我在学校学会了如何制作 React 应用程序,所以我只是用它从头开始创建了一个网站。但是很难让图像和 CSS 正确。而且我也不知道如何部署它。所以我想我必须在 AWS 上编写一个自定义部署脚本,但对控制台有点困惑。微型实例和大型实例又有什么区别?”



请注意这位工程师的方法如何遗漏了几个关键点。首先,她从未讨论过:

  • 要求——没有提及搜索引擎优化、评论或预建模板是否重要。
  • 替代工具——他们只知道 React + AWS 并坚持使用它。

想象一下尝试从头开始重建评论功能。或确保 SEO 正常工作。这些功能中的每一个都是团队正确实施的工作价值。难怪她没有说完!



2.不寻求帮助



这是一个非常简单的问题,很容易修复,但是浪费了太多时间,我不得不提一下。

一些初级工程师有这样的误解,认为高级工程师就像一个孤独的天才。如果他们坚持解决问题,他们最终会得到解决方案。

10x engineers are not “lone geniuses”, but need to ask for help too!

但这是一种相当幼稚的思维方式。很多时候,不同之处在于他们缺少上下文——他们不可能自己推断出的信息。

因此,他们不只是寻求帮助,而是在代码库上苦苦挣扎,一遍又一遍地查看相同的代码行,当向队友提出 5 分钟的问题会立即解决问题时!



一个知道如何寻求帮助的经验不足的工程师总是会击败一个从不寻求帮助的更有才华的工程师。



有时很明显,需要额外的上下文才能继续。例如,通常不清楚:

  • 为什么代码库的结构是这样的
  • 从另一个团队调用哪个 API
  • 部署如何工作

这些是上下文情况的示例,在这些情况下,您最好寻求帮助而不是进一步挖掘代码库。不要害怕寻求帮助!



3. 没有提供商业价值



10x 工程师首先是投资者。

他们明白他们的工作是一项投资——他们的投资回报必须大大超过所花费时间的成本。他们了解机会成本:花费在构建一个功能上的时间意味着没有花费在构建另一个功能上的时间。



工程师必须权衡机会成本——“在你可以构建的所有功能中——这个功能是否最能利用你的时间?”



他们明白代码是达到目的的一种手段——业务目的。如果他们可以在没有代码的情况下实现他们的目标,那就更好了!编写的工作更少,维护的代码也更少——这是一个双赢的局面。

10x engineers are investors. Like Warren Buffet.

我看到很多新工程师忽略了这些业务目标。一些例子:

  • “这项新技术真的很酷。让我们花 5 天时间将其集成到网站中”(与产品不对齐)
  • “呃,我不喜欢代码的结构方式。让我们花在下一个 sprint 重构上”(机会成本——可以把这段时间花在构建创收功能上)
  • “这个平台太老了——让我们迁移到一个新平台吧”(迁移是否可以帮助您显着加快移动速度,还是只是一种渐进式改进?)

正是这个数学导致了 10 倍的工程师。如果一个初级工程师花 2 个小时来处理一个不会增加收入的复杂功能,但一个高级工程师花 1 个小时来完成一个简单的副本更改,它是收入的 5 倍,我们的生产力提高了 10 倍:



1/2 的时间花在产生 5 倍收入 = 10 倍交付价值的功能上。



最后的想法



非技术技能(“软技能”)是最强工程师和最弱工程师之间的差异因素。如果工程师避免了上述所有错误,但很难使用,那么他们的 10 倍技能就会失效。

Netflix 文化平台的摘录。

你努力成为一名工程师。 工程比不做一个混蛋要难得多。 不要因为你的自负而让你的努力付诸东流。 永远记住:



工程师必须首先交付价值。



想要更多职业建议?



我是迈克尔,前 Netflix 工程主管,后来成为企业家。 6 个月前,我辞去了 Netflix 的一份梦想工作,为自己工作。 我写关于工程、职业建议和初创公司的文章。

原文:https://medium.com/@_michaellin/how-to-be-a-10x-engineer-fdac2a5a1bd5

本文:https://jiagoushi.pro/node/2028

SEO Title
How to Be a 10x Software Engineer