AI时代,是否还要死磕《算法导论》等基础知识?
【问题引入】在当前AI时代下,程序员是否还需要死磕“算法导论”、“数据结构与算法分析”、“计算机网络”等知识?遇到不懂的知识,AI一下就有现成的解决方案了,还有必要花大量时间和精力来学习这些基础吗?
和AI做了一些讨论,整理如下,供大家参考。
1. 先承认AI确实改变了什么
以前需要记忆/手写的:
- 排序算法实现细节
- 具体API用法
- 配置文件格式
- 样板代码
- 常见bug的解法
这些AI确实做得很好,继续死磕"记住实现"意义确实降低了。
2. 几个关键问题值得认真想
2.1 你能判断AI给的答案是否正确吗?
AI会自信地给出错误的算法选择:
# 场景:10亿条数据去重 # AI可能给你: seen = set() # 直接用set # 但如果你懂布隆过滤器的原理,你会知道这个方案会OOM # AI不是不会给出布隆过滤器方案,而是你不懂,你不知道该追问什么没有基础,你无法有效提问,也无法验证答案。
2.2 AI给的是"解法",不是"判断力"
真实工作中的问题往往是: "我们的系统在数据量增长后变慢了" "这个接口偶发超时" "这个功能怎么设计更合理" 这些问题: - 没有标准答案让AI查 - 需要你自己建模和拆解 - 需要你理解权衡取舍AI能回答清晰的问题,但将模糊问题变成清晰问题需要基础知识。
2.3 区分"是什么"和"为什么"
| 层次 | AI能否替代 | 举例 |
|---|---|---|
| 记住实现 | ✅ 基本可以 | 快排代码怎么写 |
| 知道有什么 | ✅ 大部分可以 | 有哪些排序算法 |
| 选择用什么 | ⚠️ 需要你判断 | 这个场景用哪个 |
| 理解为什么 | ❌ AI给答案但你得懂 | 为什么这样设计 |
| 系统级权衡 | ❌ 难以替代 | 整体架构怎么取舍 |
3. 该死磕什么,不该死磕什么
3.1 不必要的死磕方式(时代确实变了)
❌ 反复手写红黑树实现直到背下来 ❌ 记忆所有网络协议的报文格式 ❌ 刷500道LeetCode只为了背题 ❌ 把《算法导论》当数学书从头推导3.2 仍然值得深入的
✅ 复杂度分析的思维方式 —— 不是背公式,是建立"规模感" ✅ 数据结构的设计哲学 —— 为什么需要这种结构,它在解决什么矛盾 ✅ 计算机网络的核心模型 —— TCP为什么这样设计,HTTP的本质是什么 ✅ 系统设计中的基本权衡 —— CAP、一致性、可用性这些真实存在的约束3.3 一个更本质的视角
AI本质上是:
- 把人类过去解决过的问题的答案,以更快的速度检索和重组给你
但它不能替代的是:
- 判断当前问题是否"过去解决过的"
- 识别问题中的新变量
- 对错误答案的识别能力
- 在约束条件下的创造性权衡
基础知识的价值不在于"存储答案",而在于建立判断力。
4. 实际建议
如果你是学生/初级程序员:
基础仍然要学,但学法变了——重理解轻记忆,用AI辅助理解而不是替代理解
如果你是有经验的程序员:
AI能放大你的基础,基础越深,用AI越高效;基础薄,AI只会给你生产力幻觉
一个可以自测的问题:
当AI给你一个方案,你能说出"这个方案在什么条件下会失效"吗?