不受欢迎的观点:成为一名优秀的软件工程师比以往任何时候都更难
在创业公司工作近十年,让我有幸体验到快节奏的创新、探索和快速失败的文化。我遵循着标准的晋升阶梯:实习生、初级、中级、高级,最终进入了工程管理轨道。随着时间的推移,许多和我一起成长的人后来都去了其他公司,成为备受尊敬的贡献者。可以说,他们都是优秀的工程师。
回顾我的同事、学员以及我自己的历程,成为一名优秀的工程师似乎比以往任何时候都更加困难。
定义一名优秀的工程师
成为一名工程师意味着什么?作为软件工程师,我们的职责是:
- 负责将复杂问题转化为高效且可扩展的解决方案
- 负责分析用户需求、设计软件架构、编写代码以及测试和调试软件
- 期望保持领先趋势,寻求新的商业机会和改进现有产品的方法
所以,工程并不等于编程。有时,编程只是其中最小的一部分。随着经验的积累,它肯定会显现出来,如下图所示。

成为一名优秀的工程师意味着什么?通过多次访谈以及支持我的学员进步,我注意到不同专业水平的人可能会给出不同的答案。
刚入行的人可能会认为开发人员掌握的语言和框架数量很重要。经验丰富的工程师可能甚至不关心自己使用的语言,而是更注重代码质量——遵守所有编码原则,进行质量保证,同时保持快速的开发速度。
经验丰富的工程师非常注重创造价值。有时,我们会为了证明某个假设而快速编写一些打破所有规则的一次性代码;有时,我们会花费数天时间编写几行关键任务代码。但大多数时候,我们都在进行架构决策、讨论关键任务问题、改进流程等等。为什么?因为通常情况下,这些工作才能带来最大的价值。
尽管总有例外,但我们可以说,优秀的工程师能够有效地集中精力,为实现目标带来最大的价值。
不断增长的市场和竞争
科技市场瞬息万变。这些年来,我们都见证了巨大的成功:从 WhatsApp 到 Uber、Airbnb 和 TikTok。虽然这些可能是例外,但这些例子往往为人们树立了前进的北极星——他们应该为之奋斗的目标。这种思维方式给工程师们带来了额外的压力。他们感到压力来自内心,认为自己做错了什么;也来自外界,因为人们会将他们的公司与众多竞争对手进行比较。

要在这样的环境中取得成功,企业需要“快速行动,打破常规”,正如 Facebook 的座右铭所说。如今,这一点比以往任何时候都更加明显——几乎每家公司都在转型成为一家“人工智能公司”。每家公司都在整合 ChatGPT,通常毫无缘由,也缺乏如何带来价值的战略规划。
通过放弃核心原则(我们如何才能为客户带来更多价值),转而追求在炒作浪潮中击败竞争对手,我们让工程师构建出注定会失败的功能。
世界是一个令人困惑的地方
像我这样的爱好者应该如何才能成为一名更优秀的工程师?除了通过改进代码简洁和架构理念来完善编程技能这个显而易见的选择之外,如今还有很多诱惑潜伏着。学习 TypeScript 和那个改变一切的最新框架,深入区块链和加密货币的世界,尝试各种各样的人工智能产品……选择无穷无尽。
说实话,在这个行业工作了这么多年,我仍然对 ChatGPT、GitHub Copilot 和其他新兴技术带来的新一波变革感到恐惧。我开始想象自己对很多事情都脱节的场景。我是否专注于正确的事情来创造价值?我是否发挥出了自己的最大潜力?
一段时间后,我们清楚地意识到自己正处于炒作之中。但这股热潮终将过去,剩下的只有那些能够创造长期价值的人工智能公司。过去五年,美国的人工智能公司数量翻了一番,许多初创公司只是在当时新发布的GPT-3基础上添加了一项功能。之后,随着ChatGPT或GPT-4的发布,这些公司最终消亡,因为这些公司可以做同样的事情,甚至做得更好。但这并不能阻止Twitter和其他平台的炒作大军宣扬新的世界秩序。
即使在科技行业工作了这么多年,我还是被这种炒作迷惑了。新手常犯的错误!
编程语言和不断发布的新框架也加剧了人们的困惑。Tailwind、TypeScript、Haskell 和 Rust 都很棒;它们各自都有自己的优势。然而,人们常常误以为学习这些语言就能让自己获得优势。这不会,或者至少不应该。它们只是一些工具,了解一下就好,但无法取代经验。这就是为什么我们从不在职位描述中列出对语言/框架的要求。如果因为一位才华横溢的工程师不懂 TypeScript、快速工程或微服务而错过他,那我真是太愚蠢了。
我的建议是 -不要陷入新趋势和炒作而失去对创造价值的关注。
快节奏和高期望
在寻求新的挑战时,努力追求积极的压力并避免消极的压力可能会很困难。积极的压力是指我们将压力情境视为通向良好结果的机会,而消极的压力则可能对身心健康造成不利影响,如下图所示。在紧凑的时间表内持续交付成果本身就充满压力,而出于错误的原因构建功能则更容易产生压力。
作为一名导师和一名勤奋的员工,我见过压力导致员工倦怠。毫无例外,相比减少工作量、休息一下并进行长期优化,倦怠带来的产出更少。因此,我们始终致力于通过定期的团队更新、一对一沟通以及营造一种相互扶持的文化,尽可能简单地提出问题。
尽管如此,事情还是会出错。如果出错,我们会缩小范围,让能够提供帮助的人员参与进来,或者与客户沟通,推迟发布。
压力比以往任何时候都大,来自内部和外部。保持专注,并组建一支支持你的团队,长期优化你的工作。
我们怎样才能做得更好?
我们都会有情绪低落的时候——感觉自己像个不称职的工程师、导师或同事。事情永远不会完美或轻松,也不应该如此。不犯错、不经历困境,我们就学不会东西。但我发现有些事情可以提高效率。
就个人而言,要忠于真正重要的事情。科技会来来去去,但你为世界带来的价值才是最重要的。努力和经验很难伪装。
作为一家公司,在做决策时,首先要思考“为什么”。这是提供能够带来价值的功能的最佳方式。此外,还要确保员工了解“为什么”。根据我的经验,他们会做出更好的决策,提供有价值的反馈,并且更加快乐。
在文化方面,建立支持员工、实现长期优化的流程。与同事共同营造信任、支持和关怀的文化氛围。这样,你们就能充分发挥彼此的最大潜能。
文章来源:https://dev.to/jurajmalenica/unpopular-opinion-its-harder-than-ever-to-be-a-good-software-engineer-32ek