21CTO导读:吴恩达说,使用Vide Coding确实是会加快软件开发,但软件工程的相关流程一样也没少。
生成式AI 与Coding Agent 正快速改变软件开发方式,但DeepLearning.AI 创始人、AI 学者吴恩达(Andrew Ng)认为,这并不代表开发者可以跳过软件工程基本功。
Andrew Ng 近日公布AI Engineering Skills Map 中关于「Software Engineering Fundamentals」的内容,指出即使未来程序代码几乎全部交给Coding Agent 撰写,开发者仍然需要理解软件系统如何运作。只有理解系统,才知道该要求AI 做什么,以及有哪些trade-off 必须做。
Andrew Ng 特别警告说,完全不懂软件工程、只靠Vibe Coding 建立应用程序的新手,确实可以很快做出简单产品,但Coding Agent 很可能在延迟、可用性、一致性、可靠性、维护性、简洁度与成本之间做出错误取舍。
更麻烦的是,开发者甚至可能不知道「这些取舍本来就存在」。
Andrew Ng:Coding Agent 让工程师更容易变成全栈
Andrew Ng 将AI 时代仍然重要的软体工程能力分成五个主要方向:建立Full-stack 应用、管理数据、设计系统架构、确保系统安全可靠,以及部署与维运产品级系统。
其中第一个明显变化,就是Coding Agent 正让开发者的角色变得更广。
过去专门负责前端、移动或某个特定技术栈的工程师,如今可以透过Coding Agent 协助自己完成较不熟悉的工作,逐渐转向Full-stack。
但Andrew Ng 强调,这并不表示Full-stack 知识不再需要。
真正成熟的开发者仍需要理解前端与后端的重要元件,包括UI Component、Caching、Page Rendering、API 设计、Authentication、State 与Session Management、非同步处理、数据持久化、Testing、安全性及Accessibility。
AI 可以帮忙实践,但「整套系统如何接起来」仍然需要人类理解。
数据架构可能比写代码更重要
Andrew Ng 特别把数据管理(Data Management)独立列为核心能力。原因是,相较程序代码,数据架构通常更难修改。即使未来AI Agent 可以协助进行数据合并(Data Migration),一开始选错数据模型或储存架构,仍可能对整个产品带来长期影响。
开发者需要知道系统的访问模式(Access Pattern),才能判断哪些数据应该储存、保存多久,以及应该选择:关联式数据表、文档、Key-value、Graph,或其他数据架构。
以上这些决策会直接影响产品的速度、扩展性、可用性、可靠性与成本。
除此之外,工程师仍需要理解Transaction、Concurrency、数据一致性、新鲜度,以及Privacy、Governance 与Compliance。
而在AI 应用程序中,这个问题又更加重要。因为AI 系统本身取得的上下文很可能就来自企业数据来源。如果底层数据架构一开始设计错误,AI 本身甚至可能「不知道自己不知道什么」。
因此,Andrew Ng 认为,如何为AI Agent 而不只是传统软件或人类使用者建立数据基础设施,将成为快速演进的新领域。
Vibe Coding 最大问题:你不知道自己正在做什么取舍
系统架构也是Andrew Ng 认为Coding Agent 无法取代人类判断的领域之一。
例如要建立一个产品,工程师必须先设定:
有多少使用者?
兼容性有多重要?
成本有多重要?
前后端界线应该怎么切?
应用程序状态放在哪?
应该采用单体架构,还是微服务架构?
甚至连使用哪个编程语言、运行时、前端框架、后端框架与数据库技术,都涉及取舍。
更重要的是,正确答案会随着产品阶段改变。
Prototype 阶段适合的架构,不一定适合第一版产品级系统;第一版Production 架构,在使用者快速成长后也可能需要再度重构。因此,真正的工程能力不是背下一套「最佳架构」,而是知道什么时候该选什么,以及什么时候该改。这也是纯Vibe Coding 最容易遇到的问题。
AI Agent 可以非常快速产生一套看似能运作的系统,但如果使用者本身不理解Latency、Availability、Reliability 或Cost 的取舍,就很难判断Agent 为什么选择某种架构,更难知道它是不是选错了。
AI 写Code 越快,安全与稳定性反而越重要
Andrew Ng 同时认为,AI 时代的工程师会越来越需要具备部分安全工程师的能力。可靠系统需要完整测试策略,包括Unit Test、Integration Test、测试框架与Coverage。
工程师也必须知道如何处理失败。例如API 遇到Rate Limit 时怎么办?某个服务挂掉后能否Graceful Degradation?如何降低单一故障造成的Blast Radius?
Security 则不能等到产品写完才补。 Andrew Ng 提到,目前业界「Shift Left」的方向,就是把安全工作提前到开发流程更前面。
AI 工具现在确实可以协助扫描代码漏洞、检查Dependency 是否存在Supply Chain Injection,甚至分析Cloud Configuration 的Attack Surface。
但Andrew Ng 认为:工具可以帮忙找问题,开发者仍然需要具备足以理解问题的Security Knowledge。
能Demo 不等于能做为产品级上线
AI Coding 工具让「做出Demo」变得前所未有地容易。
但Andrew Ng 特别把Scaling and Operating in Production 列为第五项核心能力,也透露了AI 时代工程人才真正的分水岭。
要服务真实使用者,工程师仍必须理解完整软件开发生命周期(Software Development Lifecycle,SDLC)。
除了Build 与Test,还包括Deployment Environment、Release Strategy、CI/CD、自动化部署,以及Infrastructure as a Service(IaaS)。
系统正式上线之后,又会出现另一组问题:Observability、Alert、Incident Management,以及Scaling。
当流量增加时,开发者要知道如何Scale Server、Load Balance,以及通过Sharding、Indexing、Replication 或修改Architecture 调整数据库系统。
Version Control、Code Review、Dependency Maintenance 与Technical Debt Management,也仍然是产品能否长期演进的关键。
换句话说,AI 可以让「0 到1」变得非常快速,但真正困难的「1 到100」仍然高度依赖工程判断。
作者:聆听音乐的鱼
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。