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给你一个方案,你能说出"这个方案在什么条件下会失效"吗?