原文:Andrew Ng(吴恩达),2026 年 8 月 28 日发布于 X 标题:AI Engineering Skills Map: Software engineering fundamentals 链接:x.com/AndrewYNg/status/2093388974194872781 以下为全文翻译,配图为原文技能地图。
智能体编码(agentic coding)兴起之后,软件工程基本功发生了什么变化?即使代码全部交给编码智能体来写,理解这些基本功依然很重要——因为你要靠它来引导智能体做出你想要的取舍,甚至要先知道有哪些取舍可供选择。此外,构建 AI 应用时,AI 内核往往要依托一个更大的软件应用才能落地,而这个应用本身也需要你来参与构建和塑造。
一个不懂软件基本功的新手靠「氛围编程」(vibe coding)也能做出简单应用,但编码智能体常常因此做出糟糕的取舍——在延迟、可用性、一致性、可靠性、可维护性、简洁性或成本上顾此失彼。问题在于:开发者根本不知道这些取舍的存在,自然也就无从引导智能体为自己的应用场景做出正确决策。
本文基于我们对「AI 工程技能」的研究,总结出软件工程中最需要掌握的五项能力:
- 构建全栈应用
- 数据管理
- 设计系统架构
- 让系统安全可靠
- 生产环境的扩容与运维

在这张技能地图中,「软件工程基本功」与「构建和部署 AI 应用」「使用编码智能体」「塑造构建过程」并列,同属 AI 工程的四大支柱。以下逐一展开。
一、构建全栈应用 链接到标题
智能体编码让许多原本职责更专一的开发者(比如前端工程师、移动端工程师)得以承担更宽的全栈角色。编码智能体可以帮你搞定开发流程中你不太熟悉的环节。
但是,理解整个技术栈究竟如何运转,依然很重要。熟练的开发者理解前后端系统的关键组件与概念,包括 UI 组件、缓存、页面渲染、API 的选型与设计、身份认证、状态与会话管理、异步处理、数据持久化、测试、安全和无障碍访问。
二、数据管理 链接到标题
数据值得特别关注:它是软件赖以构建的地基,而地基一旦打下就相对难以更改——就算智能体能帮忙做数据迁移,也一样。
懂数据管理的人,能先想清楚访问模式,再据此决定存什么、存多久;能识别出合适的数据模型,选出恰当的存储类型(关系表、文档、键值还是图)与基础设施,而这些选择又直接影响速度、可扩展性、可用性、可靠性和成本。你还得理解事务与并发,知道如何让数据保持干净、一致、新鲜;必要时能落实隐私、治理与合规,并且懂得管理数据的完整生命周期。
随着应用演进,你还要能让数据架构跟着一起演进。如何管理数据,需要人来提供大量上下文:AI 系统的输入上下文来自你的数据源,如果数据架构选得糟糕,AI 连「自己不知道什么」都无从知晓。这正是为什么需要一位既掌握相关背景、又精通 AI 工程的人——也就是你——出手纠正。此外,如何为智能体(而不仅仅为传统软件或人类)构建数据基础设施,本身也是个快速演进的领域,最佳实践需要随行业发展持续调整。
三、设计系统架构 链接到标题
当你理解了软件与数据全栈的主要组件,才能更好地决定如何把它们拼到一起。
好的系统设计,先要理解软件要达成什么目标——有多少用户?延迟多重要?成本多重要?——然后才能就以下问题做出选择:应用平台、前后端边界、系统拆分方式、应用状态的存放位置、架构粒度(单体还是微服务)。你还要选定技术栈(编程语言、运行时、组件/前端/后端框架、数据技术),有时需要先跑实验评估各个选项,再拍板。
更进一步说,「正确的架构」是个移动靶,取决于项目所处阶段。为快速原型选的简单架构,未必适合第一个生产系统;而随着应用规模扩大,后者可能又要变。做这类决策,需要对软件组件和应用场景都有深入的技术理解,才能设计——并持续演进——架构,做出更好的取舍。
四、让系统安全可靠 链接到标题
要构建可靠的系统,你得懂得制定测试策略来验证系统正确性:单元测试和集成测试怎么配比、用什么框架、覆盖率达到多少。
你还得懂得围绕「可能出故障」来设计——如何处理故障(比如 API 触发限流)、如何内建优雅降级、如何把故障的影响范围(爆炸半径)压到最小。
此外,与其先写完软件再回头补安全,「左移」(shift left)运动正在把安全工作提前到生命周期的更早阶段(在传统项目时间线上即「向左」移动)。正如所有开发者都在走向全栈化,如今许多开发者也兼职做起了安全工程师。你可以用 AI 工具扫描代码漏洞、检查依赖是否被植入供应链攻击、审查云配置的攻击面——但要把这些工具用好,仍然需要一定的安全知识。
五、生产环境的扩容与运维 链接到标题
要服务真实用户,你必须知道如何把软件部署到生产环境。掌握软件开发生命周期(SDLC)会让你受益匪浅:除了构建与测试,它还包括配置部署环境、制定发布策略、落地部署自动化(CI/CD),以及理解基础设施即服务(IaaS)。
在生产环境中运行,需要搭建可观测性工具、设置告警、处置线上事故。最后,要让应用扛住规模,你得了解真实负载,懂得扩容服务器、做负载均衡、调整数据基础设施(分片、索引、副本),或者干脆调整架构,让系统具备随规模伸缩的能力。此外,理解版本控制、代码评审、依赖维护、技术债管理等编码最佳实践,能帮助你的系统长期持续演进。
结语:语法会过时,内功不会 链接到标题
编码智能体已经改变了我们构建软件的方式——包括那些不含任何 AI 组件的软件。一部分编码知识(比如背语法)正在过时,但真正深刻理解软件运作原理的开发者,远远胜过不懂原理、只会氛围编程的人。
(在 AI 之外)理解软件基本功,还能帮你看清软件能做什么、不能做什么。这些认知,构成了你使用编码智能体、塑造构建过程的重要上下文。我会在后续文章中继续讨论这些话题。
译者注:这篇和我之前写过的《提示词工程 vs 上下文工程 vs 驾驭工程》正好互补——那篇讲「怎么给智能体搭环境」,这篇讲「你自己得先懂什么」。两篇的结论指向同一处:智能体放大的是你已有的判断力,地基不牢,放大出来的只有混乱。