软件工程的未来两年

文章探讨了AI技术发展对软件工程师职业的潜在影响,提出了关于初级开发者需求、技能要求、角色定位、专业化程度以及教育模式的五大关键问题,并针对每种情景提供了应对策略。核心观点是,软件工程师需要不断适应变化,提升综合能力,才能在AI时代保持竞争力。

软件行业正处于一个奇怪的拐点。AI 编码已经从 增强版 的自动完成发展到可以自主执行开发任务的智能代理。推动科技公司招聘热潮的经济繁荣已经让位于效率至上的要求:公司现在通常更看重盈利能力而非增长,经验丰富的员工而非应届毕业生,以及配备更好工具的小型团队。

与此同时,新一代开发者正以不同的方式进入职场:他们对职业稳定性持务实态度,对 奋斗文化 持怀疑态度,并且从一开始就在 AI 的辅助下成长。

接下来会发生什么,确实不确定。以下是可能在 2026 年之前塑造软件工程的五个关键问题,每个问题都有两种对比鲜明的设想。这些并非真正的预测,而是为做好准备提供的视角。目标是制定清晰的路线图,以便根据当前数据并以社区所熟知的健康怀疑态度来处理接下来发生的事情。


1. 初级开发者问题

底线:随着 AI 自动化入门级任务,初级开发者的招聘可能会崩溃,或者随着软件普及到各个行业而反弹。这两种未来都需要不同的生存策略。

传统的“学习编码,获得初级职位,成长为高级”的道路正在摇摇欲坠。哈佛大学对 6200 万工人进行的一项研究 发现,当公司采用生成式 AI 时,初级开发者的就业在六个季度内下降约 9-10%,而高级开发者的就业几乎没有变化。过去三年,大型科技公司对应届毕业生的招聘减少了 50%。正如 一位工程师讽刺地指出 的那样: “当 AI 编码代理的成本更低时,为什么要花 9 万美元雇用一名初级员工呢?”

这不仅仅是 AI。利率上升和后疫情时代调整等宏观因素 在 2022 年左右开始冲击,当时 AI 工具尚未普及。但 AI 加速了这一趋势。在 AI 的辅助下,一名高级工程师现在可以完成过去需要一个小团队才能完成的工作。公司在悄悄地不雇用初级员工,而不是解雇任何人。

另一种设想:AI 在各个行业(而不仅仅是科技行业)释放了对开发人员的大量需求。医疗保健、农业、制造业和金融业都开始嵌入软件和自动化。AI 不是取代开发人员,而是成为一种力量倍增器,将开发工作扩展到从未雇用过程序员的领域。我们会看到更多的入门级职位,只是职位有所不同:快速为特定领域构建自动化和集成的“AI 原生”开发人员。

劳工统计局仍然预测,从 2024 年到 2034 年,软件职位将增长约 15%。如果企业使用 AI 来扩大产量,而不是严格削减员工人数,他们将需要人类来抓住 AI 创造的机会

悲观设想的长期风险经常被忽视:今天的初级员工就是未来的高级工程师和技术领导者。完全切断人才输送管道,将在 5-10 年内造成领导真空。行业资深人士称之为“缓慢衰退”:一个停止培养接班人的生态系统。

如何应对:

初级开发者: 提升自己的 AI 技能,让自己变得多才多艺。证明一名初级员工加上 AI 可以匹敌一个小团队的产出。使用 AI 编码代理(Cursor/Antigravity/Claude Code/Gemini CLI)来构建更大的功能,但要理解并解释每一行代码(如果不是全部的话)。专注于 AI 难以取代的技能:沟通、问题分解、领域知识。将相邻角色(QA、DevRel、数据分析)视为切入点。建立一个作品集,尤其是集成 AI API 的项目。考虑学徒期、实习、合同工或开源。不要做“另一个需要培训的新毕业生”;要做一个立即有用的、学习速度快的工程师。

高级开发者: 初级员工减少意味着更多的繁琐工作落到你身上。依靠自动化来完成日常任务,但不要事事亲力亲为。设置 CI/CD、代码检查器和 AI 辅助测试来捕捉基本问题。通过开源或指导其他部门的同事进行非正式指导。坦率地与管理层沟通全高级团队的风险。如果初级员工的需求反弹,请做好有效入职和以使用 AI 的方式进行委派的准备。你的价值在于提高整个团队的产出,而不仅仅是你自己的代码。


2. 技能问题

底线:随着 AI 编写大部分代码,核心编程技能可能会萎缩,或者随着人类开发人员专注于监督,核心编程技能可能会变得比以往任何时候都更加重要。未来几年将决定我们是否会为了速度而牺牲理解能力。

现在有 84% 的开发人员经常使用 AI 辅助工具。对于许多人来说,在面对 Bug 或新功能时,第一个本能不是从头开始编写代码,而是编写一个提示并将 AI 生成的片段拼接在一起。入门级程序员正在跳过“困难模式”:他们可能永远不会从头开始构建二叉搜索树,或者独自调试内存泄漏。

技能组合正在从实现算法转变为知道如何向 AI 提出正确的问题并验证其输出。现在,梯子的第一级要求提示和验证 AI,而不是展示原始的编码能力。一些高级工程师担心这会培养出无法独立编写代码的一代人,这是一种技能退化。AI 生成的代码会引入细微的 Bug 和安全漏洞,而经验不足的开发人员可能会忽略这些漏洞。

另一种设想:当 AI 处理 80% 的日常工作时,人类将专注于最困难的 20%。架构、棘手的集成、创造性设计、极端情况:机器无法单独解决的问题。AI 的普遍存在不是使深层知识过时,而是使人类的专业知识比以往任何时候都更加重要。这就是“高杠杆工程师”,他们使用 AI 作为力量倍增器,但必须深入了解系统才能有效地运用它。

如果每个人都访问 AI 编码代理,那么区分优秀开发人员的标准就是知道 AI 在什么时候是错误的或次优的。正如一位高级工程师所说:“最好的软件工程师将不是编码速度最快的,而是知道何时不信任 AI 的人。”

编程转变:减少输入样板代码,更多地审查 AI 输出是否存在逻辑错误、安全漏洞以及与需求不符的情况。关键技能包括软件架构、系统设计、性能调优和安全分析。AI 可以快速生成一个 Web 应用程序,但一位专家工程师可以确保 AI 遵循了安全最佳实践,并且没有引入竞争条件。

2025 年的开发者讨论存在分歧。有些人承认他们几乎从不“手动”编写代码,并认为编码面试应该发展。另一些人则认为,跳过基础知识会导致在 AI 输出中断时出现更多故障排除。行业开始期望工程师同时具备这两者:AI 速度和质量的基础智慧。

如何应对:

初级开发者: 将 AI 用作学习工具,而不是拐杖。当 AI 编码代理(Cursor/Antigravity/Claude Code/Gemini CLI)建议代码时,要审查其工作原理,找出弱点。偶尔禁用你的 AI 助手,并从头开始编写关键算法。优先学习 CS 基础知识:数据结构、算法、复杂性、内存管理。将项目实施两次,一次使用 AI,一次不使用 AI,并进行比较。学习提示工程和工具精通。训练自己进行严格的测试:编写单元测试,阅读堆栈跟踪,不要立即询问 AI,并熟悉调试器。加深 AI 无法复制的补充技能:系统设计、用户体验直觉、并发推理。证明你可以使用 AI 快速 提出解决方案,并在 AI 失败时解决棘手问题。

高级开发者: 将自己定位为质量和复杂性的守护者。提高你的核心专业知识:架构、安全、扩展、领域知识。练习使用 AI 组件对系统进行建模,并考虑失败模式。随时了解 AI 生成的代码中的漏洞。接受你作为导师和审阅者的角色:定义 AI 使用可接受的范围以及必须进行手动审阅的范围(付款或安全代码)。专注于创造性和战略性工作;让你初级员工+AI 的组合处理日常 API 连接,同时你决定要构建哪些 API。投资于软技能和跨领域知识。及时了解新工具和最佳实践。加倍努力使人类开发人员不可或缺的因素:合理的判断、系统级思考和指导。


3. 角色问题

底线:开发人员的角色可能会缩小到有限的审计(监督 AI 生成的代码),或者扩展到设计和管理 AI 驱动系统的关键协调者职位。无论哪种方式,增加价值的意义都不仅仅是编码。

这里的极端情况十分明显。在一种设想中,开发人员看到他们的创造性责任减少。他们主要不是构建软件,而是主要审核和照看 AI 输出。AI 系统(或使用无代码平台的“公民开发者”)处理生产;人类开发人员审查自动生成的代码,检查错误、偏差或安全问题,并批准部署。制造者变成了检查者。代码创造的乐趣被风险管理的焦虑所取代。

有报道称,工程师花费更多的时间评估 AI 生成的拉取请求和管理自动化管道,而花费更少的时间从头开始编写代码。编程感觉不像是创造性问题解决,而更像是合规。正如一位工程师感叹的那样:“我不想最终成为一名代码清洁工,清理 AI 扔过来的东西。”

另一种未来更有趣:开发人员发展成为高级协调者,结合了技术、战略和道德责任。AI “工人”意味着人类开发人员承担架构师或总承包商的角色,设计整个系统,决定哪些任务交给哪个 AI 或软件组件,并从许多移动部件中编织解决方案。

一家低代码平台的 CEO 阐述了这种愿景:在“智能代理”开发环境中,工程师成为“作曲家”,协调 AI 代理和软件服务的集合。他们不会自己编写每一个音符,但他们定义了旋律:架构、接口、代理如何交互。这个角色是跨学科的和创造性的:部分软件工程师、部分系统架构师、部分产品策略师。

乐观的看法:随着 AI 处理重复性工作,开发人员的角色必然会转向更高价值的活动。工作可能会变得更有趣。必须有人决定 AI 应该构建什么,验证产品是否有意义,并不断改进它。

它的发展方向可能取决于组织如何选择集成 AI。将 AI 视为劳动力替代品的公司可能会削减开发团队,并要求剩余的工程师保持自动化运行。将 AI 视为增强团队的方式的公司可能会保持相似的员工人数,但让每位工程师交付更雄心勃勃的项目。

如何应对:

初级开发者: 寻找超越编写代码的机会。主动参与测试用例编写、CI 管道设置或应用程序监控:这些技能与审核员/管理员角色相一致。通过个人项目保持你的创造性编码活力,这样你就不会失去构建的乐趣。培养一种系统思维:了解组件如何通信,是什么使 API 设计良好。阅读工程博客和系统设计案例研究。熟悉代码生成之外的 AI 和自动化工具:协调框架、AI API。提高沟通技巧,包括书面和口头。编写文档,就像向其他人解释一样。不仅要问高级同事“我的代码有效吗?”,还要问“我考虑了正确的事情吗?” 准备好成为验证者、设计者和沟通者,而不仅仅是编码员。

高级开发者: 承担领导和架构责任。制定 AI 和初级团队成员遵循的标准和框架。定义代码质量检查清单和道德 AI 使用政策。随时了解 AI 生成软件的合规性和安全主题。专注于系统设计和集成专业知识;主动绘制跨服务的数据流并识别故障点。熟悉协调平台(Kubernetes、Airflow、无服务器框架、智能代理协调工具)。加倍努力你作为技术导师的角色:更多代码审查、设计讨论、技术指南。提高你快速评估其他人(或某事物)的代码并给出高级反馈的能力。培养产品和业务意识;了解为什么构建功能以及客户关心什么。旁听产品经理或参加客户反馈会议。通过原型、黑客马拉松或新兴技术研究来保护你的创造性热情。从编码员发展为指挥家。


4. 专家与通才问题

底线:狭隘的专家可能会发现他们的利基被自动化或过时。快速变化、AI 融合的环境奖励 T 型工程师:具有广泛适应性以及一两项深入技能。

鉴于模型、工具和框架的兴衰速度如此之快,将你的职业生涯押注于单个技术堆栈是有风险的。一个传统框架的专家可能会突然发现,当一个新的 AI 工具以最少的人工干预来处理该技术时,他们就没有那么受欢迎了。那些狭隘地专注于“单个堆栈、框架或产品领域”的开发人员可能会醒来发现该领域正在衰落或变得多余。

想想 COBOL 开发人员、Flash 开发人员或移动游戏引擎专家,当行业发生变化时,他们没有进行转型。现在的不同之处在于变化的速度。AI 自动化可以使某些编程任务变得微不足道,从而削弱围绕这些任务展开的角色。一个只知道一件事(微调 SQL 查询、将 Photoshop 设计切片成 HTML)的专家可能会发现 AI 处理了 90% 的工作。

招聘经理追逐最新的利基。几年前,每个人都想要云基础设施专家;现在,AI/ML 工程师的需求激增。那些狭隘地专注于昨天技术的人会感到停滞不前,因为该利基失去了光彩。

相反的结果是以一种新的形式进行专业化:“多才多艺的专家”或 T 型开发人员。在一个或两个领域具有深厚的专业知识(垂直笔画),广泛熟悉许多其他领域(水平笔画)。这些工程师成为多学科团队中的“粘合剂”;他们与其他条纹的专家进行沟通,并在需要时填补空白。

公司不再想要过于肤浅或过于狭隘的开发人员;他们想要强大的核心竞争力以及跨堆栈工作的能力。部分原因是效率:T 型工程师通常可以端到端地解决问题,而无需等待移交。部分原因是创新:知识的交叉融合可以带来更好的解决方案。

AI 工具实际上更能增强通才的能力,从而使一个人更容易处理多个组件。后端工程师可以依靠 AI 帮助来创建合理的 UI;前端专家可以使用 AI 生成服务器样板代码。一个富含 AI 的环境可以让人们更广泛地进行操作。与此同时,深度专家可能会发现他们的利基在一定程度上是自动化的,而没有简单的方法可以扩展。

现在,近 45% 的工程职位都期望精通多个领域:编程以及云基础设施知识,或前端以及一些 ML 知识。

如何应对:

初级开发者: 尽早建立广泛的基础。即使是为特定角色雇佣,也要窥视该孤岛之外。如果你正在做移动开发,请学习后端基础知识;如果你正在做前端开发,请尝试编写一个简单的服务器。了解部署流程和诸如 Docker 或 GitHub Actions 之类的工具。确定一个或两个真正让你兴奋的领域并深入研究:这会成为你的垂直专业知识。将自己定位为混合型:“专注于云安全的全栈开发人员”或“具有 UX 专业知识的前端开发人员”。使用 AI 工具快速学习新领域;当你是后端新手时,让 ChatGPT 生成启动器 API 代码并进行研究。养成持续重新技能的习惯。参与黑客马拉松或跨职能项目,以迫使自己进入通用模式。告诉你的经理你想接触项目的不同部分。适应性是你职业生涯早期的超能力。

高级开发者: 绘制你的技能图:你擅长什么,你只从表面上接触过哪些相关领域?选择一个或两个相邻领域,并致力于变得精通。如果你是后端数据库专家,请熟悉现代前端框架或学习 ML 管道基础知识。在 AI 的帮助下,在你的薄弱领域中做一个小项目。将你的深入专业知识与新的环境相结合;如果你专注于 Web 应用程序性能,请探索这些技能如何应用于 ML 推理优化。倡导或设计你的角色以使其更具跨职能性。主动成为涉及多个领域的项目的“集成冠军”。指导他人以传播技能,同时从他们那里获得一些回报。更新你的简历以反映多功能性。利用你的经验来识别模式和可转移的知识。成为 T 型榜样:在你的专业领域深入(给予权威和信心),但积极地横向扩展。


5. 教育问题

底线:CS 学位是否仍将是黄金标准,还是更快的学习途径(训练营、在线平台、雇主培训)将超过它?大学可能难以跟上每隔几个月就会发生变化的行业。

四年制计算机科学学位长期以来一直是进入软件角色的主要途径。但是,这种传统正在受到质疑。

一种未来:大学仍然很重要,但难以保持相关性。学位仍然是默认的凭证,但课程落后于快速发展的需求,受到缓慢的课程更新周期和官僚审批流程的阻碍。学生和雇主都觉得学术界与行业脱节,教授的理论或过时的实践无法转化为工作技能。

最近的毕业生报告说,他们在学位期间从未了解过云计算、现代 DevOps 或 AI 工具。如果大学在提供低相关性教育的同时要求大量时间和资金投入, 那它们可能会被视为昂贵的守门人。但是,许多公司仍然因为惯性而要求学士学位,因此将负担转移给学生,让他们通过训练营、在线课程和自学项目来填补空白。

学生贷款债务巨大,公司花费数十亿美元培训新毕业生,因为这些毕业生缺乏工作场所所需的技能。大学可能会在这里添加 AI 伦理课程,在那里添加云计算选修课,但是当他们实施某些内容时,行业工具已经发生了变化。

颠覆性设想:传统教育越来越被新系统所取代。编码训练营、在线认证、自学作品集、雇主创建的培训学院。许多知名的雇主(Google、IBM)已经取消了某些技术职位的学位要求。2024 年,近 45% 的公司计划取消至少某些职位的学士学位要求

训练营已经成熟。他们培养的毕业生与 CS 毕业生一起被顶尖公司聘用。这些计划时间更短(12 周强化课程),并且专注于实践技能:当前的框架、云服务、团队合作。招聘货币正在转向现场作品集、微凭证和经过验证的技能。强大的 GitHub 作品集或认可的认证可以绕过学位要求。

雇主驱动的教育正在兴起:公司创建自己的培训渠道或与训练营合作。一些大型科技公司已经开始为非传统候选人开设内部“大学”。AI 本身提供了新的学习方式:AI 导师、交互式编码沙箱、大学环境之外的个性化指导。

与昂贵的四年制学位相比,模块化的学习生态系统更容易获得。一个没有强大的 CS 大学国家的孩子可以参加与硅谷的人相同的 Coursera 课程并构建相同的作品集。

如何应对:

有抱负的/初级开发者: 如果参加传统的 CS 课程,请不要完全依赖它。通过实际项目来补充课程作业:构建一个 Web 应用程序,为开源做出贡献。寻找实习或合作机会。如果你的课程遗漏了热门话题,请通过在线平台学习它们。获得行业认可的认证(GCP、AWS、Azure)以表明实践知识。如果是自学或参加训练营,请专注于引人注目的作品集:至少一个具有良好文档的实质性项目。积极参与开发者社区:为开源做出贡献,撰写技术文章。通过 LinkedIn、聚会、开发者活动建立联系。让一位经验丰富的开发人员为你辩护。保持持续学习;技术技能的半衰期很短。使用 AI 作为你的私人导师。以具体方式证明你的技能:作品集、认证以及流畅地谈论你的工作的能力将为你打开大门。

高级开发者和领导者: 仅凭你的凭证无法永远让你成功。投资于持续教育:在线课程、研讨会、会议、认证。以新的方式验证你的技能;准备好通过实际问题来评估当前能力的面试。维护带有新技术的辅助项目。重新评估职位要求:你真的需要新员工拥有 CS 学位,还是你需要某些技能和学习能力?推动技能优先招聘以扩大你的人才库。支持内部培训计划或学徒式职位。倡导为没有正规背景的初级开发人员提供指导圈。与学术界和替代方案互动:咨询委员会、客座讲座、关于课程差距的反馈。在自己的职业发展中反映这一点:实际成就和持续学习比额外学位更重要。


贯穿始终的主线

这些设想并非相互排斥。现实将从所有设想中汲取要素。一些公司会减少初级员工的招聘,而另一些公司则会在新领域扩大招聘。AI 将自动化日常编码,同时提高人类接触代码的标准。开发人员可能会上午审查 AI 输出,下午编写高级架构。

始终如一的主线:变化是唯一不变的。通过密切关注技术趋势(并对其持怀疑态度),你可以避免因炒作或厄运而措手不及。通过更新技能、多样化能力并专注于独特的人类方面(创造力、批判性思维、协作),你始终处于循环之中。

无论未来是带来编码复兴还是一个代码自行编写的世界,都将始终需要那些从整体上思考、持续学习并将技术推向解决实际问题的工程师。

预测未来的最佳方法是积极地设计它。

  • 原文链接: addyosmani.com/blog/next...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Addy Osmani
Addy Osmani
江湖只有他的大名,没有他的介绍。