别再死磕算法了:AI 时代,程序员的"大脑"比"手指"更值钱

cover

算法题刷了三个月,面试还是挂了

Anthropic 最近发布了一项研究:使用 AI 辅助编码的开发者,在代码理解测试中得分比不使用 AI 的低 17%。

这个数字让我想起一个认识的工程师。他花了三个月刷 LeetCode,结果面试时面试官问他”如果让你设计一个电商系统的库存扣减方案,你会怎么做?”他答不上来。

不是个例。很多程序员把大量时间花在算法题上,以为这是技术能力的核心。但 AI 编码工具的出现,正在重新定义什么才是程序员的核心竞争力。

当 AI 帮你写代码时,你的”手指”变快了,但”大脑”可能在退化。

代码实现已成工程边角料

AI 正在接管”写代码”这件事

2026 年的今天,GitHub Copilot、Cursor、Claude Code 这些工具已经不是什么新鲜事了。它们能做什么?

  • 根据注释自动生成函数实现
  • 跨文件分析代码库并修复 bug
  • 自动生成单元测试和文档
  • 甚至能理解业务需求直接输出代码

MIT Technology Review 的报道指出,AI 编码工具最早出现在 2016 年,但真正爆发是在大语言模型出现之后。现在这些工具已经能分析整个代码库、跨文件编辑、修复 bug,甚至生成文档。

Coinbase 的平台负责人透露,他们在某些领域看到了巨大的生产力提升。但问题来了:当 AI 能写出 80% 的常规代码时,程序员的价值在哪里?

传统技能的贬值速度超出想象

记得以前面试必考的那些东西吗?

  • 手写快排、二叉树遍历
  • 背诵设计模式的 23 种实现
  • 记住各种 API 的语法细节

这些技能不是不重要,而是它们的重要性正在快速下降。就像计算器普及后,心算能力不再是数学家的核心竞争力一样。

一位有十几年经验的工程师分享说,过去几个月他轻松上手了不同的前端框架、Go 语言、Python,学习机器学习算法和云原生基础设施,”语言、框架和基础设施的经验,似乎不再重要。全栈,曾经是一个非常遥远的目标,今天已经唾手可得。”

这意味着什么?意味着”会写代码”这个技能的门槛正在被 AI 拉低。

真正值钱的是”决策能力”

架构思维:从局部到全局

什么是架构思维?简单说,就是站在更高的视角看问题。

传统程序员关注的是:这个函数怎么写?这个 bug 怎么修?这个性能怎么优化?

而具备架构思维的人关注的是:

  • 这个系统应该分几层?
  • 各个模块之间如何解耦?
  • 如何应对未来的需求变化?
  • 技术选型的权衡是什么?

架构的本质是管理复杂性。抽象、分层、分治、演化——这四种基本思维,AI 学不会。

举个例子:设计一个电商系统的订单服务。AI 能帮你写出订单创建、支付、发货的代码,但它不会告诉你:

  • 订单状态机应该怎么设计才能应对各种异常场景?
  • 库存扣减应该在下单时还是支付时?
  • 如何保证分布式事务的一致性?
  • 系统如何平滑地从单体演化到微服务?

这些决策需要对业务的深刻理解、对技术的全局把控、对未来的合理预判。这是人的价值。

产品逻辑:理解”为什么要做”

更值钱的能力是产品思维。

很多程序员接到需求就开始写代码,从不问”为什么”。但真正厉害的人会问:

  • 这个功能解决了用户的什么问题?
  • 有没有更简单的实现方式?
  • 这个需求的优先级是什么?
  • 做完之后如何衡量效果?

一位技术管理者说得很直白:”产品能力(理解用户、定义市场需求、排优先级、原型推进)和将需求讲清楚的能力不可替代,与人打交道 AI 永远学不会。”

AI 可以根据 PRD 写代码,但它写不出 PRD。它不知道用户真正想要什么,不知道哪个功能更重要,不知道如何在资源有限的情况下做取舍。

这就是为什么很多优秀的程序员最终转型做了产品经理或技术管理者——因为他们意识到,定义”做什么”比”怎么做”更重要。

系统设计:在约束中找最优解

系统设计是另一个 AI 无法替代的领域。

设计一个系统需要理解权衡、约束和全局,而不仅仅是写几个函数。比如:

  • CAP 定理告诉我们一致性、可用性、分区容错性不可兼得,你选哪个?
  • 性能和可维护性之间如何平衡?
  • 如何在成本、时间、质量之间做权衡?

AI 倾向于给出通用解决方案,但现实世界充满了特殊场景。一个电商系统和一个社交系统,虽然都需要用户模块,但设计思路完全不同。

经验丰富的工程师会问”如果……会怎样?”他们会考虑边界情况、网络中断、异常用户行为、与其他系统的集成。这种批判性思维和远见,是 AI 训练数据里学不到的。

从执行者到决策者的转型路径

第一步:培养抽象思维

抽象思维是架构能力的基础。

什么是抽象?就是从具体问题中提取共性,用通用方法解决,而不是重复写相同的代码。

有经验的程序员写代码会保持抽象层次的一致性,代码读起来像讲故事。而新手经常出现抽象层次跳跃——主流程里突然冒出一行银行 API 调用,这种细节应该封装在更底层的抽象里。

如何训练?多读优秀的开源项目代码,看看大牛是如何组织代码的。多做 Code Review,学会识别抽象层次的问题。

第二步:学会”向上思考”

大多数程序员习惯”向下思考”——拿到需求就想怎么实现。

但你需要学会”向上思考”:

  • 这个需求背后的业务目标是什么?
  • 有没有更简单的方式达成目标?
  • 这个功能上线后如何衡量成功?

具体怎么做?主动参与需求评审,多问”为什么”。跟产品经理、运营同事聊天,了解业务逻辑。看数据报表,理解用户行为。

当你开始关注”为什么做”而不只是”怎么做”时,你就在从执行者向决策者转型。

第三步:刻意练习系统设计

系统设计能力不是天生的,需要刻意练习。

推荐几个方法:

  1. 看经典案例:研究大厂的技术博客,看他们如何设计高并发系统、分布式系统。
  2. 做思维实验:给自己出题,”如果让我设计微信朋友圈,我会怎么做?”然后画架构图,思考各种技术选型。
  3. 参与架构讨论:公司做技术方案评审时,即使你不是负责人,也要认真思考,提出自己的想法。
  4. 学习架构模式:不是背设计模式,而是理解分层、分治、演化这些基本思想。

有个经典面试题很能锻炼系统设计能力:给你一台 8G 内存的电脑,如何对一个 100G 的文件排序?

这道题考的不是算法,而是分治思维、资源管理、工程实现能力。

第四步:建立”工具思维”

AI 是工具,不是替代品。

关键是学会如何更好地使用 AI。Anthropic 的研究发现,那些用 AI 做概念探索的开发者得分在 65% 以上,而那些直接让 AI 生成代码的得分低于 40%。

正确的使用方式是:

  • 用 AI 快速验证想法
  • 用 AI 生成样板代码
  • 用 AI 学习新框架的用法
  • 但核心逻辑、架构设计、技术选型,你自己决定

就像计算器让数学家能解决更复杂的问题,AI 应该让你有更多精力思考高层次的问题,而不是让你停止思考。

总结

我自己的感受是:用 AI 写代码越多,越需要想清楚”为什么这么设计”。

因为 AI 给你的方案通常是合理的,但不一定是适合你这个场景的。你得有能力判断它给的东西对不对,这个判断能力比”会写代码”难培养得多。

算法题还要刷吗?要刷,但不要死磕。它们是基础,但不是全部。

更重要的是培养:

  • 架构思维:管理复杂性,做技术选型
  • 产品逻辑:理解业务,定义需求
  • 系统设计:在约束中找最优解
  • 批判性思维:质疑、验证、优化

那个 17% 的数据我一直记着。我现在用 AI 写代码时,会刻意在提交前想一遍:这段逻辑我能解释清楚吗?如果不能,说明我只是在用 AI 执行,没有在用大脑思考。

这个习惯有点慢,但我觉得值得。