AI 都能写算法了,程序员还需要学习算法吗?
最近,一个帖子在程序员社区 V2EX 上引发了激烈争论。一位应届生发帖说:“我用 Copilot 刷了 300 道 LeetCode,面试时手写代码完全写不出来,怎么办?”
评论区直接炸了。有人说“活该,这就是走捷径的代价”,有人说“算法本来就不重要,会用工具就行”,还有人说“面试考手写算法本来就是反人类”。
这场争论的背后,其实是一个更深层的问题:在 AI 能秒写任何算法的时代,程序员到底还需不需要学算法?
这个问题看似简单,但它牵扯到程序员的职业定位、教育体系的变革、以及整个行业对“能力”的重新定义。不模棱两可,直接表达观点。
AI Coding Interview Prep — Best Study Plan (2026 Guide)
一、LeetCode 上的“作弊者”们
二、先看事实:AI 写算法,已经比大多数人快
我们先不谈观点,看看事实。
2025年,Google DeepMind 发布了 AlphaCode 2,在编程竞赛中的表现超过了 85% 的人类选手。OpenAI 的 o3 模型在 Codeforces 上的评分达到了 2700,这已经是国际大师级水平。在日常开发中,Claude 4、GPT-5 等模型已经能轻松实现各种经典算法——排序、搜索、动态规划、图论、甚至复杂的分布式算法。
一个更直观的数据:LeetCode 官方做过一个测试,用 GPT-5 解答平台上的算法题,中等难度的通过率超过 95%,困难难度的通过率也超过了 80%。这个成绩,放在任何一个大厂的算法面试中,都是“offer 级别”的。
所以,从纯“能不能解题”的角度来看,AI 已经碾压了绝大多数程序员。这是事实,没什么好争的。
但问题是:“能解题”和“懂算法”是两回事。
三、“会用导航”和“认路”的区别
这里有一个很好的类比:AI 写算法,就像 GPS 导航。
有了 GPS,你确实不需要记路了。输入目的地,它就带你走。但如果你完全依赖 GPS,有一天它没信号了,你就彻底迷路了。而如果你有基本的方向感和地理知识,即使 GPS 挂了,你也能找到路。
算法也是一样。AI 能帮你写出快速排序的代码,但如果你不理解“为什么快速排序比冒泡排序快”、“什么场景下归并排序比快速排序更合适”、“时间复杂度和空间复杂度到底意味着什么”——那你就不具备判断 AI 输出质量的能力。
而这种判断力,恰恰是 AI 时代程序员最核心的竞争力。
举一个更现实的例子。假设你是一个后端工程师,系统突然出现了性能瓶颈。你用 AI 分析代码,AI 告诉你“这个查询的时间复杂度是 O(n²),建议优化为 O(n log n)”。如果你不懂算法,你根本不知道这意味着什么,更不知道怎么验证 AI 的建议是否正确。你只能盲目信任,或者找别人帮忙。
而如果你有扎实的算法基础,你不仅能理解 AI 的建议,还能判断它是否适用于你的具体场景,甚至能发现 AI 遗漏的优化空间。这就是“懂”和“会用”的本质区别。
四、大厂面试考算法,真的合理吗?
这个问题争议最大。支持者说“算法是基础能力的体现”,反对者说“工作中根本用不到,纯属浪费时间”。
说实话,两边都有道理,但都不完全对。
先说大厂为什么坚持考算法。原因其实不是“算法有多重要”,而是算法面试是一个高效的筛选机制。大厂每年收到几十万份简历,不可能每份都做深度面试。算法题提供了一个标准化的、可量化的、低成本的初筛手段。能做出中等难度算法题的人,大概率有不错的逻辑思维能力和学习能力——至少在目前,没有更好的替代方案。
但反对者的观点也有道理。很多优秀的工程师,算法能力一般,但工程能力极强——他们能设计出优雅的架构、写出高质量的代码、解决复杂的生产问题。因为算法面试被筛掉,确实是行业的损失。

大厂算法面试:高效的筛选机制,但不是完美的筛选机制
那 AI 时代会改变这个局面吗?
从趋势来看:会,但不是你想的那种方式。
大厂不会取消算法面试,但会改变考法。2026年,已经有公司开始试点“AI 辅助算法面试”——给你一个算法问题,允许你使用 AI 工具,但你需要解释你的思路、评估 AI 的输出、讨论不同方案的权衡。换句话说,面试的重心会从“能不能写出代码”转向“能不能驾驭 AI、理解底层原理”。
这对纯靠背题的人来说是坏消息,但对真正理解算法的人来说是好消息。
五、我的观点:学算法的目的变了,但学的必要性没变
好,该亮观点了。
AI 时代,程序员仍然需要学算法,但学的方式和目的需要彻底改变。
过去学算法的目的很功利:通过面试。所以大家疯狂刷题,背模板,记套路。这种方式在 AI 时代确实过时了——你背的模板,AI 全都会,而且比你记得更牢、写得更快。
但学算法的真正目的,从来不是“背代码”,而是培养计算思维。什么是计算思维?就是面对一个复杂问题时,你能想到:
- 这个问题能不能分解成更小的子问题?(分治)
- 这个问题有没有重复计算?能不能缓存?(动态规划)
- 这个问题的状态空间有多大?能不能剪枝?(搜索优化)
- 这个问题的瓶颈在哪里?是计算密集还是 IO 密集?(性能分析)
这些思维方式,不是 AI 能教你的,也不是 AI 能替代你的。它们需要通过大量的算法学习和练习来内化。一旦你具备了这种思维方式,你就能在 AI 的辅助下,做出更好的技术决策。
算法学习的真正价值:从“背代码”到“培养计算思维”
所以,建议是:不要停止学算法,但要改变学的方式。
六、AI 时代学算法的正确姿势
既然学算法仍然重要,那怎么学?以下总结的“AI 时代算法学习法”:
姿势 1:先理解思想,再看代码
不要一上来就看代码实现。先理解算法的核心思想——它要解决什么问题?关键洞察是什么?为什么这样设计?比如学动态规划,先理解“最优子结构”和“重叠子问题”这两个概念,再去看具体的代码实现。思想通了,代码只是表达方式。
姿势 2:用 AI 做“陪练”,不是“替身”
学算法时,AI 是最好的陪练。你可以让 AI 给你出题、解释思路、分析复杂度、甚至模拟面试。但代码一定要自己写。不是因为手写有什么魔法,而是因为自己写的过程会暴露你的理解盲区。AI 帮你写的代码,你看懂了不代表你会了;你自己写出来的代码,卡住了才是真正的学习机会。
姿势 3:关注“为什么”,而不是“怎么写”
过去刷题,大家关注的是“这道题怎么解”。现在 AI 能直接告诉你答案,你应该把注意力转向“为什么这个解法是最优的”“有没有其他解法”“不同解法的 trade-off 是什么”。这些深层次的问题,才是区分“会用 AI”和“懂算法”的关键。
姿势 4:学“系统设计”而不是“算法竞赛”
如果你不是要打竞赛,那 LeetCode 上那些偏门的算法题(比如 Manacher 算法、后缀数组)可以少花时间。把精力放在更实用的领域:系统设计中的算法应用——负载均衡算法、缓存淘汰策略、分布式一致性算法、数据库索引结构。这些才是工作中真正用得上的。
姿势 5:做项目,不做题
最好的学习方式不是刷题,而是在真实项目中应用算法。比如做一个搜索引擎,你会自然地学习倒排索引、TF-IDF、PageRank;做一个推荐系统,你会自然地学习协同过滤、矩阵分解。把算法放在真实场景中,比刷 100 道 LeetCode 有用得多。
七、行业正在发生的变化
最后,看看行业对这个问题的态度变化。
Google 在 2025 年悄悄调整了面试流程,降低了算法题的权重,增加了系统设计和行为面试的比重。据内部人士透露,这个变化的部分原因就是“AI 工具让算法题的区分度降低了”。
字节跳动在 2026 年面试中开始引入“AI 辅助编程”环节——给候选人提供 Copilot,考察的不是能不能写出代码,而是能不能有效地利用 AI 工具解决问题。
Meta 则更激进,2026年已经开始试点“take-home project”替代算法面试,让候选人在真实环境中(可以使用任何 AI 工具)完成一个实际项目。
这些变化说明了一个趋势:行业正在从“考你会不会写”转向“考你会不会想”。
科技巨头正在重新定义“技术面试”
八、写在最后
回到开头那个问题:AI 都能写算法了,程序员还学不学算法?
学,但换个学法。
过去学算法是为了“能写出来”,现在学算法是为了“能想明白”。AI 会写代码,但它不会替你思考。在 AI 能秒出答案的时代,真正稀缺的不是答案,而是提出好问题的能力、评估答案质量的能力、以及在多个方案中做出最优选择的能力。
这些能力的根基,就是算法思维。
所以,别因为 AI 就放弃学算法,那叫因噎废食。但也别像以前那样死记硬背刷题了,那叫刻舟求剑。正确的姿势是:把 AI 当成你的算法教练,用它来加速学习,但永远不要让它替代你思考。
毕竟,计算器发明了几百年,人类还是在学数学。不是因为计算器不够好,而是因为数学从来就不是计算,而是思考。
算法也一样。
