高级开发人员,世界欠你一个道歉

Senior developers,你们经历了一段疯狂的旅程。

我认为世界欠你们一个道歉。

在过去的两年里,你们不得不坐在那里,听着人们告诉你 AI 将取代你们。你们不得不忍受那些从未将任何东西部署到生产环境的人在 LinkedIn 上发帖,告诉你编程已经死了。你们不得不看着某个拥有 40 万粉丝的家伙在 4 分钟内构建一个待办事项应用,并宣布软件工程已经结束了。

与此同时,你们坐在那里想着"很酷,当两个人同时编辑同一个待办事项时会发生什么"。每个人都看着你们,好像你们破坏了派对。

你们没有破坏派对。你们是有建筑物可以举行派对的原因。

让我给你们讲个故事。

想象你们有一个初级开发者和一个高级开发者。

初级开发者有 Cursor。初级开发者有 Claude Code。初级开发者有 GitHub Copilot。初级开发者有人类已知的每个 AI 工具。

高级开发者也有所有这些东西。

他们在周一上午都坐下来。他们都得到同一个工单。"构建与支付 API 的集成。"

初级开发者在午餐前完成。

高级开发者在午餐前完成。

等等什么。

是的。他们同时完成。代码看起来一样。功能工作。演示很棒。项目经理很高兴。客户很满意。

每个人都去吃午饭。

这是我应该告诉你们高级开发者的代码更好的部分吗?更优雅,有更清晰的架构和更好的变量名。你知道,那些"高级"的事情。

为了论证的缘故,让我们假设代码基本相同,并且 AI 为他们两个编写了大部分代码。所以如果你仔细查看,它实际上看起来完全相同。

那么有什么区别?

好吧,我发现高级开发者做一些相当有趣的事情。这通常发生在午饭后。

初级开发者回来并拿起下一个工单。像小个子的传奇人物。他们是生产力机器!像 Pac-Man 一样清除积压工作。

这是初级开发者

高级开发者从午饭回来,有时你会看到他们只是坐在那里。盯着屏幕。没有写任何代码。只是……坐着。思考。看起来他们什么都没做。看起来他们正在对自己的职业选择进行存在主义危机。看起来他们正在缓冲。

然后高级开发者开始问恼人的问题。

"API 关闭时会发生什么?"

"Clerk 文档实际上是如何工作的?"

"我会如何破坏这个系统?"

"这真的是完成我所做事情的有效方式吗?"

"夏令时会发生什么。"

夏令时!谁会想夏令时!这个人疯了。这个人需要一个爱好。这个人在二月试图发布功能时担心十月时钟变化。

然后高级开发者编写测试。很多测试。对尚未发生的事情的测试。对可能永远不会发生的事情的测试。对听起来编造的事情的测试。

高级开发者似乎也更频繁地使用系统。当然,输出速度可能有点慢,但我开始得到这个想法,你想要一个有节奏的发布速度,而不是 Pac-Man 疯狂发布速度。

高级开发者似乎也更频繁地阅读文档。你知道编程有那些告诉你事情如何工作的说明书。是的,结果高级开发者只是更频繁地阅读它们。

但这很无聊!当你只是让 Cursor 在代理模式下疯狂时,为什么要做所有这些事情?

回到初级开发者。

初级开发者现在又拿了三个工单。初级开发者是一台机器。项目经理喜欢初级开发者。速度图表看起来令人难以置信。

高级开发者大批量生产零个新功能。高级开发者大批量生产偏执。项目经理开始怀疑高级开发者是否还好。

但是。

这是一个非常重要的观点。

高级开发者的工具不会崩溃。 对于所有关于 AI 的疯狂,意味着你不需要开发者,这绝对是无稽之谈。这就是为什么高级开发者需要道歉。你知道他们不是在恼人吗?你知道他们实际上只是非常擅长他们的工作。我一直在反思我们 AI 被发明以来的过去 12 个月,我的高级工程师构建的所有产品都没有崩溃。完全崩溃。我从未接到过电话。不是凌晨 2 点的电话,不是下午 6 点的电话,不是周日,从来没有。他们的系统工作。我通常只是从我们的客户那里接到快乐的电话,他们的系统只是工作。它不会成为一个引人注目的头条新闻或 LinkedIn 帖子"高级工程师创建极其可靠且不会崩溃的系统",但老实说,这是一种绝对的感觉。

这是我现在真正欣赏高级开发者的一个新特征。你在 Medium 的评论中听到高级开发者的挫败感。他们经常因为各种原因批评事情。他们会抱怨事情的缺点。他们会抱怨 AI 不及格的地方。

你想知道一个大秘密吗?他们是对的。你知道高级开发者如何向你证明这一点吗?

因为在 AI、炒作和愚蠢的时代,他们的系统工作。它们保持工作。它们是稳定的。它们工作一年多。

你知道一个高级开发者,以他们的偏执程度,结合 AI,有多好?如果他们在某事上工作 2 周,那就是 2 周完成,并且基本上再也不担心那件事。

初级开发者感觉像 2 周 + 1 周 + 半天 + 4 小时 + 2 小时。这也分散在 3 个月内。这就像那些恐怖电影之一,杀手随时可能出现在门口。

事情因各种原因而崩溃。这篇文章不是要给初级开发者抹黑,我自己也有很多要学习,但我感觉钟摆最近摆动到了生成式一方,以至于我们冒着压倒那些理解一切实际上如何工作的人的风险。

我认为 AI 在某种程度上缩短了学习曲线。当你有这个新的抽象层时,你会引入这个问题,你有巨大的盲点。你不知道你不知道什么。

这就是为什么我不买你不需要学习编程基础的论点。你需要一个基础和一个心理模型,这样你就可以在事情出错时将其应用到你的系统。

但是嘿,这是一项团队运动,我经营一家公司,所以我们一直在进行周五会议,试图让高级开发者帮助培训初级开发者并分享他们学到的教训。我想我会在这里分享他们所说的内容,因为它们确实非常有价值。这正在成为我一周中最喜欢的时间。

测试是出现最多的事情。他们深切关心核心架构。他们很迂腐。但当我偷看高级开发者的桌子时,我注意到的关键是他们更频繁地使用产品。他们总是在使用它!像登录。刷新。再次,这很奇怪,因为我不知道如何说这个,但感觉有点慢?但不是。他们就像外科医生。

这不仅仅是发货东西然后继续。此外,如果我给他们一个任务,有很多……不是编码。有很多思考。有很多规划。

他们还谈论系统的增长期,然后是暂停和学习期。你不能只是一直构建构建新功能。他们有时间盘点他们已经做的事情。再次,那个旧的测试事情。谁知道?如果你频繁使用系统并迂腐地试图找到破坏它的方法,你会构建一个更可靠的系统。

他们推荐实践的一种方式是构建 2 个新页面,一个列表屏幕和一个详情屏幕,然后你就与它坐在一起。去阅读代码。也许使用询问模式,让 AI 解释发生了什么。让 AI 批评你的工作。但这基本上是你需要练习的方法。

构建一个功能,测试一个功能,与功能坐在一起,思考功能。

或者我们正在鼓励我们的开发人员做的另一件事是认证。所以我们在工作中使用大量 AWS。一种方法是只是让 Cursor 帮助你处理 AWS 并为你执行所有命令。另一种较慢的方法是去实际观看 AWS 系统如何工作的视频。这是缓慢的工作。我认为这至关重要。事实上,我们正在故意引入缓慢工作期,因为这种旧的手工有条理的东西是构建可靠性的东西。当然它更难,但实际上你会学到东西。

这里有另一个。去故意破坏一些东西。

我是认真的。设置一个测试环境并开始破坏东西。关闭数据库。发送没有数据的请求。发送太多数据的请求。在电话号码应该去的地方放置一个表情符号。学习编码的一部分是学会处理随机性。人类是随机的。当他们使用你的系统时,他们会做随机的事情。通过试图破坏你自己的系统,你会学到很多东西。也许让 Cursor 假装是黑客,看看它会做什么。那可能很有趣。

阅读错误日志。 我知道。我知道。没人想阅读错误日志。错误日志是软件开发的条款和条件。每个人都滚动跳过它们。

但事情是。你的系统字面上告诉你什么是错的。它在给你写信。每一天。"嘿,这东西超时了。""嘿,这东西返回 null 并且没有人处理它。""嘿,有人试图把他们的整个生活故事放到一个只接受 50 个字符的字段里。"

你的系统在哭求帮助,而你在那边拿起下一个 Jira 工单。

每天花 15 分钟阅读你的错误日志。就 15 分钟。你会发现让你恐惧的事情。你会发现几周以来一直在默默失败的事情,没有人注意到。每天尝试一次,而不仅仅是将其粘贴到 Cursor 中并 Alt Tab 到 YouTube 视频。

与在代码审查中让你烦恼的人结对。

你知道那个人。那个在你的拉取请求上留下 14 条评论的人。那个问"边缘情况在哪里……"的人,你想尖叫,因为它工作正常,为什么他们像这样。

那个人现在是你最好的老师。

坐在他们旁边一天。观察他们如何思考。观察他们在功能工作后做什么。我保证他们每次都会通过一个心理清单。他们甚至可能没有意识到他们有它。这只是他们的大脑工作方式。移动到你的相反人格类型。你会从他们那里学到很多东西。每次我这样做,我总是学到一些新东西。

保留一个"出错事情"的日记。

每次东西崩溃。每次有 bug。每次有人发现问题。写下来。一行。发生了什么以及为什么。

六个月后,你会有这个令人难以置信的文档。并且你会注意到模式。相同类型的东西一直崩溃。相同的假设一直错误。相同的边缘情况一直出现。

该文档基本上是一个高级开发者的大脑的书面形式。高级开发者也有这个文档。他们只是把它保存在脑子里,因为它通过痛苦、周四晚上和带有感叹号的客户邮件积累了十年。

我认为现在成为一个程序员是一个令人兴奋的时刻,如果你是初级开发者,你在指尖有一个带有疯狂的询问模式的 AI。我不是说初级开发者不能跳跃并成为一股令人敬畏的力量,但选择高级开发者的头脑。做一个海绵,吸收尽可能多的东西。

令人兴奋的部分是这不是一个等级制度,这是一个进步。初级开发者带来活力、好奇心和行动的意愿。高级开发者带来模式识别、克制和责任。AI 放大了两者。未来不属于一方高于另一方;它属于团队,速度与判断力配对,好奇心与记忆配对,经验被分享而不是囤积。

但在此期间,抱歉高级开发者,你们是对的。感谢让我的系统工作。


原文链接: Senior Developers — The World Owes You an Apology

汇智网翻译整理,转载请标明出处