Coursera联合创始人、深度学习领域知名专家Andrew Ng表示,即便进入Agentic Coding时代,软件工程基本功依然是开发者不可替代的核心能力。
Andrew Ng近日在社交平台X(原推特Twitter)发文称,即使代码可以由智能编码代理生成,开发者仍必须理解软件运行的基本原理。只有具备这些基础,才能明确系统该如何实现、应优先满足哪些目标,以及需要放弃哪些取舍。
他指出,构建AI应用的关键并不只在模型本身。AI通常运行在更大的应用系统之中,开发者仍需负责搭建、完善并持续优化整套应用。
在他看来,即便缺乏扎实基础、只依赖“Vibe Coding”的新手,也可能快速做出简单应用,但智能编码代理在延迟、可用性、一致性、可靠性、可维护性、系统简洁度和成本等问题上,往往容易作出并不合适的选择。根本原因在于,开发者如果不理解这些取舍关系,就无法为代理提供正确方向。
基于“AI工程技能”研究,Andrew Ng将开发者在这一阶段仍需掌握的软件工程能力概括为五个方面。
第一,全栈开发能力。
Andrew Ng表示,受益于Agentic Coding,过去只专注前端或移动端等单一领域的开发者,如今也有机会承担全栈角色。但这并不意味着可以跳过对整套技术栈的理解。开发者仍需掌握UI组件、缓存、页面渲染、API设计、身份认证、状态与会话管理、异步处理、数据持久化、测试、安全以及无障碍等基础能力。
第二,数据管理能力。
Andrew Ng认为,数据是软件系统的基础。即便智能代理能够协助完成数据迁移,一旦数据结构确定,后续往往也很难轻易调整。
他进一步指出,理解数据访问模式,才能决定哪些数据需要存储、保存多久,以及应采用何种存储方式。关系型数据库、文档型数据库、键值数据库和图数据库等不同方案的选择,将直接影响系统速度、可扩展性、可用性、可靠性和成本。
在AI系统中,模型需要从数据源获取信息并据此作出判断。如果数据架构设计不当,系统甚至可能无法识别自己缺失了哪些关键信息。这类问题通常仍需要真正理解业务上下文的人亲自介入,才能完成修正。
第三,系统架构设计能力。
Andrew Ng表示,只有先明确软件目标,例如用户规模、延迟优先级和成本约束,才能进一步决定平台选型、前后端边界、系统拆分方式,以及应采用单体架构还是微服务架构。
他强调,合适的架构会随着项目阶段变化而调整。适用于原型开发的架构,未必适合首个生产系统;当服务规模持续扩大后,系统架构也需要随之演进。
第四,安全与稳定性保障能力。
Andrew Ng表示,要验证系统是否按预期运行,开发者需要制定清晰的测试策略,包括如何配置单元测试与集成测试的比例、使用哪些工具,以及如何把握相关覆盖范围等。同时,还需要针对API限流等异常场景做好设计,使服务在发生故障时能够逐步降级,并将影响控制在最小范围内。
他还提到,随着“Shift Left”理念推动安全能力前移,越来越多开发者也需要承担部分安全工程职责。
第五,生产环境下的扩展与运维能力。
Andrew Ng表示,这项能力的核心,是能够覆盖软件开发生命周期的完整流程,包括部署环境配置、发布策略,以及CI/CD自动化等环节。
进入生产环境后,团队还需要部署可观测性工具、配置告警并管理故障;同时根据流量增长扩展服务器、进行负载均衡,并通过分片、索引和复制等方式调整数据基础设施。
Andrew Ng最后表示,智能编码代理已经改变了软件开发方式,这种影响不仅局限于AI软件本身。单纯记忆编程语法的价值正在下降,但真正理解软件运行机制的开发者,将明显领先于只依赖“Vibe Coding”却缺乏底层理解的人。
他认为,对软件基本原理的理解,也决定了开发者能否判断软件能做什么、不能做什么。而这种判断力,正是在使用智能编码代理提升产出的过程中不可或缺的基础能力。