【译】软件工程未来两年展望-来自谷歌AI总监
最近读到一篇关于 AI 编程的好文章,作者目前是 Google Cloud AI 的总监。文章尝试回答了几个经常被讨论的问题:
1.
随着 AI 的成熟,初级开发者何去何从
2.
当人不手写代码了,技能退化了怎么办
3.
未来开发者将扮演什么样的角色
4.
是应该成为专家还是通才
5.
大学无法跟上行业发展,如何培养工程师
并针对以上问题分别对初级工程师和资深工程师给出建议,非常值得一看。
原文地址:https://addyosmani.com/blog/next-two-years/
软件行业正处在一个奇特的转折点。AI 编程已从强化版自动补全,演变为能够自主执行开发任务的智能体。曾推动科技行业招聘热潮的经济繁荣,如今已被效率优先的指令取代:企业现在往往更看重盈利能力而非增长,青睐经验丰富的员工而非应届毕业生,并倾向于用更精干的团队配备更强大的工具。
与此同时,新一代开发者正以不同的考量步入职场:他们务实看待职业稳定性,对奋斗文化持怀疑态度,且从入行第一天起就与 AI 助手共同成长。
未来走向充满不确定性。以下是五个可能塑造 2026 年前软件工程领域的关键问题,每个问题都对应两种截然不同的发展情景。这些并非真正的预测,而是帮助我们做好准备的观察视角。目标在于基于当前数据,结合本社区特有的审慎态度,为应对未来变局绘制清晰的路线图。
1. 初级开发者之问
核心结论:随着 AI 自动化入门级任务,初级开发者招聘可能崩溃;但随着软件渗透至各行各业,也可能出现反弹。这两种未来需要不同的生存策略。
学习编程→获得初级职位→成长为资深开发者”的传统路径正在动摇。哈佛大学一项针对 6200 万劳动者的研究发现,当企业采用生成式 AI 后,六个季度内初级开发者就业率下降约 9-10%,而资深开发者就业率几乎未受影响。过去三年大型科技企业对应届毕业生的招聘量减少了 50%。正如某工程师讽刺道:”既然 AI 编程代理成本更低,何必花 9 万美元雇佣初级开发者?
这不仅是 AI 的影响。早在 AI 工具普及前的 2022 年左右,利率上升和后疫情时代调整等宏观因素已产生冲击。但 AI 加速了这一趋势。如今,一位获得 AI 辅助的资深工程师就能完成以往需要小型团队的工作量。企业正悄然减少初级岗位招聘,这比直接裁员更为隐蔽。
另一种可能的情况是:人工智能不仅为科技行业,还为各行各业释放了对开发者的巨大需求。医疗、农业、制造业和金融等领域都开始嵌入软件和自动化。人工智能非但没有取代开发者,反而成为一股倍增力量,将开发工作扩展到从未雇佣程序员的领域。我们将看到更多入门级岗位,只是类型不同:出现”AI 原生”开发者,他们能快速为特定领域构建自动化和集成方案。
美国劳工统计局仍预测,从 2024 年到 2034 年,软件工作岗位将增长约 15%。如果企业利用人工智能来扩大产出,而非严格削减人员编制,它们将需要人力来抓住人工智能创造的机遇。
悲观情景的长期风险常被忽视:今天的初级开发者是未来的高级工程师和技术领导者。完全切断人才输送管道,将在 5 到 10 年内造成领导层真空。行业资深人士称之为”缓慢衰退”:一个停止培养接班人的生态系统。
应对之策:
初级开发者:让自己精通 AI 并具备多面手能力。证明一个初级开发者加上 AI 能匹敌一个小团队的产出。利用 AI 编码助手(Cursor/Antigravity/Claude Code/Gemini CLI)构建更大型的功能,但即使不是大部分,也要理解并解释每一行代码。专注于 AI 难以轻易替代的技能:沟通、问题分解、领域知识。将相邻角色(质量保证、开发者关系、数据分析)视为切入点。建立作品集,特别是集成 AI API 的项目。考虑学徒制、实习、合同工作或开源项目。不要成为“又一个需要培训的新毕业生”;要成为一个能快速学习、立即有用的工程师。
资深开发者:初级开发者减少意味着更多基础工作会落到你肩上。对于常规任务要依赖自动化,但不要事事亲力亲为。建立 CI/CD 流程、代码检查工具和 AI 辅助测试来发现基础问题。通过开源项目非正式地指导他人,或跨部门辅导同事。要向管理层坦诚说明全资深团队的潜在风险。若初级岗位需求回升,要做好高效指导新人的准备,并善用 AI 进行任务委派。你的价值在于提升整个团队的产出效能,而不仅是个人代码贡献。
2. 技能问题
核心结论:随着 AI 编写大部分代码,核心编程技能可能退化;也可能因人类开发者专注于监督工作而变得比以往更为关键。未来几年将决定我们是否用理解力换取速度。
目前 84%的开发者会定期使用 AI 辅助工具。面对程序错误或新功能需求时,许多人的第一反应不再是从头编写代码,而是构思提示词并拼接 AI 生成的代码片段。初级程序员正在跳过”困难模式”:他们可能永远不会从头构建二叉搜索树,也不会独立调试内存泄漏问题。
技能组合正从实现算法转向懂得如何向人工智能提出正确问题并验证其输出。如今职业阶梯的第一级要求的是提示和验证人工智能,而非展示原始编码能力。一些资深工程师担心这会导致培养出一代无法独立编写优质代码的程序员,形成某种技能退化现象。人工智能生成的代码会引入经验不足开发者可能忽略的微妙缺陷和安全漏洞。
另一种相反的情景是:当人工智能处理常规的 80%工作时,人类专注于最困难的 20%。架构设计、复杂集成、创意构思、边界情况——这些是机器无法独立解决的难题。人工智能的普及非但没有让深度知识过时,反而使人类专业知识变得比以往任何时候都更重要。这就是”高杠杆工程师”,他们将人工智能作为力量倍增器,但必须深刻理解系统才能有效运用它。
如果人人都能使用人工智能编程助手,那么优秀开发者的区别就在于知道人工智能何时出错或表现欠佳。正如一位资深工程师所言:”最出色的软件工程师不会是最快的编码者,而是那些知道何时不该信任人工智能的人。”
编程方式的转变:减少模板代码的编写,更多时间用于审查 AI 输出的逻辑错误、安全漏洞以及与需求不匹配之处。关键技能转向软件架构、系统设计、性能调优和安全分析。AI 能快速生成网络应用,但专家工程师要确保 AI 遵循了安全最佳实践,且未引入竞态条件。
2025 年的开发者讨论出现分歧。一些人承认自己几乎不再”手动”编写代码,并认为编程面试应当与时俱进。另一些人则认为跳过基础知识会导致 AI 输出出错时引发更多紧急问题。行业开始期望工程师兼具两种能力:AI 的高效速度和保障质量的基础智慧。
应对之道:
初级开发者:将 AI 作为学习工具,而非依赖拐杖。当 AI 编程助手(Cursor/Antigravity/Claude Code/Gemini CLI)建议代码时,请审视其工作原理并找出潜在缺陷。偶尔关闭 AI 辅助,从头编写关键算法。优先掌握计算机科学基础:数据结构、算法、复杂度分析、内存管理。将项目实现两次,一次借助 AI,一次独立完成,并对比差异。学习提示工程与工具精通。培养严谨的测试能力:编写单元测试,独立阅读堆栈跟踪而非立刻求助 AI,熟练使用调试器。深化 AI 无法替代的互补技能:系统设计、用户体验直觉、并发逻辑推理。既要展现运用 AI 高效产出方案的能力,也要证明在 AI 失效时能独立解决棘手问题。
资深开发者:将自己定位为质量和复杂性的守护者。精进你的核心专长:架构、安全、扩展、领域知识。练习用 AI 组件建模系统,并思考故障模式。及时了解 AI 生成代码中的漏洞。承担导师和评审员的角色:明确 AI 使用在哪些情况下是可接受的,以及在哪些情况下必须进行人工审查(支付或安全代码)。专注于创造性和战略性工作;让初级开发者与 AI 组合处理常规的 API 连接,而你决定构建哪些 API。投资于软技能和跨领域知识。及时了解新工具和最佳实践。加倍投入那些使人类开发者不可或缺的特质:良好的判断力、系统级思维和指导能力。
3. 角色问题
核心结论:开发者的角色可能会缩小为有限的审计(监督 AI 生成的代码),或者扩展为设计和治理 AI 驱动系统的关键协调者。无论哪种方式,增加价值都不仅仅意味着编码。
这里的极端情况十分鲜明。一种设想是,开发者的创造性职责被削弱。他们不再主要构建软件,而是大部分时间用于审核和照看人工智能的输出。人工智能系统(或使用无代码平台的”公民开发者”)负责生产;人类开发者则审查自动生成的代码,检查错误、偏见或安全问题,并批准部署。创造者变成了检查者。编码创作的乐趣被风险管理的焦虑所取代。
有报告称,工程师们花费更多时间评估人工智能生成的拉取请求和管理自动化流水线,而用于从头开始编写代码的时间则减少了。编程感觉不再像创造性地解决问题,而更像是合规性检查。正如一位工程师所感叹的:”我不想最终成为一个代码清洁工,专门清理人工智能扔过来的东西。”
另一种未来则要有趣得多:开发者演变为高级协调者,结合了技术、战略和道德责任。人工智能”工作者”意味着人类开发者承担起架构师或总承包商的角色,设计整体系统,决定哪些任务分配给哪个人工智能或软件组件,从众多动态部分中编织出解决方案。
一家低代码平台的 CEO 阐述了这一愿景:在”智能体驱动”的开发环境中,工程师将成为”作曲家”,指挥着由 AI 智能体和软件服务组成的交响乐团。他们无需亲自谱写每个音符,而是定义旋律:架构、接口以及智能体间的交互方式。这一角色具有跨学科性和创造性:既是软件工程师,又是系统架构师,还是产品战略家。
乐观的看法是:随着人工智能处理重复性工作,开发者的角色必然会转向更高价值的活动。工作可能会变得更有趣。总得有人决定人工智能应该构建什么,验证产品是否合理,并持续改进它。
未来的走向可能取决于组织如何选择整合人工智能。将人工智能视为劳动力替代的公司可能会缩减开发团队,并要求留下的工程师维持自动化系统的运行。而将人工智能视为团队能力放大器的公司可能会保持人员规模不变,但让每位工程师承担更具雄心的项目。
应对之策:
初级开发者:寻求超越单纯编码的机会。主动承担测试用例编写、CI 流水线搭建或应用监控任务:这些技能与审计/维护角色相契合。通过个人项目保持创造性编码的活力,以免失去构建的乐趣。培养系统思维:学习组件如何通信、优秀 API 的设计要素。阅读工程博客和系统设计案例研究。熟悉超越代码生成的 AI 与自动化工具:编排框架、AI API。提升书面与口头沟通能力。撰写文档时设想是在向他人解释。向资深同事提问时,不仅问“我的代码能运行吗?”,更要问“我是否考虑了正确的问题?”准备好成为验证者、设计者和沟通者,而不仅仅是编码者。
资深开发者:深化领导力和架构职责。塑造 AI 和初级团队成员遵循的标准与框架。制定代码质量检查清单和 AI 伦理使用政策。持续关注 AI 生成软件的合规性与安全议题。专注于系统设计与集成专长;主动梳理跨服务数据流并识别故障点。熟练掌握编排平台(Kubernetes、Airflow、无服务器框架、智能体编排工具)。强化技术导师角色:增加代码审查、设计讨论和技术指导。提升快速评估他人(或 AI)代码并提供高层级反馈的能力。培养产品与商业思维:理解功能构建动因及客户关注点。跟随产品经理工作或参与客户反馈会议。通过原型开发、黑客松或新兴技术研究守护创新热情。实现从编码者到技术指挥者的蜕变。
4. 专家与通才之辩
核心结论:过度专精的专家面临领域被自动化或淘汰的风险。在快速变化、AI 渗透的行业环境中,T 型工程师更受青睐——他们具备广泛适应能力,同时拥有一两项深度专业技能。
考虑到模型、工具和框架的兴衰更迭如此迅速,将职业生涯押注在单一技术栈上风险极高。当新兴 AI 工具能以最少人力介入处理某项技术时,精通传统框架的专家可能突然发现市场需求锐减。那些仅专注于”单一技术栈、框架或产品领域”的开发者,或许某天醒来会发现该领域正在衰落或变得冗余。
不妨回顾 COBOL 开发者、Flash 开发者或移动游戏引擎专家——他们在行业转型时未能及时调整方向。如今的不同之处在于变革的速度。AI 自动化能使特定编程任务变得轻而易举,从而削弱那些围绕这些任务设立的岗位。仅掌握单一技能(如优化 SQL 查询、将 Photoshop 设计稿切分为 HTML)的专家可能会发现,AI 能处理其 90%的工作量。
招聘经理追逐最新的热门领域。几年前,人人都想要云基础设施专家;如今,AI/ML 工程师的需求激增。那些曾专注于昨日技术的人,随着该领域光环褪去,感到停滞不前。
另一种结果是新型的专业化:”全能型专家”或 T 型开发者。在一两个领域有深厚专长(垂直笔画),同时对许多其他领域有广泛了解(水平笔画)。这些工程师成为跨学科团队中的”粘合剂”;他们与其他领域的专家沟通,并在需要时填补空缺。
公司不再想要那些要么太浅薄、要么过于狭隘的开发者;他们希望开发者具备强大的核心能力,同时能跨技术栈工作。部分原因是效率:T 型工程师通常能端到端地解决问题,无需等待交接。另一部分是创新:知识的交叉融合能带来更好的解决方案。
人工智能工具实际上更增强了通才的能力,让一个人更容易处理多个组件。后端工程师可以借助 AI 的帮助创建合理的用户界面;前端专家可以让 AI 生成服务器样板代码。一个 AI 丰富的环境让人们能够更广泛地操作。与此同时,深度专家可能会发现他们的专业领域部分被自动化,而他们却难以轻松拓展到其他领域。
如今,近 45%的工程职位期望应聘者精通多个领域:编程加上云基础设施知识,或者前端开发加上一些机器学习知识。
应对之策:
初级开发者:尽早建立广泛的基础。即使被聘用于特定岗位,也要窥探该领域之外的知识。如果你从事移动开发,学习后端基础知识;如果你从事前端开发,尝试编写一个简单的服务器。学习部署流程以及 Docker 或 GitHub Actions 等工具。找到一两个真正让你兴奋的领域并深入钻研:这将成为你的垂直专长。将自己定位为复合型人才:“专注于云安全的全栈开发者”或“具备用户体验专长的前端开发者”。利用 AI 工具快速学习新领域;当你对后端开发还是新手时,让 ChatGPT 生成入门 API 代码并加以研究。养成持续再学习的习惯。参加黑客马拉松或跨职能项目,迫使自己进入通才模式。告诉你的经理,你希望接触项目的不同部分。适应能力是你职业生涯早期的超能力。
资深开发者:绘制你的技能图谱:你擅长哪些领域,哪些相关领域只是浅尝辄止?选择一两个相邻领域,致力于熟练掌握。如果你是后端数据库专家,不妨熟悉一个现代前端框架或学习机器学习管道基础知识。在 AI 辅助下,在你薄弱的领域完成一个小项目。将你的深厚专业知识与新情境相结合;如果你专攻 Web 应用性能,探索这些技能如何应用于机器学习推理优化。倡导或设计你的角色,使其更具跨职能性。主动成为涉及多个领域项目的“集成倡导者”。指导他人以传播技能,同时从他们那里学到一些东西作为回报。更新你的简历以体现多样性。利用你的经验识别模式和可转移的知识。成为 T 型榜样:在你的专业领域深入(赋予权威和信心),同时积极横向拓展。
5. 教育问题
核心结论:计算机科学学位是否仍将是黄金标准,还是更快速的学习路径(训练营、在线平台、雇主培训)会超越它?大学可能难以跟上每几个月就变化的行业步伐。
长期以来,四年制计算机科学学位一直是进入软件行业的主要通行证。但这一传统正受到质疑。
一种可能的未来是:大学仍然重要,但难以保持其相关性。学位仍然是默认的凭证,但课程设置滞后于快速发展的需求,受到缓慢的课程更新周期和官僚审批流程的阻碍。学生和雇主感到学术界与行业脱节,教授的理论或过时的实践无法转化为工作技能。
近期毕业生反映,他们在大学期间从未接触过云计算、现代运维或人工智能工具。如果高校既要求高昂的时间与金钱投入,又提供低相关度的教育内容,便可能沦为昂贵的”守门人”。但许多企业仍因惯性思维要求本科学历,于是填补技能鸿沟的重担便落在了学生肩上——他们不得不通过集训营、在线课程和自主项目来弥补不足。
学生贷款债务规模惊人,企业每年花费数十亿美元培训应届毕业生,只因这些毕业生缺乏职场必备技能。高校或许会增设人工智能伦理课程,或是开放云计算选修课,但等到这些课程真正落地时,工业界的工具早已更新换代。
颠覆性变革正在发生:传统教育体系正逐渐被新范式取代。编程集训营、在线认证、自学作品集、企业自建培训学院等模式层出不穷。许多知名企业(如谷歌、IBM)已取消部分技术岗位的学历门槛。2024 年,近 45%的企业计划在至少部分岗位上取消本科学历要求。
训练营已经成熟。它们培养出的毕业生能与计算机科学专业毕业生一同受雇于顶尖公司。这些项目周期更短(12 周强化训练),专注于实用技能:当前主流框架、云服务、团队协作。招聘标准正转向实时作品集、微证书和已验证技能。一份出色的 GitHub 作品集或公认的认证可以绕过学历要求。
雇主驱动的教育正在兴起:企业创建自己的培训渠道或与训练营合作。一些大型科技公司已为非传统候选人开设内部“大学”。人工智能本身提供了新的学习方式:AI 导师、互动式编程沙盒、大学环境之外的个性化教学。
模块化的学习生态系统远比昂贵的四年制学位更容易获得。一个在没有强大计算机科学大学的国家里的孩子,可以学习同样的 Coursera 课程,并建立与硅谷人士相同的作品集。
应对之策:
有抱负的初级开发者:如果身处传统的计算机科学课程中,不要完全依赖它。通过实际项目来补充课程学习:构建一个网络应用,为开源项目做贡献。寻求实习或合作机会。如果你的课程遗漏了热门话题,可以通过在线平台学习。获得行业认可的认证(如 GCP、AWS、Azure)来展示你的实践知识。如果是自学或参加编程训练营,专注于打造一个引人注目的作品集:至少有一个有良好文档记录的重要项目。积极参与开发者社区:为开源项目做贡献,撰写技术文章。通过 LinkedIn、聚会和开发者活动建立人脉。请一位经验丰富的开发者为你担保。持续学习;技术技能的半衰期很短。将 AI 作为你的个人导师。以具体方式证明你的技能:作品集、认证以及能够明智地谈论你的工作的能力,将为你打开机会之门。
资深开发者和领导者:仅凭资历无法让你永远立于不败之地。投资于持续教育:在线课程、工作坊、会议、认证。以新方式验证你的技能;准备好通过实际问题评估当前能力的面试。用新技术维护副业项目。重新评估职位要求:你真的需要新员工拥有计算机科学学位,还是需要特定的技能和学习能力?推动技能优先的招聘以扩大人才库。支持内部培训计划或学徒式职位。倡导为没有正式背景的初级开发者设立导师圈。与学术界和替代途径互动:顾问委员会、客座讲座、对课程缺口的反馈。在你自己的职业成长中体现这一点:实际成就和持续学习比额外的学位更重要。
贯穿始终的主线
这些情景并非互斥。现实将汲取所有情景中的元素。有些公司会减少初级岗位招聘,而另一些公司则会在新领域扩大招聘。人工智能将自动化常规编码工作,同时提升人类所接触代码的标准。开发者们可能会在上午审阅人工智能的输出,下午则专注于构思高层架构。
贯穿始终的主线是:变化是唯一的不变。通过密切关注技术趋势(并对其保持审慎态度),你可以避免被炒作或悲观论调打个措手不及。通过更新技能、拓展能力,并专注于人类独有的特质(创造力、批判性思维、协作能力),你将始终保持在技术发展的前沿。
无论未来带来的是编码的复兴,还是一个代码自我编写的世界,对于那些能够全面思考、持续学习,并推动技术解决实际问题的工程师,需求将始终存在。
预测未来的最佳方式,就是积极地去塑造它。
夜雨聆风