在 Medium 上看到一篇文章[1],很受启发,翻译一下分享给你。
最好的软件工程师比其他人要好 10 倍。他们升职的速度比任何人都快。每个人都想聘请 10 倍工程师,每个人都想成为 10 倍工程师。
但是,你到底是如何成为 10 倍工程师的呢?
在我作为软件工程师在 Uber 和 Amazon 工作期间,我了解到这并不说要成为一个技术更好的程序员。
在本文中,我将分享我学到的 3 个经验教训,这对于成为 10 倍软件工程师至关重要。
1、练习写作
在亚马逊,你是以 L4 工程师的身份进来的,你主要只是编写其他更高级工程师提出的解决方案。
为了让我成长为 L5 甚至 L6 工程师,我必须自己开始提出这些解决方案。我会遇到一个模糊的问题,比如“我们需要创建一个 API 来向这个具有 X 限制的新服务发出请求”。
我不只是拼凑出一个解决方案,而是去写一个设计文档,展示不同设计策略和我的团队的权衡,我会审查它以获得反馈。
这种解决问题和写作的结合是成为 10 倍工程师的关键。如果你能清楚地解决一个模糊的问题并写出一个简洁的解决方案,那么这对公司来说比仅仅成为一名优秀的程序员更有价值。
与围绕 10 个不同的微服务以及如何将它们链接在一起以获得商业利益或达到投资人的业务目标相比,编写功能代码实际上是很容易的部分。
如果你仍然是初级工程师,并且还没有达到编写设计文档的地步,请练习为你的团队系统编写更好的文档。如果你写得好的话,你的团队会因此而爱上你。
你在技术上和非技术上写得越好,你就能越多地拥有项目,推动变革,并以前所未有的速度获得晋升。
2、练习阅读和理解代码
我学到的另一件事是阅读代码的力量。
当我开始在亚马逊工作时,每当我对代码库中的某些内容有疑问时,我都会向其中一位高级工程师询问。
其实这是一个非常坏的习惯。当你刚开始或者你完全卡住的时候这样做是可以的,但是每当我向高级工程师提出这个问题时,他们都会发我一个我本可以自己就能找到的链接。
我团队中的工程师们并不都认识那些记住了代码库的人,他们正在做我能做的同样的事情,即 Ctrl F,逐行阅读代码。
3、思考未来
当你与从未见过的工程师开会时,你的级别和头衔不是会议邀请的一部分,但是随着会议的进行,你很容易发现 10x 工程师,因为他们的举止方式,以及他们谈论事情的方式。
10 倍工程师的普遍特征之一是都是长期主义者,更看重未来的收益。
人们普遍会低估未来的回报,因为会存在巨大压力,而立竿见影的收益是团队的默认策略。
不要把你的工作当作一份工作,假装你的团队实际上是你自己的创业公司。
当你处于普通工程师的典型思维模式中时,你的目标是完成分配的工作并尽快结帐。
如果你的心态更符合你的团队成功作为主要目标,就像它实际上是你自己的公司,你将看到以前从未见过的机会。
你可能会得到修改代码的机会,但由于你的心态,你意识到以这种方式更改代码会引入技术债务,这将在未来 6 个月内阻碍团队。像这样思考需要时间和精力,但这是加速你成长的最佳方式之一。像往常一样,一切都是权衡。
最后的话
非技术技能是最强工程师和最弱工程师之间的区别。如果你认可上面的三点,却不去身体力行的去实践,那么利 10 倍工程师的距离也就越来越远。
参考资料
[1]
文章: https://medium.com/@jamesryebread/how-to-be-a-10x-software-engineer-1c8db6462c46