最近看到一篇关于编程生产力的文章:
作者分享了自己早期的一个经历。他负责升级一个零售商的POS系统,但被一个功能卡住了。
他没有继续埋头写代码,而是直接去了一家门店观察、询问店员。
这次实地考察让他恍然大悟,回到办公室后,他只修改了三行代码就正确解决了问题。

https://codemanship.wordpress.com/2026/01/30/coding-is-when-were-least-productive/
从这个故事出发,作者阐述了几个重要观点:
-
真正的生产力 ≠ 代码量:以代码行数、提交次数来衡量开发人员的生产力是本末倒置的。最有价值的那三行代码,远比盲目写出的几千行无用代码更有生产力。
-
编码可能是“干扰”:当我们埋头编码时,其实停止了观察、提问和学习。我们只是在基于假设堆砌代码,很可能在解决错误的问题。
-
价值产生的环节:真正的生产力发生在 “学习反馈循环” 中——即花时间去理解真实问题、与用户交谈、验证想法的过程。这个环节创造净价值。
这篇文章对开发者和管理者都很有启发:追求理解问题而非仅仅产出代码。有时,离开键盘去沟通和探索,才是最高效的工作方式。
真正的生产力来自深入理解问题、与用户交流,然后编写出“正确的、有价值的”少量代码。
一、“前AI时代”到“AI时代”的主要矛盾演进
这篇文章的故事是“前AI时代”,批判的是人类盲目追求代码量的管理思维。
在AI编码时代,技术工具正以前所未有的速度迭代,Claude Code、OpenCode、Antigravity这些加上规则和技能,完全可以替代程序员编程。
AI的到来,非但没有解决这个问题,反而将其推向了极致,让“解决什么问题”的思考变得前所未有的重要和紧迫。
1.1、 “前AI时代”(文章批判的时代)
- 管理者错误地将 “代码量” 等同于生产力。
- 程序员被锁在办公桌前,产出大量基于错误理解的、可能无用的代码。
- 生产力的关键是:离开键盘,通过与人交谈、实地观察来理解真实需求。
- 开发者的核心角色:翻译者:将(理想情况下已理解的)需求翻译成机器能执行的代码。
1.2、 AI编码时代(现在的挑战)
- 开发者可能错误地将 “生成代码的速度” 等同于生产力。
- 程序员能瞬间生成海量看似正确、但同样基于错误理解的代码,放大错误的速度和规模呈指数级增长。
- 将思考重心从“如何编码”彻底转向“为何编码”。定义问题、验证需求、设计测试的能力变得比编码能力更稀缺。
- 角色转换:架构师与验证者:
1. 定义问题框架:给AI清晰、无歧义的指令和上下文。
2. 批判性判断:审查、评估、测试AI生成的方案,确保其正确、安全、符合伦理。
3. 整合与创造:将AI产出融入更大的系统,解决AI尚不能处理的复杂、模糊问题。

1.3、 核心不变的原则
- 价值不在于代码的规模或速度,而在于其解决真实问题的有效性*。
- “Garbage in, garbage out.” (输入垃圾,输出垃圾)如果问题本身理解错了,AI只会帮你更高效地制造错误。
- 真正的生产力发生在编码之前的思考和编码之后的验证闭环中。
- 从“代码的生产者”变为“解决方案的定义者和质量守护者”。
当编码的“体力活”部分被极大自动化后,软件开发中最具价值、最不可替代的部分就清晰浮现出来——那就是人类的批判性思维、深度理解领域知识、提出正确问题以及进行价值判断的能力。
给你的直接启发是:在AI时代,一个程序员最具竞争力的工作流可能变成:
- 深度思考与探索:我到底要解决什么?用户真正的痛点是什么?现有的边界和约束是什么?
- 精准定义与描述:如何将我的需求拆解成AI能清晰理解的一系列提示或任务?
- 严格审查与测试:AI给出的方案真的对吗?有没有隐藏的漏洞?是否符合业务逻辑和用户体验?
- 创造性整合与升华:如何将AI的产出融入我的整体设计,并在此基础上做出创新?
AI取代的不是程序员,它取代的是“只知埋头写代码、不思考为何而写”的“代码打字员”。它正在将每一位开发者推向必须成为问题解决战略家的位置。
二、变中的不变
在AI编码时代,技术工具正以前所未有的速度迭代,但回顾那篇关于“编码并非生产力核心”的文章,我们会发现,真正的内核并没有被替代,反而被技术浪潮冲刷得更加清晰、重要。
不变的事物,恰恰构成了我们从“程序员”进化为“问题解决架构师”的基石。
2.1、不变的核心:编程的“元问题”
技术会变,语法会变,框架会潮起潮落,但编程需要面对的元问题始终如一。它们是:
2.1.1、我们究竟在解决什么问题? (What problem are we really solving?)
AI不能帮你问出这个问题。
那篇文章的作者去商店观察,就是在探寻真正的“元问题” —— 不是“如何修改促销代码”,而是“收银员在实际中如何完成一次促销”。
AI时代,这个问题的重要性被指数级放大。
2.1.2、我们为谁解决这个问题? (Who are we solving it for?)
代码的用户是人,或者是另一个系统。
理解他们的真实场景、限制和期望,这种共情与系统理解能力,AI无法原生具备。
2.1.3、如何知道我们解决了? (How do we know it's solved?)
这指向了验证与定义成功标准。
是测试通过?用户体验流畅?业务指标提升?定义“完成”和“正确”,是人类不可推卸的责任。
2.2、不变的方法论:构建可靠系统的思维
AI能生成代码,但无法生成构建可信系统的工程智慧。
| 不变的方法论 | 内涵 | 为什么AI无法替代 |
|---|---|---|
| 分解与抽象 | 将复杂问题分解为简单模块,建立清晰边界和接口。 | AI可以按指令生成模块代码,但最初的问题分解逻辑、系统抽象层级的设计,源于人类对问题域的深刻洞察。 |
| 迭代与反馈 | 通过小步快跑,获取真实反馈并持续调整。 | AI能加速迭代,但设计反馈循环、解读反馈的深层含义、做出方向性调整的决策,必须由人完成。 |
| 测试与验证 | 建立客观标准,确保系统行为符合预期。 | AI能生成测试用例,但“到底应该验证什么”这个战略问题,以及如何设计揭露深层缺陷的“探索性测试”,依赖人类智慧。 |
2.3、不变的思维模式:人类智慧的特质
这是区分顶尖工程师与平庸代码输出者的分水岭,也是AI最难触及的领域。

-
批判性思维与怀疑精神:对AI生成的结果保持审慎,能发现其逻辑的微妙缺陷、边界条件的遗漏,以及解决方案中隐含的假设。这种健康的“不轻信”,是质量的最终防线。
-
系统性思考:能看到代码如何融入更大的技术栈、业务流程、组织架构和商业环境中。理解一个功能改动对安全性、性能、可维护性乃至团队协作的连锁影响。
-
创造与权衡的艺术:在速度与质量、灵活性与稳定、创新与技术债等诸多维度中,做出合乎当下情境的最佳权衡。这种“度”的把握,是工程决策的核心。
-
沟通与协作:将复杂的技术概念转化为产品、业务乃至用户能理解的语言,并协调不同利益相关者达成共识。代码最终是为社会协作服务的。
2.4、整合的思维模型:AI时代的“问题解决架构师”
将这些“不变”的事物整合起来,就形成了你在AI时代的工作流核心 —— 从“如何编码”转向“为何编码”。
你可以通过下表,直观地将传统的编程思维,转变为AI时代更核心、更不变的问题解决思维:
| 思考维度 | 传统的编程思维 | AI时代的问题解决思维(不变的核心) |
|---|---|---|
| 起点 | “这个功能/需求怎么实现?” | “这个需求背后要解决的真正问题是什么?” |
| 过程 | 设计算法,编写代码,通过测试。 | 定义问题边界 → 设计验证方案 → 指导AI探索 → 批判性评估 → 集成与演进。 |
| 核心活动 | 写代码、调试。 | 提问、观察、拆解、定义、判断、权衡、沟通。 |
| 产出 | 可运行的代码。 | 已验证的、有价值的解决方案,以及可维护的系统演进能力。 |
| 工具观 | 编程语言、框架是主要工具。 | AI是强大的思维加速器和原型生成器,而你是它的导演与质检官。 |
总结来说:AI替代的是“将明确指令翻译为代码”这一环节。
但将模糊需求转化为精确指令、在复杂约束下进行创造性架构、以及为结果的价值与正确性负最终责任 —— 这些编程中最难、最核心的部分,不仅没有改变,其重要性反而达到了历史顶峰。

编程的本质,从未是关于代码本身。过去它是关于逻辑与沟通(让人和机器理解彼此),在AI时代,它更是关于洞察与定义(让机器为人解决正确的问题)。
浙公网安备 33010602011771号