生成式 AI 与 Coding Agent 正快速改变软件开发方式,但 DeepLearning.AI 创始人、AI 学者 Andrew Ng 认为,这并不代表开发者可以跳过软件工程基本功。
Andrew Ng 近日公布 AI Engineering Skills Map 中关于「Software Engineering Fundamentals」的内容,指出即使未来代码几乎全部交给 Coding Agent 编写,开发者仍然需要理解软件系统如何运作。只有理解系统,才知道该要求 AI 做什么,以及有哪些 trade-off 必须处理。
只靠 Vibe Coding,问题不在能不能做出来
Andrew Ng 特别提醒,完全不懂软件工程、只靠 Vibe Coding 建立应用的新手,确实可以很快做出简单产品,但 Coding Agent 很可能会在延迟、可用性、一致性、可靠性、维护性、简洁度与成本之间做出错误取舍。
更麻烦的是,开发者甚至可能不知道这些取舍本来就存在。
Coding Agent 让工程师更容易转向全栈
Andrew Ng 将 AI 时代仍然重要的软件工程能力分成五个主要方向:建立 Full-stack 应用、管理数据、设计系统架构、确保系统安全可靠,以及部署与运维 Production 系统。
在他看来,第一个明显变化,是 Coding Agent 正在扩大开发者的工作边界。过去专门负责前端、Mobile 或某个特定技术栈的工程师,现在可以借助 Coding Agent 完成自己原本不熟悉的工作,逐步转向 Full-stack。
但这不等于 Full-stack 知识不再重要。Andrew Ng 认为,成熟开发者仍要理解前端与后端的关键组件,包括 UI Component、Caching、Page Rendering、API 设计、Authentication、State 与 Session Management、异步处理、数据持久化、Testing、安全性以及 Accessibility。AI 可以协助实现,整套系统如何拼接起来,仍然要靠人来判断。
数据架构的重要性,可能高于写代码
Andrew Ng 还把 Data Management 单独列为核心能力。他的理由是,相比代码,数据架构通常更难修改。即使未来 AI Agent 可以协助进行数据迁移,一开始选错数据模型或存储架构,仍可能对整个产品带来长期影响。
开发者需要理解系统的 Access Pattern,才能判断哪些数据应该存储、保留多久,以及应该选择关系型数据表、Document、Key-value、Graph,还是其他数据架构。这些选择会直接影响产品的速度、扩展性、可用性、可靠性与成本。
除了存储模型,工程师还需要理解 Transaction、Concurrency、数据一致性、数据新鲜度,以及 Privacy、Governance 与 Compliance。在 AI Application 中,这部分更关键,因为 AI 系统获取的 Context 很可能来自企业数据源。如果底层 Data Architecture 一开始就设计错误,AI 本身甚至可能「不知道自己不知道什么」。
Andrew Ng 因此认为,如何为 AI Agent,而不只是传统软件或人类用户,建立数据基础设施,将成为一个快速演进的新领域。
系统架构选择,Coding Agent 代替不了判断
系统架构同样是 Andrew Ng 认为 Coding Agent 无法取代人类判断的领域之一。工程师在构建产品前,必须先回答一系列问题:有多少用户,Latency 有多重要,Cost 有多重要,前后端边界应如何划分,Application State 放在哪里,应该采用 Monolith 还是 Microservices。
甚至连使用哪种 Programming Language、Runtime、Frontend Framework、Backend Framework 与数据技术,也都涉及取舍。
Andrew Ng 指出,正确答案还会随着产品阶段改变。Prototype 阶段适合的架构,不一定适合第一版 Production 系统;第一版 Production 架构,在用户快速增长后也可能需要再次重构。真正的工程能力,不是背下一套「最佳架构」,而是知道什么阶段该选什么,以及什么时间该调整。
这也是纯 Vibe Coding 最容易碰到的问题。AI Agent 可以很快生成一套看似可运行的系统,但如果使用者本身不理解 Latency、Availability、Reliability 或 Cost 之间的取舍,就很难判断 Agent 为什么这样设计,也更难知道它是否选错。
AI 写代码越快,安全与可靠性越不能后补
Andrew Ng 同时认为,AI 时代的工程师会越来越需要具备部分 Security Engineer 的能力。要构建可靠系统,需要完整的 Testing Strategy,包括 Unit Test、Integration Test、测试框架与 Coverage。
工程师也必须知道如何处理失败场景。比如 API 遇到 Rate Limit 时怎么办,某个服务挂掉后能否做到 Graceful Degradation,如何降低单点故障带来的 Blast Radius。
在安全方面,Andrew Ng 提到,业界目前强调的「Shift Left」,就是把安全工作前移到开发流程更早阶段。AI 工具现在确实可以协助扫描代码漏洞、检查 Dependency 是否存在 Supply Chain Injection,甚至分析 Cloud Configuration 的 Attack Surface。
不过他认为,工具可以帮忙发现问题,开发者仍然需要足够的 Security Knowledge,才能理解问题本身。
能做出 Demo,不等于能跑在生产环境
Andrew Ng 还把 Scaling and Operating in Production 列为第五项核心能力,这也显示出 AI 时代工程人才真正的分水岭。
AI Coding 工具让「做出 Demo」变得前所未有地容易,但要服务真实用户,工程师仍然必须理解完整的 Software Development Lifecycle(SDLC)。这不只包括 Build 与 Test,还包括 Deployment Environment、Release Strategy、CI/CD、自动化部署,以及 Infrastructure as a Service(IaaS)。
系统正式上线后,新的问题才会出现,包括 Observability、Alert、Incident Management 与 Scaling。当流量增加时,开发者需要知道如何扩容服务器、做 Load Balance,以及通过 Sharding、Indexing、Replication 或调整 Architecture 来处理数据系统。
Version Control、Code Review、Dependency Maintenance 与 Technical Debt Management,也仍然是产品能否长期演进的关键。
换句话说,AI 可以让「0 到 1」变得非常快,但真正困难的「1 到 100」,仍然高度依赖工程判断。

