AI 时代,我们该怎么正确地学习编程
一句话:AI 替你把「语法」和大部分「实现」写了,但业务逻辑永远得你自己懂。所以学习策略从「背语法」转向「懂业务」。
一、把代码分成三层
读任何一段代码,先问一句:它是哪一层?
| 层 | 是什么 | 例子 | 谁来管 |
|---|---|---|---|
| 语法 | 语言的规则和写法 | std::optional、template、operator->、override |
AI |
| 实现 / 流程 | 代码怎么组织、数据怎么走 | socket → 切帧 → decode → 面板;tick 重发 | 人画地图,AI 写 |
| 业务逻辑 | 现实世界的规则和边界 | 收入 ≠ 利润;9999 = 未知;10 秒无操作就自动退出 | 人,死磕 |
二、每一层该怎么对待
语法:知道「有这么个东西」就行
- 不需要背
std::span的每个成员函数。 - 遇到看不懂的,问 AI「这是什么、为什么这么写」,知道概念即可。
- 判断标准:换一种写法,功能一样吗? 一样 → 语法,不用深究。
实现 / 流程:画地图,不抠每行
- 目标是「数据从哪来、到哪去」的大图。
- 像看地图一样记住主干路:哪个类负责收、哪个类负责发、信号怎么连。
- 判断标准:这段代码在数据流里扮演什么角色? 答得出主干即可。
业务逻辑:死磕,拿现实验收
- 这是 bug 和安全问题藏身的地方。
- 判断标准:这行代码错了,现实世界会发生什么? 答得出 → 业务逻辑,必须懂。
- 例:把
report.profit = pkt.revenue(利润错填成收入),语法、流程全对,但算出来的盈亏全错------只有懂「收入 ≠ 利润」的人能抓出来。
三、为什么业务逻辑 AI 替不了你
AI 不知道现实世界。 它知道「收入」和「利润」是两个字段,但不知道它们业务上是两个概念------除非规范里写了、或者你告诉它。
所以分工就是:
- 你握着现实世界(规则 + 边界)
- AI 握着语法 + 流程
- 合起来,还要你拿现实去验收 AI 的代码
四、AI 时代正确的学习姿势
- 别背语法,遇到再查,查多了自然熟。
- 重点画地图,把每个项目的「数据从哪来、到哪去」画清楚。
- 死磕业务逻辑,拿现实规则一条条对代码。
- 让 AI 当陪练,而不是替考 :让它解释、让它写、让它改,但结论由你用现实去判断。
五、一张检查清单
读一段代码前,先问三个问题:
- 它属于语法 / 实现 / 业务逻辑哪一层?(决定投入多少精力)
- 它在数据流里的位置?(画地图)
- 它错了,现实世界会发生什么?(业务逻辑)
前两个可以问 AI,第三个必须自己答。
写在最后
在 AI 时代,「会不会背语法」不再值钱,「懂不懂业务」才是你的护城河。技术会变、语法会换,但现实世界怎么运行、边界在哪,这些判断永远要人来把。
你今天读一个通信类项目,真正要记住的不是 QSocketNotifier 怎么写,而是:这条数据流为什么要这样设计、哪一行错了会让设备出事。