夜雨聆风学习资料网

ARTICLE · 1028059

AI 工程技能地图:软件工程基本功(译自 DeepLearning.AI / Andrew Ng)

AI 工程技能地图:软件工程基本功(译自 DeepLearning.AI / Andrew Ng)

AI 工程技能地图:软件工程基本功

原文:AI Engineering Skills Map: Software engineering fundamentals 作者:Andrew Ng(DeepLearning.AI、AI Fund 与 AI Aspire),2026 年 8 月 29 日 原文链接:https://www.linkedin.com/in/andrewyng/[1]

引言

智能体编程(agentic coding)时代,软件工程基本功发生了怎样的变化?即便你把所有代码都交给编程智能体来写,理解软件工程的基本功依然重要——只有这样,你才能引导智能体做出你想要的取舍,甚至首先知道「存在哪些取舍」。此外,当你构建 AI 应用时,AI 核心往往承载在一个更大的软件应用之中,你会希望参与它的构建或塑造。

一个不懂软件工程基本功的新手靠 vibe coding 也能做出简单应用,但这常常导致编程智能体在延迟、可用性、一致性、可靠性、可维护性、简洁性和成本等方面做出糟糕的取舍。问题在于:开发者根本不知道这些取舍的存在,自然也无法引导智能体为自己的应用上下文做出正确决策。

本文介绍我们在 AI 工程技能(AI Engineering Skills)研究中总结出的、软件工程领域最重要的知识。它要求你擅长:

  • 构建全栈应用
  • 管理数据
  • 设计系统架构
  • 让系统安全可靠
  • 规模化与生产环境运维

一、构建全栈应用

智能体编程让许多过去角色更专精的开发者(如前端开发、移动端开发)能够承担更宽的全栈角色。编程智能体可以帮你补齐不太熟悉的开发环节。但理解全栈究竟如何运转依然重要。熟练的开发者理解前后端系统的关键组件与概念,包括:UI 组件、缓存、页面渲染、API 的选择与设计、身份认证、状态与会话管理、异步处理、数据持久化、测试、安全与无障碍(accessibility)。

二、管理数据

数据值得特别关注:它是软件赖以构建的地基,而且相对难以更改(即便智能体能帮忙做迁移)。懂数据管理,你才能想清楚访问模式(access patterns),并据此决定存什么、存多久;才能选对数据模型,选择合适的存储类型(关系表、文档、键值、图)与基础设施——而这些选择直接影响速度、可扩展性、可用性、可靠性与成本。你要理解事务、并发,以及如何确保数据干净、一致、新鲜;在需要时,确保隐私、治理与合规;你知道如何管理数据的整个生命周期。

随着应用演进,你也要让数据架构随之演进。数据管理的决策需要大量人类提供的上下文。你的 AI 系统会从数据源获取自己的输入上下文——如果数据架构选错了,AI 并不知道自己不知道什么(the AI doesn't know what it doesn't know)。正因如此,需要具备相关上下文、又精通 AI 工程的人——就是你!——出手把它纠正过来。如何为智能体(而不只是传统软件或人类)构建数据基础设施,也是一个快速演进的方向,你的最佳实践应随领域发展持续调整。

三、设计系统架构

当你理解了软件与数据全栈的主要组件,就更有条件决定如何把它们组装起来。好的系统设计要求理解软件的用途(多少用户?延迟有多重要?成本有多重要?等等),从而在应用平台、前后端边界、系统拆分、应用状态存放位置、架构粒度(单体 vs 微服务)等方面做出选择。你还要选择技术栈(编程语言、运行时、组件/前端/后端框架、数据技术)——有时需要先跑实验评估各选项再定夺。

更进一步,正确的架构是移动的靶子,取决于项目所处阶段:快速原型期的简单架构,未必适合第一个生产系统;而随着应用规模扩大,架构还会再变。做出这些决策需要对软件组件和应用上下文都有深入的技术理解,才能设计并持续演进架构,做出更好的取舍。

四、让系统安全可靠

要构建可靠的系统,你要知道如何制定测试策略来验证系统正确性:单元测试与集成测试如何配比、用什么框架、覆盖率要到什么程度。你还要知道如何围绕可能的故障做设计——如何处理失败(如 API 触发限流)、如何内置优雅降级(graceful degradation)、如何把故障的爆炸半径(blast radius)降到最低。

此外,与其先写软件再补安全,「左移」(shift left)运动正把安全工作推向生命周期的更早期(在传统项目时间轴上向左移)。正如所有开发者都在走向全栈,许多开发者如今也部分承担着安全工程师的角色。你现在可以用 AI 工具扫描代码漏洞、检查依赖的供应链投毒、审查云配置的攻击面——但做好这些,仍然需要一定的安全知识。

五、规模化与生产环境运维

要服务真实用户,你必须知道如何把软件部署到生产环境。掌握软件开发生命周期(SDLC)会让你受益:除了构建与测试,还包括配置部署环境、制定发布策略、落地部署自动化(CI/CD)、理解基础设施即服务(IaaS)。

生产环境运维要求你搭好可观测性工具、设置告警、管理事故。最后,要让应用规模化,你要理解真实负载,知道如何扩容服务器、做负载均衡,以及调整数据基础设施(分片、索引、复制)或修改架构,让系统适应规模增长。此外,理解版本控制、代码评审、依赖维护、技术债管理等编码最佳实践,能帮助你的系统长期持续演进。

结语

编程智能体已经改变了我们构建软件的方式——包括那些完全不含 AI 组件的软件。编码知识的某些部分(如背诵语法)正在过时。但深刻理解软件如何运作的开发者,其表现远远超过只会 vibe coding 而不懂原理的人。

理解软件工程基本功(在 AI 之外),还能帮你判断软件能做什么、不能做什么。这些是你使用编程智能体、塑造构建过程时的重要上下文。我会在后续文章中继续讨论。


译自 DeepLearning.AI / Andrew Ng,译文首发于本公众号。

更多机器人 / AI 工程 / 智能体实战内容,欢迎关注本公众号。

引用链接

[1]https://www.linkedin.com/in/andrewyng/

相关学习资料

返回首页浏览学习资料