德雷福斯模型
德雷福斯技能获取模型(Dreyfus Model of Skill Acquisition)
德雷福斯兄弟在 1980 年代提出:人的技能水平分为 5 个阶段,从新手到专家。
每个阶段在行为、决策、理解方式上都有质的差异。

1️⃣ 新手(Novice)
特征:
- 需要严格规则和步骤
- 不理解全局,只能机械执行
- 喜欢 checklist,不能处理例外情况
- 面对变化容易慌乱
软件工程例子:
- 初学 Java、Go、Python,只会照着教程写
- 不知道为何要用接口、泛型、依赖注入,只是“教程这么写”
典型语言:
“能给我一个完整的示例吗?”
“按照步骤做就对了。”
2️⃣ 高级新手(Advanced Beginner)
特征:
- 能在规则基础上做一点变通
- 但仍然没建立深层模型
- 能靠经验处理常见场景
软件工程例子:
- 会 CRUD、会写简单 API
- 会用 Spring Boot, Next.js,但不理解底层原理
- 复制 StackOverflow 代码,能跑就行
典型语言:
“我试过这样写,似乎可以。”
3️⃣ 胜任者(Competent)
特征:
- 能规划和决策,开始理解 trade-offs
- 能独立解决复杂问题,但需花时间分析
- 开始形成 mental model(心智模型)
软件工程例子:
- 能设计一个模块、一个服务的结构
- 会做错误处理、日志、测试
- 知道为什么要这样设计(能“解释”)
典型语言:
“我们可以这样做,但也有另外两种方案。”
4️⃣ 精通者(Proficient)
特征:
- 能整体把握问题(holistic)
- 直觉判断正确但仍会验证
- 经验驱动,但能解释原因
软件工程例子:
- 能 review 别人的架构,并指出潜在问题
- 能预测系统瓶颈、故障模式
- 开始“看到模式”并主动优化
典型语言:
“我感觉这里未来会出现问题,应该提前重构。”
5️⃣ 专家(Expert)
特征:
- 完全直觉式判断,几乎一瞬间就知道问题所在
- 解决方案精准、优雅
- 规则对他们无意义,他们创造规则
软件工程例子:
- 能设计架构蓝图、制定工程规范
- 性能调优如探囊取物
- 看代码就能直觉式发现
bug根因
典型语言:
“这里的延迟不是网络问题,是你用了错误的数据结构。”
📊 五个阶段的对比
| 阶段 | 决策方式 | 核心能力 |
|---|---|---|
| 新手 | 按规则 | 需要指令 |
| 高级新手 | 模式识别(弱) | 能处理常规任务 |
| 胜任者 | 思考 → 分析 → 行动 | 能规划 |
| 精通者 | 直觉 → 分析 | 看到模式 |
| 专家 | 直觉 | 创造新模式 |
💡 德雷福斯模型在工程成长中的启示
- 新手需要 清晰规则(例如代码规范、PR 模板)
- 胜任者开始需要 项目经验 而不是刷题
- 精通者需要 复盘与反思
- 专家依赖 积累 + 宽度 + 深度 + 复盘
如果你是一个新手,刚刚工作不久,那么不要被所谓的工作经验和所谓的资深工程师的说教局限住,你要去思考规则背后的原理,主动发现新问题然后去解决问题,越过高级新手阶段,直接向着胜任者、精通者和专家前进吧。
如果你是一个有多年经验的资深工程师,那么忘了你的工作年限吧,去问自己,我拥有和工作年限相匹配的工作技能吗?我在德雷福斯模型的哪个阶段?我该如何超越当前阶段,成为一个专家?
德雷福斯模型
https://liuyuhe666.github.io/2025/12/06/德雷福斯模型/