开发者生态
morning
一个二十多年老兵的忧心:那条从Debug开始走向资深工程师的路,正在崩塌
2026-05-18
1 阅读
灯火明
【编者按】不久前,InfoQ 曾报道了 《微软警告称,AI 正在掏空初级开发者的培养渠道》 "。微软 Azure CTO Mark Russinovich 等人的研究文章指出,当企业将初级任务自动化以追求短期 ROI 时,不仅让新人背负了丧失深度思考能力的“认知债务”,更导致了软件人才金字塔底座的崩塌——我们正在失去培养下一代资深工程师的“训练场”。在传统的软件工程人才培养链路中,那些看似低价值的 Bug 修复、文档整理和简单模块编写,恰恰是新人理解复杂系统、建立工程直觉的“训练场”。当 AI 抽干了这些高训练密度的初级任务,软件行业赖以生存的人才管线正面临断裂的风险。InfoQ 始终关注开发者生态的长期演进。我们认为,这不仅是一个就业市场的波动问题,更是一次关于“工程能力如何传递”的深层拷问。如果说微软的文章是从机构研究视角发出的宏观警告,那么今天这篇文章,则是一位拥有20年编程经验的行业老兵,从工程实战和人才培养的一线发出的深度回响。作者敏锐地指出:软件行业那条“从Debug和文档起步,在琐碎任务中理解系统”的自然进化路径正在崩塌,并从工业界用人策略的漂移、高等教育体系的滞后以及科研逻辑的异化三个维度展开分析。为什么你必须读这篇文章?如果你是企业管理者: 你需要思考,在追求短期 ROI 的同时,如何避免砍掉公司未来的“种子粮”。如果你是教育工作者: 面对“教育滞后于工业”的宿命,如何重构课程体系以应对“人才成熟周期前移”?如果你是正在入行的准开发者: 当“人人都能写代码”成为现实,你必须重新审视职业程序员的核心护城河——那些 Prompt 给不了的“背锅经历”和系统判断力。AI 降低了写代码的门槛,却在无形中抬高了成为职业工程师的门槛。以下是关于这场“无声革命”的观察与思考。 如果 AI 持续替代大量初级开发任务,未来五到十年内一个关键问题会变得越来越突出:中高级工程师从哪里来? 过去,计算机行业有一条相对自然的人才培养路径。新人从模块代码写起,自行调试,编写注释和文档,再经过commiter review代码风格,跑CI,通过后最终merge入仓。在这套流程中,新人会逐渐理解系统、业务、工程习惯和组织协作。模块本身可能并不复杂,但这些初级任务能让他们快速上手。 而现在,AI编程工具最先压缩的恰恰是这些高确定性、高重复性,但对于初级工程师来说又有最高训练密度的任务。时下各大公司都在思考如何有效引入AI编程工具让资深工程师提高效率,同时压缩初级开发岗位节省成本。但长期看,这势必会拔掉培养资深工程师所需的“苗子”。 因此,文章开篇那个问题的本质是:当初级任务不再具备经济价值时,行业对初级工程师的要求会如何变化,而岗位训练机制又会如何变化? 下面我将尝试从工业界和教育界两方面聊聊这个问题可能的答案。 对工业界的影响 从工业界看,AI编程工具普及后,企业用人策略可能出现明显分化。 对于不愿意或没有能力培养初级开发的中小企业,以及非IT企业内部的开发部门来说,最现实且短期理性的策略可能是减少初级岗位,用少量资深开发加AI工具,再配合外包来维持开发需求。对单个公司来说这很合理:既然AI可以完成一部分明确任务,为什么还要投入时间培养经验不足的新手? 但从行业整体来看,如果所有公司都如此,长期就会出现人才管线断裂。初级岗位减少,真实工程训练减少,能成长为资深开发的人也会减少。几年之后,企业可能会发现资深开发更贵、更难招,而大量历史系统、技术债务会堆积,这些仍然需要真正有经验的人来处理。 大厂的情况可能会有所不同。有资源、有长期人才战略的公司,仍然可能保留实习项目、应届生项目、导师制度等较为完备的内部培养机制,但对初级岗位的门槛会显著提高。 过去初级岗位只需要能完成明确任务,现在则需要具备AI协作、小规模代码库分析、模块化验证与调试等等能力,甚至承担一些基本工程判断责任。而一个刚出大学门、连stack trace都可能不太会读的应届生是很难达到这个标准的。 更进一步地说,AI工具的出现让公司期待初级岗位一开始就具备更接近中级工程师的判断力。 这样的变化对于计算机行业的新人来说,意味着更残酷的竞争:大厂会培养少数高潜新人,名校、强实习和开源或研究项目经历会成为更重要的敲门砖。 计算机行业的入口不会完全关闭,但会更卷:少数新人进入高质量培养计划,多数人被挡在门外或流向边缘技术岗位。这代表了行业人才成熟周期的整体前移。 未来,行业可能会要求学生在大学早期甚至大学前就已经有相当的计算机基础:较为熟练的使用一门高级语言、熟悉基础算法和数据结构、了解基础的OS/网络/体系结构知识、,甚至有OI/ACM竞赛经验或者个人项目集。想从事计算机行业的人,可能会像现在的艺术生那样从小就开始学习专业知识并接受相关训练。传统意义上“大学时才系统接触编程,毕业后从初级岗位开始一步步迈向资深”,这样的例子可能会从主流变成越来越罕见的例外。 AI降低的是“生成代码”的门槛,但却提高了“成为职业程序员”的门槛。 对计算机高等教育的影响 在这种行业背景下,计算机高等教育会受到很大冲击,原先的旧教育体系面临较高的重构压力。 过去,大学主要负责基础教育,企业负责工程训练。传统计算机专业通常会教授算法、数据结构、操作系统、网络、计算机组成或体系结构,加上一门编程语言,再配合若干项目课。这个体系过去大体可行,因为本质上学生在大学里学的是编程基础课,真正的工程能力往往是通过进入企业后从事初级开发岗位补上来的。 但如果AI压缩了初级开发岗位,这套分工就会被打破,大学不可避免地需要承担更多原本由企业完成的训练功能。也就是说,高等教育不能只教理论基础,还需要把更多“企业里初级开发会要干的活”模拟进课程体系。 一个理想的方向,是在高等教育中建立更接近真实工程环境的训练机制:比如组织学生阅读一个陌生的小型代码库并模拟可能出现的生产事故。而后引导学生复现并分析错误根因,通过调试修复并提交 PR,接受peer review,写单元测试,做事故复盘等完整流程。 这些训练和传统课程不同。它们不只是让学生“知道某个知识点”,而是让学生理解一个工程系统是如何长期运行、演进和出问题的。 但这对高等教育资源要求很高,它需要一个足够复杂又不至于太吓人的代码库、需要助教们承担指导和review职责,需要鲁棒的测试环境及CI基础设施,甚至需要和工业界合作。强校可能有条件做到,普通院校很难完整承担。结果可能是,计算机高等教育本身也会进一步分化:有些学校可以提供真实工程训练,有些学校仍然停留在传统课程和孤立项目作业上。 与此同时,原有的理论课也不能丢。AI 时代的理论基础可能更重要,因为只有理解底层机制,人才有能力判断 AI 生成的代码是否可靠。但理论课的教法需要更接近真实工程问题: 算法和数据结构不能只停留在刷题和复杂度分析,还要介入数据的实际组织和维护。操作系统不能只讲进程、线程、虚拟内存和文件系统,还要面对资源争用和系统故障。网络不能只讲TCP/IP和DNS,还要排查超时、重试风暴。体系结构不能只讲pipeline、cache和指令集,还要联系硬件约束,分析代码是计算bound还是吞吐bound。编程语言课也不能只追求语法,而要训练可读性、错误处理、测试、模块化和维护性。 但