视界:软件工程的未来两年
努力成为整体思考、持续学习、并推动技术解决真实问题的工程师
本文翻译自 Addy Osmani 的一篇博客文章,从五个方面分析软件工程领域近期可能面临的发展趋势,并从初级开发者和高级开发者两个维度给出非常有价值建议。 译者本以为自己已经进阶成为一名高级开发者,读完这篇文章才发现原来一直以来扮演的都是初级开发者角色。 下面是译者总结的三个关键点,仅供参考。
专注人类独有特质
未来无论怎么发展,程序员都不再只有编程。 要培养交流沟通能力,锻炼导师指导能力,精通领域知识,关注设计、安全和扩展性。 译者曾经认为做一个写代码的技术工作者就好了,但现实总是很难与理想保持同频,原来沟通技能之类的要求还是会落到每一个人头上。
做 T 型工程师
在某个专业具有足够的深度,同时了解多个领域,成为精通某个专业领域的跨领域通才。 比如译者从事数值天气预报业务系统运维工作,熟悉系统的运行流程,但对数值天气预报模式程序本身缺乏足够的了解,应该在 AI 工具的加持下阅读模式源代码,加深对整个系统的全方位了解。
保持编程创造力
通过个人项目保持编程创造力,持续学习新工具和最佳实践。 译者近期完全没有个人项目,八小时之外的时间基本不会用来学习和编程,是时候开启新的个人项目了。
原文信息
The Next Two Years of Software Engineering
by Addy Osmani, 2026.01.05
https://addyosmani.com/blog/next-two-years/
以下正文部分使用 Kimi 和 ChatGPT 翻译自原文,并根据译者理解有所修改。
正文
软件行业正处于一个奇特的拐点。 AI编码已经从"类固醇般的自动补全"演变为能够自主执行开发任务的智能体。 推动科技行业招聘热潮的经济繁荣已经让位于效率至上的要求:如今公司往往更看重盈利能力而非增长,偏好有经验的人才而非应届毕业生,青睐配备更好工具的精干小团队。
与此同时,新一代开发者正以不同的考量进入职场:他们务实看待职业稳定性,对"奋斗文化"持怀疑态度,且从入行第一天起就习惯了 AI 辅助。
接下来会发生什么确实充满不确定性。 以下是五个可能在 2026 年之前塑造软件工程发展的关键问题,并为每个问题提供两种对比的情景。 这些并非真正的预测,而是用于准备的视角。 目标是基于当前数据,并结合这个社区一贯具备的健康怀疑精神,制定一份清晰的路线图来应对未来。
1. 初级开发者问题
核心要点:初级开发者招聘可能因 AI 自动化入门级任务而崩溃,也可能因软件渗透到各行各业而反弹。两种未来都需要不同的生存策略。
传统 “学编程→找初级工作→成长为高级工程师” 的路径正在动摇。 哈佛一项针对 6200 万工作者的研究发现,当公司采用生成式 AI 时,初级开发者就业人数在六个季度内下降约 9-10%,而高级开发者岗位几乎不受影响。 过去三年,大型科技公司招聘的应届生减少了 50%。 正如一位工程师讽刺道:“当 AI 编码智能体成本更低时,为什么要花 9 万美元雇一个初级开发者?”
这不仅仅是 AI 的原因。 宏观因素如利率上升和疫情后调整在 2022 年左右就已出现,早于 AI 工具普及。 但 AI 加速了这一趋势。 如今一位配备 AI 辅助的高级工程师可以产出过去需要一个小团队才能完成的工作量。 公司与其说是裁员,不如说是悄悄地不再招聘初级人员。
反转情景:AI 解锁了各行各业对开发者的海量需求,而不仅仅局限于科技领域。 医疗、农业、制造业和金融行业都开始嵌入软件和自动化。 AI 非但没有取代开发者,反而成为力量倍增器,将开发工作扩展到从未雇佣过程序员的领域。 我们将看到更多入门级岗位,只是性质不同:“AI原生 (AI-native)“开发者快速为特定细分领域构建自动化和集成系统。
美国劳工统计局仍预测 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 助手,从零手写关键算法。
- 优先掌握计算机科学基础:数据结构、算法、复杂度、内存管理。
- 用 AI 和不用 AI 各实现一次项目,然后比较。
- 学习提示工程和工具使用能力。
- 训练自己进行严格测试:写单元测试,阅读堆栈跟踪而不立即问 AI,熟练使用调试器。
- 深化 AI 无法复制的互补技能:系统设计、用户体验直觉、并发推理能力。
- 展示你既能用 AI 快速产出方案,也能在 AI 失效时解决棘手问题。
高级开发者:
- 将自己定位为质量和复杂性的守护者。
- 磨砺核心专长:架构、安全、扩展性、领域知识。
- 练习对包含 AI 组件的系统进行建模,思考失效模式。
- 持续关注 AI 生成代码的漏洞。
- 拥抱导师和审查者的角色:定义哪些场景可以使用 AI、哪些必须进行人工审查 (支付或安全相关代码)。
- 投入创造性和战略性工作;让初级开发者 + AI 组合处理常规 API 对接,而你决定构建哪些 API。
- 提升软技能和跨领域知识。
- 保持对新工具和最佳实践的持续学习。
- 加倍投入让人类开发者不可替代的能力:可靠的判断力、系统层面的思考能力和指导他人的能力。
3. 角色问题
核心要点:开发者角色可能收缩为有限的审计职责 (监督 AI 生成代码),或扩展为设计和治理 AI 驱动系统的关键协调者。 无论哪种情况,创造价值都不再只是编写代码。
这里的两种极端愿景差异鲜明。 一种愿景中,开发者的创造性职责被削弱。 他们不再构建软件,而主要负责审查和看管 AI 输出。 AI 系统 (或使用无代码平台的"公民开发者") 负责生产; 人类开发者审查自动生成的代码,检查错误、偏见或安全问题,并批准部署。 从“创造者”变为“检查者”。 创造代码的乐趣被风险管理的焦虑所取代。
有报告称,工程师花更多时间评估 AI 生成的 pull request 和管理自动化流水线,而非从零精心编写代码。 编程感觉不再像是创造性问题解决,而更像合规工作。 正如一位工程师感叹:“我不想最终成为一个代码清洁工,清理 AI 扔过来的东西。”
另一种未来则更具吸引力:开发者进化为高级协调者,结合技术、战略和伦理责任。 AI"工人"意味着人类开发者承担建筑师或总承包商角色,设计整体系统,决定哪些任务分配给哪个 AI 或软件组件,并将多个动态部分编织成解决方案。
一家低代码平台的 CEO 这样描述这一愿景:在"智能体化"开发环境中,工程师成为"作曲家",编排 AI 智能体和软件服务的合奏。 他们不会亲自写每一个音符,但定义旋律:架构、接口、各个智能体如何交互。 这个角色具有跨学科性和创造性:即是软件工程师,也是系统架构师,同时还是产品战略家。
乐观看法:当 AI 处理重复性工作,开发者角色必然转向更高价值的活动。 工作可能变得更有趣。 必须有人决定 AI 应该构建什么,验证产品是否合理,并持续改进它。
最终走向何方,可能取决于组织选择如何整合 AI。 将 AI 视为劳动力替代的公司可能裁减开发团队,要求剩余工程师维持自动化系统运行。 将 AI 视为团队放大器的公司可能保持人员规模相近,但让每个工程师交付更具雄心的项目。
应对之策:
初级开发者:
- 寻找不仅限于写代码的机会。
- 主动承担测试用例编写、CI 流水线搭建或应用监控:与审查/保管角色对齐的技能。
- 通过个人项目保持编码创造力,避免失去构建的乐趣。
- 培养系统思维:学习组件如何通信,什么样的 API 设计才算优秀。
- 阅读工程博客和系统设计案例研究。
- 熟悉代码生成之外的 AI 和自动化工具:编排框架、AI API 等。
- 提升书面和口头沟通能力。
- 以向他人解释的方式撰写文档。
- 向资深同事请教时,不仅问"我的代码能用吗?",还要问"我考虑了正确的事情吗?"
- 准备成为验证者、设计者和沟通者,而不仅仅是编码者。
资深开发者:
- 加强领导力和架构职责。
- 制定 AI 和初级团队成员遵循的标准和框架。
- 定义代码质量清单和 AI 使用的伦理规范。
- 持续关注 AI 产出软件的合规和安全问题。
- 聚焦系统设计和集成专长;主动梳理跨服务的数据流并识别故障点。
- 熟练使用编排平台 (Kubernetes、Airflow、无服务器框架、智能体编排工具)。
- 强化技术导师角色:更多参与代码审查、设计讨论和技术规范指定。
- 磨练快速评估他人 (或某物) 代码并给出高层反馈的能力。
- 培养产品和业务理解:理解为何构建某些功能以及客户真正关心什么。
- 跟随产品经理或参加客户反馈会议。
- 通过原型、黑客马拉松或前沿技术研究来保护你的创造热情。
- 从编码者进化为指挥者。
4. 专才 vs. 通才问题
核心要点:狭窄领域的专家可能发现自己的细分领域被自动化或淘汰。 在快速变化、充满 AI 的环境中,更受青睐的是 T 型工程师:具备广泛适应能力,同时在一到两个领域有深入专长。
鉴于模型、工具和框架更迭如此之快,将整个职业生涯押注于单一技术栈是有风险的。 某个遗留框架的大师,可能突然发现随着新的 AI 工具以极少的人类干预即可处理该技术,其需求大幅下降减少。 专精"单一栈、框架或产品领域"的开发者可能一觉醒来发现该领域正在衰退或冗余。
想想哪些没有随着行业变化而转型的 COBOL 开发者、Flash 开发者或移动游戏引擎专家。 如今不同之处在于变化的速度。 AI 自动化能让某些编程任务变得微不足道,削弱围绕这些任务形成的角色。 只懂一件事 (例如微调 SQL 查询、将 Photoshop 设计切片为 HTML) 的专才可能发现 AI 已经可以完成其中 90% 的工作。
招聘经理总是在追逐最新的细分领域。 几年前人人想要云基础设施专家;现在是 AI/ML 工程师。 那些曾经专注于“昨日技术”,会在其细分领域失去吸引力时感到停滞。
另一种结果是以新的形式进行专业化:“多面型专家"或 T 型开发者。 在一到两个领域拥有深厚专业能力 (纵向),同时对多个领域具备广泛认知 (横向)。 这些工程师成为跨学科团队的"粘合剂”;他们与不同领域的专家沟通,并在需要时填补空缺。
公司不再需要过于浅尝辄止或过于狭窄的开发者;他们需要的是具备核心能力,同时能够跨技术栈工作的工程师。 一部分原因是效率:T 型工程师往往能端到端解决问题而无需等待交接。 另一部分是创新:知识交叉融合会带来更优的解决方案。
AI 工具实际上更增强了通才的能力,让一个人更容易处理多个组件。 后端工程师可以依赖 AI 帮助创建合理的 UI;前端专家可以让 AI 生成服务器样板代码。 AI 丰富的环境让人们可以更广泛地开展工作。 同时,深度专家可能会发现细分领域部分被自动化,而缺乏向外拓宽的路径。
如今,近 45% 的工程岗位要求具备多领域能力:例如编程加云基础设施知识,或前端加一定的机器学习基础。
应对之策:
初级开发者:
- 尽早建立广泛的基础。
- 即使被雇佣做特定角色,也要尝试了解该领域之外的内容。
- 如果你从事移动开发,学习后端基础;如果你从事前端开发,尝试写一个简单的服务段程序。
- 学习部署流程和 Docker 或 GitHub Actions 等工具。
- 确定一到两个真正让你兴奋并深入研究的领域,这将成为你的纵向专长。
- 将自己塑造成复合型人才,例如"专注云安全的全栈开发者"或"具备用户体验专长的前端开发者"。
- 利用 AI 工具快速学习新领域;当你是后端新手时,让 ChatGPT 生成基础 API 代码并研究它。
- 培养持续再学习的习惯。
- 参加黑客马拉松或跨职能项目,迫使自己进入通才模式。
- 主动向经理表达希望接触项目不同部分的意愿。
- 适应力是你职业生涯早期的超能力。
高级开发者:
- 绘制你的技能图谱:哪些是你的专长,哪些相关领域只是浅尝辄止?
- 挑选一到两个相邻领域,投入精力达到熟练水平。
- 如果你是后端数据库专家,熟悉现代前端框架或学习机器学习流水线基础。
- 在 AI 辅助下在你薄弱领域做一个小项目。
- 将你的深度专长与新情境整合;如果你专精 web 应用性能,探索这些技能如何应用于机器学习推理优化。
- 争取或设计更具跨职能性的角色。
- 主动承担涉及多个领域项目的"集成负责人"。
- 在指导他人的同时,从他们身上学习一些东西。
- 更新简历以体现多面能力。
- 用你的经验识别模式和可迁移知识。
- 成为 T 型工程师榜样:在你的专业领域具备深度 (给予权威和信心),同时积极横向拓展。
5. 教育问题
核心要点:计算机科学学位是否仍将是黄金标准,还是更快捷的学习路径 (训练营、在线平台、雇主培训) 将取而代之? 大学可能难以跟上每几个月就发生变化的行业。
长期以来,四年制计算机科学学位一直进入软件岗位的主要通行证。 但这一传统正受到质疑。
一种未来:大学仍然重要,但在保持相关性方面举步维艰。 学位依然是默认的资质证明,但由于课程更新周期缓慢和官僚审批流程的限制,教学内容落后于快速变化的需求。 学生和雇主会觉得学术与行业脱节,教授的是理论或过时的实践,无法转化为工作技能。
一些应届毕业生表示,在学习过程中从未接触云计算、现代 DevOps 或 AI 工具。 如果大学要求投入大量时间和金钱,却提供相关度较低的教育,它们就有被视为昂贵“门槛”的风险。 但许多公司仍出于惯性要求本科学位,因此弥补差距的责任转移到学生身上,他们需要通过训练营、在线课程和自学项目来补充能力。
学生贷款债务规模巨大,而企业花费数十亿培训新毕业生,因为这些毕业生缺乏职场所需技能。 大学可能这里加一门 AI 伦理课,那里加一门云计算选修,但当这些课程真正落地时,行业工具已经前进了。
颠覆性情景:传统教育逐渐被新体系所取代。 编程训练营、在线认证、自学作品集、企业主导的培训学院。 许多知名雇主 (Google,IBM) 已取消部门技术岗位的学历要求。 2024 年,近 45% 的公司计划在至少部分岗位上取消本科学历要求。
编程训练营已成熟。 它们培养的毕业生与计算机科学专业毕业生一同被顶级公司雇佣。 这些项目周期更短 (12周强化训练) 且聚焦实用技能:当前框架、云服务、团队协作。 招聘的“货币”正转向真实作品集、微认证和经过验证的技能。 一份强有力的 GitHub 作品集或权威认证可以绕过学历要求。
由雇主主导的教育模式正在兴起:公司创建自己的培训体系或与训练营合作。 一些大型科技公司已开始为非传统背景的候选人开设内部"大学"。 AI 本身也提供了新的学习方式:AI 导师、交互式编程沙盒、大学体系之外的个性化教学。
模块化学习生态系统远比昂贵的四年制学位更易获得。 一个身处没有强大计算机科学教育体系国家的学生可以通过 Coursera 学习同样的课程,构建与硅谷学生相同的作品集。
应对之策:
有志/初级开发者:
- 如果在传统计算机科学项目中学习,不要完全依赖它。
- 用真实项目补充课程:构建一个 web 应用,参与开源项目。
- 寻找实习或合作教育机会。
- 如果课程为覆盖热门技术,通过在线平台自学。
- 获取行业认可的认证 (如GCP,AWS,Azure) 以证明实践能力。
- 如果自学或参加训练营,重点打造引人注目的作品集:至少一个具有完整文档的重要项目。
- 积极参与开发者社区:参与开源,撰写技术文章。
- 通过 LinkedIn、线下聚会、开发者活动建立人脉。
- 让有经验的开发者为你背书。
- 持续学习;技术技能的“半衰期”很短。
- 将 AI 作为你的私人导师。
- 以具体方式证明能力:作品集、认证、以及对自己工作的清晰表达能力,都将为你打开机会之门。
高级开发者和领导者:
- 仅靠学历无法长期支撑你的职业发展。
- 投资持续教育:在线课程、工作坊、会议、认证。
- 以新方式验证你的技能;准备好通过真实问题评估当前能力的面试。
- 保持使用新技术的个人项目。
- 重新审视招聘要求:你真的需要新员工有计算机科学学位,还是需要特定技能和学习能力?
- 推动以技能为导向的招聘,以扩大人才来源。
- 支持内部培训项目或学徒制岗位。
- 为无正式背景的初级开发者建立导师机制。
- 与学术界和其他教育模式保持互动:参与顾问委员会、客座讲座、对课程差距提供反馈。
- 在你自身的职业发展中体现这一点:现实成果和持续学习比额外学位更重要。
贯穿主线
这些情景并非互斥。 现实将从所有情景中汲取元素。 一些公司会减少初级岗位招聘,而另一些则会在新的领域扩大招聘。 AI 将自动化常规编码,同时提高人类参与代码的质量标准。 开发者可能在上午审查 AI 输出,下午精心设计高级架构。
贯穿始终的一条主线是:变化是唯一不变的。 通过持续关注技术趋势 (并对其保持怀疑),你可以避免被炒作或悲观论调打个措手不及。 通过不断更新技能、拓展能力、专注于人类独有的特质 (创造力、批判性思维、协作能力),你就能保持与时俱进。
无论未来带来的是编码复兴,还是代码自我生成的世界,对于那些能够整体思考、持续学习、并推动技术解决真实问题的工程师,始终会存在需求。
预测未来的最佳方式是积极塑造未来。
正文部分到此结束,以下部分为译者添加。
