我的旧工作方式如今已变得遥远

Hacker News Top 新闻

摘要

一位开发者在个人博客中感慨,像 ChatGPT、Cursor 的 Tab 自动补全以及智能体编程这样的 AI 工具如何迅速改变了他的日常编程工作流,使他 AI 时代之前的编程方式显得如此遥远。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/16 16:42

# 我的旧工作感觉已经很遥远了 来源:https://www.pinecoder.dev/blog/2026-10-15/my-old-job-is-distant/ 2026年10月15日 人类撰写 1c939998 (https://www.pinecoder.dev/blog/2026-10-15/my-old-job-is-distant/#content-1c939998) ![Rattlesnake Ledge 上的南瓜](https://www.pinecoder.dev/blog/2026-10-15/my-old-job-is-distant/images/pumpkin-on-rattlesnake-ledge.jpg) 我几乎记不清第一次使用 ChatGPT 的经历了。它已经深深融入我的职业生活,想要回到最初的那一刻或那几个瞬间,变得非常困难。取而代之的,是几个片段交织成的模糊记忆。某个时候,我意识到它是一个更好的 Google。这和当年 Stackoverflow 崛起时很像——针对编程主题的 Google 搜索结果从毫无用处变得有用起来。没有搜索结果暗示"是你用错了"这种令人沮丧的时刻。 我记得最初拿它试来试去,然后记得 Bryan 一直催我"你问 ChatGPT 了吗?",让我烦不胜烦。直到有一天我不再烦了,它成了我默认的起点。 下一个阶段很快就来了。我开始复制粘贴代码;通常是我懒得手写的 Ruby 测试。我会描述那些惯用写法,或者粘贴一些示例代码加上我的新需求,让它生成代码。这比在 IDE 里输入快多了——那个 IDE 没有开启我习惯的、在真正的手写语言中那样的代码补全。抱歉,我一直不喜欢写 Ruby。也许我最终会像 Rails 的爱好者们那样爱上写它并变得高效。但我无法想象那样的未来,而 ChatGPT 提供了一个逃避的出口。 我职业生涯中前五六门语言,我都以某种方式爱上了它们并变得高效。但我已经到了极限,现在觉得推迟深入学习 Ruby 是合理的了。 接下来的几个阶段成对出现:代码补全和在新领域中的复制粘贴。 代码补全更自然一些。有时有用,有时没用。它的关键在于它被集成到了我已经熟悉的 IDE 中——VS Code 的一个分支 Cursor。它能做到的基本上就是识别我写的模式;我很少甚至几乎从不依赖它的智能或真正的建议。真正的建议我还是复制粘贴到 ChatGPT 里。但这不一样了。之前那只是更高级的自动补全。现在我在一个新的领域里融合了 Google 搜索加代码生成:Python 计算机视觉。 我接手了一个临时的视觉项目(新奇物体的边界与对齐);我对这些一无所知。我以"搜索"的速度,把回答转化为代码。这是我最喜欢的阶段之一,赶在后来 Opus 模型开始话痨之前。ChatGPT 正好按照我喜欢的方式输出代码。有时我只需要一个提示,一个具体的 API 或一行代码片段。对它一顿"话痨式"输入,然后拿到一行代码回来,还经常附带我要求的那种俏皮嘲讽。我会在 Jupyter notebook 里运行代码,然后调试修改,产出可视化效果、散点图和图表;一边构建东西,一边学习 API 和这个领域。 这也是我接触幻觉最多的时期,并且发现幻觉很容易检测和应对。对我来说,它成了 ChatGPT 知道什么和不知道什么的信号;幻觉出现在知识的边界上,轮到我来填补空白,弄清楚那些文档较少或可能仅适用于我们用例的东西是如何工作的。有时候进展缓慢,但我很难想象没有它的话,我能这么快就投入一个计算机视觉项目并交付成果。 这是一个令人愉悦的未来;一个更多关乎消除 SEO 垃圾和非类型语言(更依赖优质文档)中写得糟糕的文档的未来,而不是一个我正在失去控制权的未来。 Agentic 编程很快就来了。我至今清晰地记得那时读到《Snorting the AGI》(https://kadekillary.work/blog/#2025-06-16-snorting-the-agi-with-claude-code) 和 Karpathy 那些著名的调侃 (https://x.com/karpathy/status/1886192184808149383?lang=en),当时还有点惊讶。这些人到底在说什么?但慢慢地,我学会了脱离代码补全,转向 agentic 提示。这时用的是 Claude,但和 ChatGPT 的那些阶段一样,我学会了认识它的局限并在其范围内工作;逐步改进提示词,更高效地知道它能做什么和不能做什么。 看着人们经历这个过程我觉得很有意思;冗长费力的提示词,更像愿望清单,但又因为他们会编程而显得格格不入。这与其说是关于技能,不如说是关于领悟如何在其边界内工作;尽管从某种意义上说,他们的工作方式比我更具有前瞻性。 "给 Tasks.tsx 的详情页添加日期排序功能;用 shell 系统查看 components/Shells.tsx,模仿 Research.tsx 处理详情,模仿 Users.spec.tsx 处理测试;遵循社区惯用写法而非我们自己的方式,避免 mock,使用 stubs.spec.tsx 的模式。" 某一天我抬起头,意识到我的提示方式不再是一个好玩的技巧,而是我现在工作的主要方式了。但代码库仍然完全在我脑中;每一行都经过审查。更多的 PR 变成了请求修改或我自己动手改。生产力提高了不少,尽管这部分也是因为我被解放出来,不再需要处理那些我最终不喜欢的代码。代码补全变得很少用了。Agentic 的工作流感觉同时既强大、有用,又有限。我仍然需要告诉它该做什么,如果事情有什么棘手的,还是得自己动手。 然后 Opus 4.5/6 出来了。描述这种转变会让它听起来比实际更微妙。但突然之间,我需要描述任务的粒度,以及我手把手指导它们的时间,都下降了。我的生产力从略好一点,提升到了大约 3 倍(以几个月内合并的 PR 为衡量标准)。功能的丰富程度和完成度都在提升,不需要在选择交付什么上如此受限。我脑子里的想法全都倾泻而出,慢慢地变成了现实。 但限制依然存在;PR 正在成为瓶颈。代码库仍然完全在我脑中,大部分代码行仍然经过审查。我变得更善于扫描代码。我开始觉得使用标准库、组件、模式更加重要,因为这让你可以有效地忽略大部分代码变更——只要它们在正轨上,损害就是有限的,重构也容易。去寻找更重要的部分。那些包含我们业务特有的业务逻辑的部分。那些处理需要人工审查的客户数据的部分。那些可能造成不可逆破坏的部分——数据库变更、加密等。 这份工作仍然可以理解,仍然令人愉悦。现在几乎完全变成了我对重要事物的思考——架构、迁移计划、关键业务逻辑、系统的目的、保护数据和访问。所有机械乏味的部分都消退了。 随着 Opus 5 的推进,更平凡的部分凸显出来。我能感觉到每个模型都更好了。代码一轮比一轮慢慢变好。需要纠正的更少了。有时它甚至会纠正我。但这个阶段更多是关于成本,以及它变得多么冗长。慢慢地我开始厌倦与 Opus 打交道,短暂地转回了 ChatGPT。在我使用的场景中,那些模型几乎一样好,经常完全等效。但便宜得多,更自主,也没那么啰嗦。我不信任 OpenAI,因此对它有偏见,即使它的某些方面更好(它的界面、语音聊天等)。只要 Anthropic 的编码模型几乎一样好——除了 ChatGPT 5.5 之外,它通常更好——我就愿意回来。考虑到利害关系,我相信 Anthropic 会解决那面文字墙的问题——毕竟那是我的工作。 然后 Opus 5.5 发布了。我再次感到僵住了,一切归零。我在 Twitter 上花了很多时间,看人们都在折腾什么。对它感到惊叹;试图理解它。我们再次学习和适应。我的工作方式再次改变。 Agentic 编程是……不同的。告诉模型该做什么,然后检查它的结果……我需要提升自己。我需要在什么层面上运作? 我构建了更有野心的侧项目。我照搬我在一条很酷的推文里看到的东西,尝试一步到位。我收集了很多垃圾,也产出很多垃圾 (https://cloverich.github.io/artifacts/),比平时还要多。常常感觉是些废品;但收集想法本身就很有趣。 ![一个统一的活动流,让我更快地查看所有项目中机器人的提交和笔记](https://www.pinecoder.dev/blog/2026-10-15/my-old-job-is-distant/images/unified-activity-feed.png) 我开始基于计划工作。不是旧的那种——先规划好工作,然后分阶段实施。相反,我不再考虑我想做什么样的代码审查。我考虑的是我想做什么样的 QA。我在想——应用能走多远,才会让回退变成更大的工作量?架构决策是可逆的。如果我不确定 UI 应该长什么样……我就让它多做几种。如果我有三个类似的想法,就三个都做。我能不能把它拆成一个单独的 HTML 页面? 我让 Claude 把它的计划、进展和项目笔记输出到我的笔记应用里;现在有时我基于这些笔记工作,而不是基于聊天记录。 我生成更多产物,现在有了数据支撑。我把它们变成 AI 可以用来追踪其工作状态和历史的工具;也是我可以用来可视化其进展的工具。漏洞报告被批量修复;我在燃尽图上标注关键节点。如果我担心性能影响;我也让它监控性能。我把更多工作转移到"子代理"中,让一个主管站在上方俯瞰全局。我开始思考我需要在多高的架构层面发号施令,或者我应该关注什么样的产出结果。它会有漏洞吗?我能不能让另一个模型去尝试利用这些漏洞来找出答案;报告其结果,然后让模型们协同来加固设计? ![指标看板可以与活动追踪和状态管理结合;LLM 和人类都可以利用](https://www.pinecoder.dev/blog/2026-10-15/my-old-job-is-distant/images/metrics-dashboard.png) 我想要 UI 响应迅速。我以前会指定使用 observables 和其他优化偏好——有时仍然如此。但我也可以只添加约束——图片应该在 15ms 内处理完成 \*按下``\*。哦糟了——我本来想写 150ms 的但是……哦……那就看看模型能不能做到吧?哇。我意识到……我需要重新评估什么是可能的,什么是不可能的。 我提示模型去探索把我的 Electron 笔记应用迁移到 iPhone,终于。原生 Swift,重写任何我们想重写的部分。我以为自己在构思,按下回车就离开了。几小时后我在手机上看新闻,被一个(简陋但)能用的应用打断了——它是通过网络安装的,这样模型就能让我做 QA。它用了我 20 美元订阅中 5 小时额度的 40%。它功能不完整,但它能用?我用导入器把所有笔记都导进去了……看起来很棒。 那是我盯着屏幕目瞪口呆的几个瞬间。一切都再次天翻地覆了。 我思考未来。但我活在当下。我的工作方式又在变化了;我们如必须的那样去适应。如果我忘掉恐惧,取而代之的是变得非常兴奋。我越快放下过去的工作方式,拥抱现在的方式,就越感到充满力量。随着代码更快地生成,我如何继续理解它?我想出新的指标,新的看板。我更深入地思考设计中最重要的部分和约束是什么。那是唯一值得投入注意力和精力的地方。我思考构建帮助我理解的工具,以及供模型使用的工具。更快迭代想法的工具;产生新想法、混合搭配旧想法的工具。更好地发现其他人在做什么的工具,思考不同事物如何互操作,并尝试去构建它。 当我浮出水面呼吸时,我惊叹于一切都变了多少。模型变化得有多快。然而,我们自己也变了,也持续适应着新的工作方式。 关于旧的工作方式,有很多东西我怀念。也有很多东西我不怀念。旧的工作方式感觉就像昨天才发生;但它也似乎正在漂向远方。

相似文章

对AI感到忧郁

Simon Willison's Blog

文章探讨了软件工程师因AI进步(如编码代理)可能产生的生存危机,但强调适应新工具并利用现有技能以提供更大价值。

感觉自己成了众多AI工具之间的粘合剂

Reddit r/artificial

一位中型创业公司的产品经理分享了自己的挫败感:他不得不在多个AI工具(Claude、ChatGPT、Cursor、Perplexity、Notion AI、Atoms AI)之间手动传递上下文,感觉自己成了把它们粘合在一起的胶水,而不是被它们取代。

过去很困难

Hacker News Top

作者反思AI如何让软件开发变得更容易,将其比作DJ取代摇滚吉他手,并思考自动化艰苦工作对社会的影响。