TL;DR
- 2026-08-28,吴恩达发布技能地图序列文第二篇:深解"软件工程基础"(浏览量 106 万,转发 1600)。
- 这一项被拆成 5 个能力模块:构建全栈应用、数据管理、设计系统架构、让系统安全可靠、规模化与生产运营。
- 核心判断:Coding Agent 降低了实现门槛,但开发者必须知道"存在哪些 trade-off",才能引导 Agent 做对选择。
- 吴恩达特别点出两个反直觉结论:数据架构可能比代码更难改;“能 Demo 不等于能上 Production”。
- 吴恩达预告:后续文章讨论使用编程智能体与塑形构建。
先说背景:这篇回应的是什么问题?
8 月 14 日,吴恩达发布《AI工程技能地图》,提炼出 4 项核心技能。一周后(8 月 21 日)深解第一篇开更,拆解"构建和部署 AI 应用"。8 月 28 日第二篇紧接着落地,主题是地图里的第二项:“软件工程基础”。
这篇回应的是一个正在行业里发酵的疑问:Coding Agent 都能写代码了,程序员还要不要学软件工程?
吴恩达的回答很直接:要学,而且比过去更重要。他把这一项拆成 5 个能力模块。这 5 个模块,就是这篇深解的全部内容。
软件工程基础,为什么能拆出5个模块?
先看全貌。吴恩达对"软件工程基础"的拆解,覆盖了从写代码到上生产、再到长期维护的整条链路:
| 能力模块 | 一句话本质 |
|---|---|
| 构建全栈应用 | 理解系统各组件如何协同,而不是只会调用 Agent |
| 数据管理 | 数据架构比代码更难改,选错影响长期 |
| 设计系统架构 | 架构没有固定答案,随产品阶段演进 |
| 让系统安全可靠 | Security 正在 shift left,人人都是半个安全工程师 |
| 规模化与生产运营 | 能 Demo 不等于能上 Production |
吴恩达特别说明:编号只是原文顺序,不代表模块之间有固定的因果或依赖关系。下面逐条拆。
能力模块1:构建全栈应用——Coding Agent 把工程师"拉宽"了?
先说变化。agentic coding 让过去只做前端、只做移动端的开发者,有机会去碰更广的全栈工作。Coding Agent 能帮你完成流程中不太熟悉的部分。
但吴恩达强调:这不代表全栈知识不需要了。Agent 可以帮你实现组件,"整套系统如何接起来"仍需要人理解。
成熟的开发者要理解前端和后端的关键组件:UI 组件、缓存(caching)、页面渲染(page rendering)、API 选择与设计、身份认证(authentication)、状态与会话管理、异步处理、数据持久化、测试、安全性、无障碍(accessibility)。
换句话说:实现可以交给 Agent,"知道系统该怎么拼"是人的活。
能力模块2:数据管理——为什么比写代码更值得单独拎出来?
吴恩达把数据管理独立成模块,理由是两条:数据是软件构建的基础;数据架构相对难以修改——即便 Agent 能帮你做迁移,改数据架构依然不轻松。
会管数据,意味着能回答一串问题:系统有哪些访问模式(access patterns)?据此该存什么、存多久?选哪种数据模型?存储用关系表、文档、键值还是图?这些决定会直接影响速度、可扩展性、可用性、可靠性与成本。
再往下,还要理解事务(transactions)与并发(concurrency),保证数据干净、一致、新鲜;必要时落实隐私、治理与合规要求,管理完整的数据生命周期。
对 AI 应用,这个问题更特殊。 吴恩达点了一处因果:AI 系统的输入上下文(context),就来自数据源。如果底层数据架构选错了,AI 系统"不知道自己不知道什么"——它缺了什么关键信息,自己毫无感知。
怎么为 Agent(而不只是传统软件或人类用户)建数据基础设施,会是一个快速演进的新领域。
能力模块3:设计系统架构——为什么没有"标准答案"?
理解了软件与数据的全栈组件后,下一个问题是如何把它们组合起来。吴恩达说,好的系统设计,起点是先理解软件要完成什么:会有多少用户?延迟有多重要?成本有多重要?还有哪些具体约束?
想清楚这些,才能对架构做选择:应用平台、前后端边界、系统怎么拆分、应用状态放在哪里、架构粒度——单体(monolith)还是微服务(microservices);再选技术栈:编程语言、运行时、组件/前端/后端框架、数据技术。有时还需要先做实验评估不同方案。
这一节吴恩达想说的是:正确的架构没有固定答案,它随阶段变。
为了快速验证原型采用的简单架构,未必适合第一个生产系统;应用规模继续扩大后,生产架构可能又要再变。真正的工程能力,是知道什么时候该选什么、什么时候该改,而不是背下一套"最佳架构"了事。这是纯 vibe coding 最容易翻车的地方——Agent 能飞快产出一套"看似能跑"的系统,但如果你不理解延迟、可用性、可靠性、成本之间的取舍,就判断不了 Agent 为什么选这个架构,更不知道它是不是选错了。
能力模块4:让系统安全可靠——为什么 Security 在"左移"?
可靠系统需要完整的测试策略。吴恩达列了一组要决策的问题:单元测试与集成测试如何搭配?用哪些测试框架?覆盖率该到什么程度?
还要为失败做设计:API 遇到限流(rate limit)怎么处理?某个服务挂了,系统能否优雅降级(graceful degradation)?如何把单点故障的影响范围(blast radius)压到最小?
Security 这块,吴恩达给了一个趋势判断:安全正在 shift left——从"软件写完再补安全",提前到软件生命周期更早的阶段。结果就是:越来越多的开发者要承担一部分安全工程师的职责。
AI 工具能帮忙:扫描代码漏洞、检查依赖里的供应链注入(supply chain injection)、排查云配置的攻击面(attack surface)。但吴恩达的提醒是:工具能帮你发现问题,你仍要具备足以理解这些问题的安全知识。
能力模块5:规模化与生产运营——“能Demo"为什么不等于"能上Production”?
AI 编码工具让"做出 demo"变得前所未有的容易。吴恩达把生产运营列为第五个模块,等于划出了 AI 时代工程人才真正的分水岭:从 0 到 1 变得很快,从 1 到 100 仍依赖工程判断。
服务真实用户,要理解完整的软件开发生命周期(SDLC):除了构建与测试,还包括部署环境配置、发布策略、CI/CD 自动化、基础设施服务(IaaS)。
系统上线后是另一组问题:可观测性(observability)、告警、事故处理。流量增长时,要知道怎么扩展服务器、做负载均衡(load balancing),通过分片(sharding)、索引(indexing)、复制(replication)调整数据基础设施,必要时改造架构。
最后是长期演进的功夫:版本控制、代码评审、依赖维护、技术债(technical debt)管理。
看完这篇,下一步是什么?
吴恩达给这篇收了个尾,一句话点题:过时的东西是语法记忆,不是深度理解。
一部分 coding knowledge——比如记忆语法——正在过时。但深入理解软件如何运作的开发者,表现会远远超过只靠 vibe coding 的人。这些理解,会成为你使用 Coding Agent 和塑造构建(shape the build)时的重要上下文。
按序列规划,下一篇深解主题是"使用编程智能体",再往后是"塑形构建"。我会持续跟进翻译与拆解。
FAQ
Q:这篇深解和上一篇是什么关系?
上一篇拆解"构建和部署 AI 应用",拆出 6 项子能力。这篇是地图第二项技能"软件工程基础"的详细展开,拆成 5 个能力模块。两篇同属《AI工程技能地图》序列文。
Q:AI 都会写代码了,为什么还要学软件工程?
这是全文要回答的问题。核心是:Agent 能实现代码,但权衡(trade-off)要靠人判断。不懂软件工程,你甚至意识不到"这里存在需要权衡的问题",也就无法引导 Agent 做对选择。
Q:5 个模块里,哪个最值得先补?
吴恩达特别强调数据管理——数据架构最难改、影响最长期。对正在用 Agent 写代码的团队,先审视数据层往往比多写几行代码更紧迫。
Q:吴恩达后面还会写哪些?
按预告:使用编程智能体、塑形构建。序列文会陆续发布。
系列文补充:
附录:原文速查
原文出处
- 原帖:https://x.com/AndrewYNg/status/2093388974194872781(2026-08-28)
- 原文长文:https://x.com/i/article/2093384274372419585
- 原文标题:AI Engineering Skills Map: Software engineering fundamentals
- 配套总纲:The AI Engineering Skills Map(DeepLearning.AI《The Batch》第 366 期,2026-08-14)
5 个能力模块中英对照
| 中文 | 英文(原文标题) |
|---|---|
| 构建全栈应用 | Building full-stack applications |
| 数据管理 | Managing data |
| 设计系统架构 | Designing system architectures |
| 让系统安全可靠 | Making systems secure and reliable |
| 规模化与生产运营 | Scaling and operating in production |
关键术语中英对照
| 中文 | 英文 |
|---|---|
| 智能体式编程 | agentic coding |
| 编程智能体 | Coding Agent |
| 权衡 / 取舍 | trade-off |
| 凭感觉编程 / 氛围编程 | vibe coding |
| 延迟 / 可用性 / 一致性 / 可靠性 | latency / availability / consistency / reliability |
| 可维护性 / 简洁度 / 成本 | maintainability / simplicity / cost |
| 全栈 | full stack |
| UI 组件 / 缓存 / 页面渲染 | UI components / caching / page rendering |
| API 设计 / 身份认证 | API design / authentication |
| 状态管理 / 会话管理 | state management / session management |
| 异步处理 / 数据持久化 | asynchronous processing / data persistence |
| 无障碍 | accessibility |
| 访问模式 / 数据模型 | access pattern / data model |
| 关系表 / 文档 / 键值 / 图存储 | relational tables / documents / key-value / graphs |
| 事务 / 并发 | transactions / concurrency |
| 数据生命周期 | data lifecycle |
| 单体架构 / 微服务 | monolith / microservices |
| 单元测试 / 集成测试 / 覆盖率 | unit tests / integration tests / test coverage |
| 优雅降级 / 故障影响范围 | graceful degradation / blast radius |
| 左移 | shift left |
| 供应链注入攻击 / 攻击面 | supply chain injection / attack surface |
| 可观测性 / 告警 / 事故 | observability / alerts / incidents |
| 负载均衡 / 分片 / 索引 / 复制 | load balancing / sharding / indexing / replication |
| 技术债务 | technical debt |
| 塑造构建方向 | shape the build |
关键原句对照
开篇定调(原文要点转述,非逐字):
即使你用 Coding Agent 编写全部代码,理解软件工程基础仍然非常重要。只有理解这些基础,你才能引导 Agent 做出自己想要的 trade-off,甚至才能意识到:这里原来存在需要权衡的问题。
Vibe coding 警告(原文要点转述,非逐字):
一个不理解软件工程基础、只靠 vibe coding 的新手,或许可以做出简单应用。但 Coding Agent 往往会在延迟、可用性、一致性、可靠性、可维护性、简洁度与成本之间做出不理想的取舍。问题在于,开发者可能根本不知道这些 trade-off 的存在。
结语(原文要点转述,非逐字):
一部分 coding knowledge,例如记忆 coding syntax,正在变得过时。但是,深入理解软件如何运作的开发者,其表现远远胜过那些不理解软件、只依赖 vibe coding 的人。
提示:X 平台在国内访问不便。需要核对原文细节时,可把原帖链接发给任意 AI 助手协助转述,或参考 DeepLearning.AI《The Batch》官方栏目。
参考来源
[1] Andrew Ng. AI Engineering Skills Map: Software engineering fundamentals. X 帖文 + X 长文. 2026-08-28.(浏览量 106 万,转发 1600)
[2] Andrew Ng. The AI Engineering Skills Map. DeepLearning.AI《The Batch》第 366 期 / X 帖文. 2026-08-14.

1164

被折叠的 条评论
为什么被折叠?



