核心结论:AI 替代的是任务,不一定直接替代职业
关于 AI(人工智能)和就业的争论里,最容易混淆的一点是:某个任务被自动化,不等于整个职业消失。
大语言模型(Large Language Model,LLM)确实已经能完成很多过去由人处理的工作,比如总结文档、生成代码、写报告、整理会议纪要、做初步分析。问题在于,一个岗位并不是由单一任务组成的。软件工程师不只是写代码,放射科医生也不只是看影像。
更准确的判断方式应该分成三层:
| 层级 | 含义 | 例子 |
|---|---|---|
| 任务 | 工作中可拆分的一小块动作 | 写函数、读片、总结报告 |
| 岗位 | 多个任务组合成的职责 | 软件工程师、放射科医生、分析师 |
| 职业/行业 | 由岗位、流程、责任和市场需求共同构成 | 医疗影像、软件开发、咨询服务 |
AI 的能力提升,首先冲击的是任务层。任务层变化以后,岗位会被重新组织;只有当需求没有扩张、岗位中的核心任务又高度可自动化时,职业规模才可能明显收缩。
flowchart TD
A[AI 可以完成某个任务] --> B{这个任务在岗位中占比多高}
B -->|占比低| C[岗位内容调整]
B -->|占比高| D[岗位被重组]
D --> E{行业需求是否扩张}
E -->|需求扩张| F[人机协作岗位增加]
E -->|需求不扩张| G[岗位数量可能下降]
C --> H[人用 AI 提高产出]
F --> H
这个框架比“AI 会不会取代某某职业”更有解释力。
放射科案例:读片自动化没有消灭医生
十年前,Geoffrey Hinton 曾预测 AI 会大幅冲击放射科医生,因为影像识别是深度学习非常擅长的任务。后来医疗影像 AI 确实进入了医院系统,但放射科医生并没有被整体替代,很多地区反而出现了人手不足。
原因并不复杂:放射科医生的工作不只是“识别图像里有没有异常”。
放射科医生还要结合病史、临床表现、检查目的、不同成像方式的局限性来给出判断;他们要承担诊断责任,还要和临床科室沟通,必要时决定是否追加检查。AI 可以帮助发现可疑区域,提高读片效率,但它没有接管整个诊疗链条。
| 工作环节 | AI 能做什么 | 人仍然承担什么 |
|---|---|---|
| 影像筛查 | 标记可疑病灶、提示风险 | 判断提示是否可信 |
| 报告生成 | 生成初稿、补全格式 | 结合病史修正结论 |
| 临床沟通 | 提供辅助信息 | 和其他医生讨论治疗方向 |
| 医疗责任 | 无法独立承担 | 对诊断结果负责 |
这说明一个关键问题:自动化能力越强,越需要重新判断人的职责边界,而不是简单宣布职业消失。
软件工程师案例:写代码只是工程的一部分
Anthropic CEO(首席执行官)Dario Amodei 多次表达过一个判断:AI 会在较短时间内写出绝大部分代码,并在 1 到 5 年内冲击大量入门级白领岗位。他还提到,金融、咨询、科技等领域的初级岗位,很多工作都由文档总结、头脑风暴、报告撰写和信息整理构成,这些正是大语言模型擅长的范围。
这个判断有现实基础。代码生成工具已经能完成不少重复性开发任务,例如:
- 根据接口描述生成样板代码;
- 把需求拆成函数和测试;
- 修复简单 bug;
- 迁移 API 调用方式;
- 生成文档和单元测试;
- 解释遗留代码逻辑。
但软件工程并不等于“把代码敲出来”。一个成熟工程师的价值通常体现在这些地方:
| 能力 | 说明 |
|---|---|
| 需求澄清 | 判断业务方真正需要什么,而不是机械实现一句需求 |
| 架构取舍 | 在性能、成本、维护性、迭代速度之间做权衡 |
| 系统调试 | 处理线上故障、分布式链路、并发问题和数据不一致 |
| 质量控制 | 评审代码、设计测试、控制技术债 |
| 协作沟通 | 和产品、设计、运维、安全、数据团队对齐 |
| 责任承担 | 对系统稳定性、数据正确性和用户影响负责 |
AI 可以生成代码,但工程师要判断代码该不该写、写到什么程度、是否符合系统约束、出了问题谁来修。
sequenceDiagram
participant B as 业务需求
participant E as 工程师
participant M as AI 编程助手
participant S as 代码库/系统
participant R as 评审与上线
B->>E: 提出目标和约束
E->>E: 拆解需求与设计方案
E->>M: 生成代码、测试或文档
M-->>E: 返回候选实现
E->>S: 集成到现有系统
E->>E: 检查边界条件和风险
E->>R: 提交评审与上线
R-->>E: 反馈问题
E->>M: 辅助修复
在这个流程里,AI 更像一个高产的执行助手,而不是完整的软件负责人。它改变了工程师的工作重心:少写重复代码,多做设计、验证、集成和风险控制。
“十亿行代码”与“万亿行代码”:效率提升会创造新需求
如果一个国家或行业原本一年需要写十亿行代码,而 AI 能自动生成这些代码,很容易得出一个悲观结论:原来负责写这些代码的人不再需要了。
这个推理少考虑了一个变量:当生产成本下降后,需求可能扩大。
软件开发长期受限于人力成本、开发周期和维护压力。很多行业并不是没有数字化需求,而是过去做不起、排不上、维护不了。医疗、制造、零售、科研、教育、物流都有大量流程可以被软件重新组织,只是传统开发成本太高。
当代码生成、测试生成、文档生成、迁移和调试都变便宜以后,组织可能不会满足于原来的十亿行代码,而是开始想要更多系统、更细颗粒度的自动化、更快的实验和更多内部工具。
flowchart LR
A[AI 降低开发成本] --> B[同样团队能完成更多项目]
B --> C[过去做不起的需求开始排期]
C --> D[软件覆盖更多行业流程]
D --> E[需要更多设计、集成、验证和运维]
E --> F[工程岗位形态变化]
这也是 NVIDIA CEO 黄仁勋反驳“AI 消灭大量工程岗位”时强调的核心逻辑:如果 AI 让工程师更快完成代码层工作,那么社会可能会提出更大的软件需求,而不是停留在原有需求规模上。
当然,需求扩张并不会自动保护每一个岗位。它保护的是能适应新流程的人,而不是只依赖旧任务的人。
入门级岗位承受的压力更大
“AI 不会简单消灭职业”并不等于“所有人都没有风险”。短期最容易受冲击的,往往是入门级岗位。
原因有三个:
-
初级岗位中标准化任务比例高
很多新人工作包括整理资料、写初稿、改格式、补测试、写简单脚本、做基础分析。大语言模型正好擅长这些任务。 -
团队可能减少低复杂度工作外包
过去需要新人或外包团队完成的基础工作,现在可以由资深员工配合 AI 完成,管理者自然会重新计算招聘数量。 -
新人学习路径被压缩
软件工程师、分析师、咨询顾问过去常通过重复性任务积累上下文。AI 把这些任务自动化后,新人少了“低风险练手区”,直接面对复杂问题,成长门槛反而升高。
| 岗位特征 | 受 AI 冲击程度 | 原因 |
|---|---|---|
| 输出格式固定、验证简单 | 高 | 模型容易生成,人工只需抽检 |
| 主要做信息整理和初稿 | 高 | LLM 擅长总结、改写和归纳 |
| 需要复杂责任判断 | 中低 | AI 难以独立承担后果 |
| 需要跨团队协调 | 中低 | 依赖组织上下文和人际协商 |
| 深度绑定业务场景 | 中 | AI 能辅助,但需要人提供语境 |
所以,Dario Amodei 对入门级白领岗位的担忧并非没有根据。风险更集中在“岗位入口”上,而不是所有成熟职业同时消失。
激进预测为什么容易被放大
AI 行业里的极端预测经常获得更多关注,例如:
- AI 很快能写出 90% 的代码;
- AI 会冲击一半入门级白领岗位;
- AI 存在一定概率带来灾难性风险;
- AI 会大幅压缩科研和医学突破周期。
这些判断可能包含真实趋势,但传播时容易被压缩成更吓人的版本。对 AI 公司来说,激进预测还会带来额外效果。
| 预测类型 | 对外传递的信息 | 潜在问题 |
|---|---|---|
| “AI 会写大部分代码” | 产品能力很强,开发方式会变 | 容易把软件工程简化成写代码 |
| “大量岗位会受冲击” | 技术影响巨大,监管和企业都要重视 | 可能吓退正在学习相关技能的人 |
| “AI 有存在性风险” | 安全研究很重要,安全型公司有价值 | 容易把风险治理和商业叙事混在一起 |
| “AI 能极大延长寿命” | 科研自动化空间巨大 | 时间表可能过度乐观 |
更理性的做法是拆开判断:模型能力是否真的达到?企业是否愿意采用?采用后流程如何变化?新需求是否出现?岗位入口是否收缩?这些问题的答案不会完全相同。
判断一个岗位是否容易被 AI 改写
可以用一个简单清单评估岗位风险。不是看“AI 会不会做其中一件事”,而是看“岗位价值是否主要来自 AI 擅长的那部分”。
| 问题 | 如果答案是“是” | 风险含义 |
|---|---|---|
| 工作输出是否高度模板化? | 是 | 更容易被模型生成 |
| 结果是否容易自动验证? | 是 | 人工审核成本低,替代速度更快 |
| 是否缺少明确责任边界? | 是 | 企业更容易把任务交给 AI |
| 是否需要大量组织上下文? | 是 | AI 难以独立完成,更多是辅助 |
| 是否需要和多人协商? | 是 | 替代难度上升 |
| 是否直接影响安全、合规、生命健康? | 是 | 人类责任链条仍然重要 |
| 需求是否会因成本下降而扩大? | 是 | 岗位可能重组,而非直接减少 |
一个岗位越像“模板化输入 → 模板化输出”,越容易被 AI 压缩;越依赖上下文、责任、协调、复杂系统判断,越可能转向人机协作。
对软件工程师意味着什么
软件工程师不应该把核心竞争力押在“比 AI 更会写样板代码”上。更稳的方向是把 AI 当作生产工具,同时强化模型难以独立完成的能力。
| 能力方向 | 具体做法 |
|---|---|
| 系统设计 | 练习拆分模块、定义边界、评估可维护性 |
| 需求判断 | 学会追问目标、约束、优先级和失败后果 |
| 代码审查 | 能发现 AI 生成代码中的隐性 bug、安全问题和边界条件 |
| 调试能力 | 熟悉日志、监控、链路追踪、性能分析 |
| 业务理解 | 知道系统为什么存在,而不只是实现接口 |
| AI 协作 | 会写清晰提示词,会分阶段验证模型输出 |
一个可执行的 AI 编程流程可以是:
1. 人先写清需求、约束和验收标准
2. 让 AI 生成候选方案,而不是直接生成最终代码
3. 人选择方案并补充系统上下文
4. 让 AI 生成局部实现和测试
5. 人审查边界条件、安全问题和性能影响
6. 在真实环境中运行测试和灰度验证
7. 把踩到的坑沉淀为团队规范
这样使用 AI,工程师不会被降级成“复制粘贴模型输出的人”,而是把更多时间放在问题定义和质量控制上。
对学生和新人意味着什么
对正在进入技术行业的人来说,最危险的选择不是学习软件工程,而是只学习低层次、可模板化的操作。
仍然值得学习的内容包括:
- 计算机系统基础:操作系统、网络、数据库、编译原理;
- 工程实践:测试、部署、监控、故障排查;
- 产品和业务理解:为什么要做、给谁用、约束是什么;
- 数学和数据思维:理解模型、指标、实验和不确定性;
- AI 工具链:提示词、代码助手、检索增强生成、智能体工作流。
入门级岗位可能变少,但行业对“能用 AI 做出可靠系统的人”的需求会增加。新人需要更早接触真实问题,而不是长期停留在重复性任务上。
更合理的判断:恐慌和盲目乐观都不够用
AI 会改变工作,这是确定的;它是否会整体消灭某个职业,要看任务占比、责任边界、采用速度和需求扩张。
对软件工程来说,代码生成会压缩低复杂度编码任务,但也会让更多软件需求变得可实现。对放射科来说,影像识别会改变诊断流程,但医生的责任和临床判断仍然存在。对入门级白领岗位来说,压力是真实的,因为很多基础任务已经被模型覆盖。
真正需要避免的是两个极端:
| 极端判断 | 问题 |
|---|---|
| “AI 会抢走所有工作” | 忽略需求扩张、岗位重组和责任链条 |
| “AI 只是普通工具,没什么影响” | 低估入门岗位和标准化任务受到的冲击 |
更有用的判断是:哪些任务会被自动化,哪些岗位会被重组,哪些能力会变得更稀缺。掌握这个框架,才能判断自己该学什么、团队该招什么人、企业该如何重新设计工作流。