跳到正文
Hacker News· Bluestein·· 9 天前AI 评分28

AI 时代程序员的职责:一位资深工程师的观察

The Programmer's Job in an AI World

AI 导读

一位资深工程师在回复社区大学教师的邮件中描述,自 Claude 4.5 部署后出现转折点,AI 已能可靠完成无人值守任务,他所在工程团队被全部裁撤,只剩他一人,如今每月仅约一天手写代码,几天即可完成过去需数月的项目。他认为初级开发者处境艰难,多数公司只招资深工程师,而未来产品经理或能直接生成程序并管理 AI 智能体。

正文 · AI 翻译

我有一个朋友,比我早一代的程序员,我一直很敬仰他。他现在在一所社区大学教书。他最近联系我,问我该教学生什么。我把这段对话放在这里,作为这个时代的历史记录。


Jono,
好久不见。🙂 希望你和你的亲友、家人都一切安好。

我还在教大学计算机科学,而且(我相信你也知道)AI 改变了一切。我甚至不确定我们系的老师是否还应该继续以目前的形式教授编程。我的看法是,我们需要教学生阅读和纠正代码(大概用 Python),但教他们如何写代码,在职场中可能对他们帮助不大。不过我也不确定。

我认为要真正帮到学生,需要分三步:

  1. 了解在如今 AI 职场环境中,一个典型程序员的工作职责是什么。
  2. 找出成功完成这些职责所必需的一套技能。
  3. 研究出教授这些技能的具体细节。

这就引出了我写这封邮件的目的。你是我退休以来遇到过的比较专业的程序员之一。如果你能给我发一份关于如今成功程序员的职责/交付成果的总结,我将不胜感激。我正在准备一门新课程,叫“提示工程与 AI 智能体”,真心希望这门课能对学生的人生产生意义。

此致敬礼,祝一切顺利,
RonK


嘿,RonK!

谢谢你来联系我。关于这个话题我有很多想法。我是早期采用者,总是在摆弄新工具。我觉得 AI 可能会是人类文明的终结。但那是另一个话题了……现在咱们来聊聊编程。

大约 6 个月前,随着 Claude 4.5 的部署,出现了一个拐点,AI 开始变得非常强大,强大到你可以让它执行无人值守的任务,并相信它会正确完成。从那以后,我所在工作单位的直属工程团队被全部裁掉,我是办公室里最后一名工程师。我仍然是全职软件开发者,但我几乎不手写代码。我大概每个月只花一天时间真正用大脑产出语法。我经常在几天内就创建出整个项目,而过去这要花我几个月。

我也很少审查代码,无论是自己的还是别人的。代码审查智能体非常彻底,好的那些会指出哪些部分值得真正用眼睛看,哪些不值得。所以现在事情又快又乱。这会带来很多问题,但也会带来很多解决方案。

我们现在确实处在一个奇怪的位置。我认为总的来说,工程师们很喜欢我们现在拥有的新工具。尤其是那些已经构建过上百次同样 CRUD 端点的资深工程师。现在我们可以跳过所有样板代码,直接进入有趣的部分。

就在昨天,在工作中……我在做一个围绕数据库同步的项目。我不确定在几种做法中该选哪一种。于是花了几个小时,让一个 LLM 基本上吐出了三个完整可运行的应用版本,看看我喜欢哪一个。当然,这在一年前都是不可能的。所有这些新技术催生了很多新的工作流程和方法论。

有些阵营认为编程语言已经不再重要,你应该把所有东西都用 Rust 甚至汇编来写。既然你实际上不必看代码,为什么还要用 Python 这样对用户友好的语言呢?

这里有个例子,一个人构建了一个有趣的开发框架,已经引起了相当大的关注。https://www.youtube.com/watch?v=EJyuu6zlQCg&t=1s

他的东西可能会解答你关于提示工程的一些问题。我并不完全相信把技能刷到极致是未来趋势,但在当下这个时间点,它似乎相当强大。

现在,我认为初级开发者处境相当艰难。大多数公司都在裁掉初级员工,只招聘能找到的最资深的人。这主要是因为他们需要一个经验足够丰富的人来指挥 AI,并构建在架构上合理的系统。但即便这一点也不会永远持续下去。我认为接下来会发生的是,我们会看到一些非常优秀的产品经理,他们能够直接产出一个好程序,管理一堆 AI 智能体,而不必真正了解底层发生了什么。我预计这会在未来几年内发生。开发者站在世界之巅的日子已经过去了。供需经济学正在发生逆转。

我的产品经理(也是我们最近一轮裁员中的一员)实际上已经相当熟练地构建我们的产品了。他开始用 AI 做漂亮的模型图,但到最后,他已经在写完整的应用,干了我一半的工作。他是个聪明人,但绝对不是工程师。如果这些裁员发生在几年后、LLM 更先进的时候,我想我会比他先被裁掉。

我个人大部分时间都在用 AI 创建设计文档。深入研究最佳实践、先例、测试工作流、成本分析等等。然后,当我满意时,我让 LLM 输出这些非常详尽的工作手册,让能力较弱的智能体照着实际写代码。

有趣的是,前几天我被一个朋友的孩子采访了。一个想了解软件工程的七年级学生。我主要告诉了他们我热爱这个职业的所有理由——因为我确实热爱。但我不知道现在该普遍给孩子们什么建议。我自己的孩子需要掌握任何硬技能吗?他们应该上大学吗?他们现在甚至还需要上数学课吗?我不知道白领工作的未来总体会怎样。也许我们都会走向一种休闲经济,我们可以整天坐在那里读书,而机器人在泳池边为我们端上马提尼。😃

AI 对开源世界也有许多影响。在我参加的那些 Linux 会议上,大多数对话都转向了围绕分叉的新文化,以及如何应对一波波涌来的垃圾拉取请求。这方面有很多想法。

说到开源,我个人的副项目集合在过去一年里彻底爆发了。我们都有一些永远不会实现的点子文档。现在我真的开始把其中一堆做出来了。编程和产出东西的感觉与过去完全不同。但那是另一个故事了。我写过一些相关内容。
https://www.dgt.is/blog/2026-01-24-ai-programming-junkie/

我实际上能给出什么实用建议呢?不多。

  • 如果你真的想成为一名程序员,你应该出于热爱去做。有些人认为一直如此,但我不同意。

  • 不要与 AI 对抗。这对你没有好处。这就像对抗电灯泡或印刷机一样。在工作环境中,你离不开它。但大多数情况下,与我共事过的初级员工并不需要这条建议。对他们来说,IDE 中的自动补全每年都在变得越来越好。他们只知道这些,所以他们已经相当习惯于它了。这些年轻人行动迅速,常常比我快。工作之外使用 LLM 则是另一回事。如果你不想用,就不必在那里使用它。

  • 使用 LLM 深入探索,并在处理新事物时发现你需要知道的内容。过去,当我们试图快速了解一个新主题或技术时,我们会翻遍过时的论坛和文档,寻找任何我们能找到的建议。但现在,LLM 可以帮助你在决定采取哪个方向之前,退一步广泛地思考问题。解决“未知的未知”是一个难题,但现在通过正确的好奇提问方式,你可以快速学到很多。在你开始实际进行一个项目之后,继续让代理关注大局,因为如果不小心,很容易陷入兔子洞。

  • 一旦你详细规划了某件事,问问你所设计的是否是一个已解决的问题。如今的 LLM 仍然有点倾向于自己写一切。你不想重新发明轮子。旁注:这种计算正在不断变化,但这条建议仍然成立。

  • 测试比以往任何时候都更重要。我一直痴迷于测试,但我的测试风格随着 AI 的使用而改变了。我应该写一篇博客文章,强迫自己将关于此的想法正式化。最近我一直在尝试更多 TDD 风格的编码。

  • 与其创建一堆旨在让代理理解的自定义工作流,不如专注于编写详尽且贴近代码的文档。最重要的是文档不要偏离,但你通常可以通过让 AI 检查文档是否与代码不同步来解决这个问题。这些文档应该真正面向人类,但 LLM 会发现它们,并会为它们提供大量上下文以及如何运行、构建和测试的指导。我在这里尝试了很多东西,认为管理这些文档的艺术正在开始稳定下来。

如果你想读一些关于 AI 的有趣哲学内容,80k hours 播客上有一些有趣的东西。
https://80000hours.org/podcast/episodes/kyle-fish-ai-welfare-anthropic/

说到播客,这是一个有趣的节目,关于一个试图用拟人化 AI 代理运营整个公司的人。随之而来的是滑稽行为。
https://pca.st/j22grjam

另外无关。我开始读 Bobiverse 系列书籍。你可能会喜欢它们。

我用听写来写这条消息,所以措辞相当随意,但至少我没有用 LLM。如果你想深入探讨其中任何一点或进入具体例子,随时给我打电话。我对这些东西的想法真的每天都在演变。

现在我得回去(不)编程了。

-Jono

来源:Hacker News · dgt.is