当前位置: 技术文章>> 成为一名优秀的软件工程师比以往任何时候都更难

文章标题:成为一名优秀的软件工程师比以往任何时候都更难
  • 文章分类: 后端
  • 12900 阅读

在创业环境中工作了近十年,使我有幸接触到创新、探索和快速失败方法的快节奏文化。我遵循了标准的晋升阶梯:实习生、初级、中级、高级,并最终进入了工程管理轨道。随着时间的流逝,许多与我一起成长的人后来转到其他公司工作,成为那里备受尊敬的贡献者。公平地说,他们是优秀的工程师。

回顾我的同龄人、学员和我自己的旅程,成为一名优秀的工程师似乎比以往任何时候都更难。

定义一个好的工程师

成为一名工程师意味着什么?作为软件工程师,我们是:

负责将复杂问题转化为高效且可扩展的解决方案

负责分析用户需求、设计软件架构、编写代码以及测试和调试软件

有望紧跟趋势,寻求新的商机和改进现有产品的方法

所以不,工程不等于编程。有时,这是最小的部分。随着经验的增加,它确实如此,如下图所示。

按角色划分的工作分配

来源:工程领导技能组合重叠

成为一名优秀的工程师意味着什么?基于多次采访,并支持我的学员的进步,我注意到具有不同专业水平的人可能会给出不同的答案。

刚起步的人可能会认为这是开发人员知道的语言和框架的数量。更有经验的工程师甚至可能不关心他们使用的语言,而是强调代码质量——遵守所有编码原则并进行 QA,同时迅速行动。

经验丰富的工程师非常注重创造价值。有时我们会快速编写打破所有规则的一次性代码来证明假设;有时我们会花几天时间编写几行关键任务代码。但大多数时候,我们都在做出架构决策、讨论关键任务问题、改进流程等。因为通常,这会带来最大的价值。

尽管规则总是有例外,但我们可以说,一个好的工程师是有效地集中精力在实现目标时带来最大价值的工程师。

不断增长的市场和竞争

科技市场在不断发展。多年来,我们都看到了巨大的成功:从WhatsApp到Uber,Airbnb和TikTok。虽然这些可能是例外,但这些例子往往为人们设定了北极星——这是他们应该为之奋斗的。这种思维方式给工程师带来了额外的压力。他们感到来自内部的压力,认为自己做错了什么,而从外部来看,人们将他们的公司与许多竞争对手进行比较。

科技总市值

资料来源:公共技术市场的健康状况如何?

为了在这样的环境中取得成功,公司需要“快速行动,打破常规”,正如著名的Facebook座右铭所说。今天,这一点比以往任何时候都更加明显——几乎每家公司都在成为“人工智能公司”。每个人都在整合 ChatGPT,通常没有真正的原因,没有关于它将如何带来价值的策略。

通过摒弃核心原则——我们如何为客户带来更多价值——并朝着在炒作列车上击败竞争对手的方向发展,我们让工程师构建注定要失败的功能。

世界是一个令人困惑的地方

像我这样的爱好者应该怎么做才能成为一名更好的工程师?除了通过改进干净的代码和架构理念来完善编码技能的明显选择外,如今还有很多诱惑潜伏着。学习 TypeScript 和改变一切的最新框架,潜入区块链和加密世界,尝试无数的 AI 产品......选择是无穷无尽的。

所有 javascript 库

说实话,在这个行业这么多年,我仍然感到受到 ChatGPT、GitHub Copilot 和其他新兴技术带来的新一轮变革的威胁。我的大脑开始想象我在很多事情上脱节的场景。我是否专注于正确的事情来带来价值?我是否发挥了我的最大潜力?

一段时间后,很明显我们正处于炒作之中。这也将过去,只剩下创造长期价值的人工智能公司。在过去 5 年中,美国的 AI 公司数量翻了一番,许多初创公司只是在当时新发布的 GPT-3 之上添加了一项功能。他们后来会随着 ChatGPT 或 GPT-4 的发布而消亡,它们可以做同样的事情,但更好。但这并不能阻止Twitter和其他平台的炒作大军宣布新的世界秩序。

即使我在科技行业工作了这么多年,我还是被卷入了炒作中。菜鸟失误!

编程语言和新框架的不断发布也加剧了混乱。Tailwind、TypeScript、Haskell 和 Rust 都很棒;他们每个人都有一个角度,这给他们带来了优势。然而,人们经常误以为学习它们会给他们带来优势。它不会,或者至少不应该。它们只是很高兴知道但不能取代经验的工具。这就是为什么我们从不在职位描述中提出语言/框架要求的原因。如果错过一个有才华的工程师,那将是一个傻瓜,因为他们不懂TypeScript、提示工程或微服务。

我的建议是——不要被新趋势和炒作所困扰,以至于你失去了对带来价值的关注。

快节奏和高期望

在寻求新的挑战时,可能很难在避免消极压力的同时争取积极的压力。积极压力是指我们将压力情况视为带来良好结果的机会,而消极压力是一种可能对身心健康产生不利影响的压力,如下图所示。在紧张的时间表上不断交付结果是有压力的,并且出于错误的原因构建功能会倾向于后者。

Positive stress vs. negative stress

无论是作为导师还是勤奋工作的人,我都看到压力会导致倦怠。无一例外,让某人经历倦怠会导致比减少工作量、休息和长期优化更少的产出。这就是为什么我们总是试图通过定期的团队更新、一对一和培养文化,使发出危险信号尽可能简单。

不过,事情还是会出错。当他们这样做时,我们会缩小范围,让可以提供帮助的人参与进来,或者与我们的客户沟通以推迟发布。

压力比以往任何时候都高,既来自内部,也来自外部。保持专注,并拥有一支长期优化的支持团队。

我们怎样才能做得更好?

我们都有落魄的时刻——感觉自己不够称职的工程师、导师或同事。事情永远不会完美或容易,也不应该。没有犯错误和困难,我们就不会学习。但是我发现有些东西可以提高效率。

Levels of influence

就个人而言,忠于真正重要的事情。技术会来来去去,但你为世界带来的价值才是最重要的。很难伪造努力工作和经验。

作为一家公司,在做出决策时要从为什么开始。这是提供能够带来价值的功能的最佳方式。此外,确保员工知道原因。根据我的经验,他们会做出更好的决定,提供有价值的反馈,并且更快乐。

在文化上,建立支持员工的流程,进行长期优化。与您的同事一起建立信任、支持和关怀的文化。这样,你们都会得到彼此最好的东西。


推荐文章