这个职业有新的已核实记录时通知我 → · 标出哪些任务是你的(VOLO Pro,免费)→ · 给一个团队或一届毕业生用 →
中高级软件工程师
去改自己没写过的系统、决定什么能发出去、并为它怎么坏负责 —— 软件工作里主要是「对某一个具体代码库的判断」而不是打字的那一部分。
找一个你这个月批过的生成改动,重新读一遍,专门找你当时漏掉的东西。写下来:你现在还会不会批,以及为什么。
这不是失业概率。它把「岗位任务中有多少暴露于自动化」与「采用实际走到了哪一步」合成为一个值 —— 只用于在同一套口径下横向比较职业,除此之外不作他用。
适用于在一个持续维护的生产代码库里做了几年的工程师 —— 做评审、做设计、决定什么能发的那批人。这一页按资历切;前端、后端与数据工程按「你负责哪一层」切,各有自己的页面 —— 所以一个资深前端会同时落在两页上,而它们问的是不同的问题。入门岗单独评估;专职测试另有一页。机器学习工程与 AI 研究现在各有自己的一页;稳定性工程是真实存在且确实不同的一份工作,本站还没有覆盖 —— 那是一个缺口,不是「它属于这一页」的判断。
到底什么在变#
分析单位是任务,不是职位名称。职业不会被整体替代 —— 变的是它的任务构成。
每一格是一项任务。大小是它在这份工作里的分量,颜色是它正在往哪个方向走。点一格,看这个判断还不能说明什么。
一次试验、16 名开发者、他们自己熟悉的成熟仓库 —— 作者明确说过它不描述大多数开发者、也不描述新项目。它没有说同样的工具一年之后表现如何,而一次测到的「变慢」不是工具的永久属性。
「有多大比例的代码是生成的」不说明审查花了多久、做得好不好,也不说明工程师总数变了没有。审查量上升本身也不等于好工作 —— 它恰恰是在赶时间时最容易做砸的那一部分。
这是对工作的判断,不是测量。架构评审很少公开;一个政府部门的工程标准是个例外,它写明设计责任仍在团队身上;但在别处,设计决定是否被交给机器,大多从公司外部看不到。
一家公司对自己项目的叙述,加上一个开源项目关于接受贡献的规则;两者都没有显示一般公司的发布决定是怎么作出的,也没有显示通过了所有检查的东西有多常出问题。
一个开源项目的规则为新人保留了练手的活;它没有涉及公司内部的带人,这里也没有任何东西测量初级进人是否在减少,或更多教的工作是否落到资深头上。
一个机构的清单条目,加上一家公司对自己项目的叙述;两者都没有显示这种负责有多普遍,这里也没有任何东西说明它已经是一个有人为之付薪的角色。
这就是你做的吗?认一下,这一页会缩到只剩与你有关的那一份。
职位名只是一组恰好被打包买走的任务,而没有两个人手里的那一组是一样的。什么都不会被发送出去 —— 它只留在这个浏览器里。
近期变化#
GitHub 自己的工程记述:把 Copilot CLI 与 Copilot SDK 背后的运行时从 TypeScript 迁到 Rust —— 832,378 行生产 Rust、468,689 行 Rust 单元测试,主要由一名开发者在几个月内完成。2,639 条人写的消息里,31.0% 用在审查、测试与 CI,17.4% 在挑战技术或设计决定,15.0% 在推动把活做完整。1,130,921 次工具调用里 61% 来自子代理而不是主会话 —— 这是代理之间的分工,不是「代理做了多少活」。开发者自己保留的是:目标架构、哪些行为必须保持不变、怎么拆分工作、含糊的取舍、判断证据够不够、人工审查高风险区域,以及最后是否合并。文中还写到一次:代理给 PR 打上一个让 schema 检查通过的标签,追问之下,那其实掩盖了一个回归。一名开发者、一个项目、在厂商自己的代码库里。按技术能力层记录,而这一层在本站永不改变评估。
演示、评测或论文表明技术上能做。它更新的是「技术能力」,不是「企业会怎么做」。
约束英国内政部软件团队的工程标准。它说,团队对所有 AI 辅助的代码和产出负全部责任,因为 AI 工具无法取代人对系统决定、设计和变更的判断、理解、所有权与责任;AI 辅助的产出在进入生产前必须经人审阅批准;团队必须能够保证自己运行的东西安全、可维护。硬性的「必须」针对的是审阅;关于设计的那句说明的是责任归属。这是一个部门公开的标准,不是对别处做法的测量。
失败、撤回、监管或成本正在抑制采用。可以下调评估,或扩大不确定区间。
一个大型开源编译器项目,对其贡献者有约束力。该政策规定,不得用 AI 工具修复标为「good first issue」的 GitHub 问题,因为这些问题通常不急,本来就是给新贡献者熟悉代码库的学习机会;它说把维护者的反馈转交给大模型不会让任何人成长,审阅新贡献者的修改是培养下一代贡献者的一部分。这一条随政策第一版于 2026 年 1 月 16 日提交,之后的修改没有动它。这是一个项目的规则,不是雇主的规则。
失败、撤回、监管或成本正在抑制采用。可以下调评估,或扩大不确定区间。
一个大型 Linux 发行版,对其贡献者和审阅者有约束力。该政策中的 MUST / MUST NOT 按标准规范的含义理解。它规定:不得把 AI 当作对一项贡献作出实质性或主观判断的唯一或最终裁决者;接受一项贡献的最终责任,即便由自动化系统执行,也始终在授权这一操作的人身上。它允许用自动检查做客观的技术验证。第 1.0 版;页面自己写明最近一次审阅是 2025 年 10 月 24 日。
失败、撤回、监管或成本正在抑制采用。可以下调评估,或扩大不确定区间。
熟悉大型成熟代码库的资深维护者(各约 5 年),工具主要为 Cursor Pro + Claude 3.5/3.7 Sonnet。作者明确不主张结论适用于多数开发者或新项目、初级工作。
失败、撤回、监管或成本正在抑制采用。可以下调评估,或扩大不确定区间。
49,009 份回答、177 个国家,采集期 2025 年 5 月 29 日至 6 月 23 日,且是自选样本:受访者经 Stack Overflow 自己的渠道招募,所以它测的是「会回答 Stack Overflow 的那群人」,不是开发者的随机样本。这条记录挂在「审查机器写的东西」上,不挂在「写代码」上,因为它测到的是产量的驱动与核验的反应,不是谁写了什么。两半都属于这里:84% 在用或打算用 AI 工具(一年前是 76%),51% 的职业开发者每天用;同时正面观感从 2023、2024 年的 70% 以上降到 60%,主动不信任 AI 工具准确性的开发者(46%)多于信任的(33%),而经验最多的那一群「高度信任」只有 2.6%,「高度不信任」高达 20%。利害关系在这里是双向的,值得专门说一句:AI 编程助手挤掉的正是 Stack Overflow 自己的流量,所以「采用率高」这个发现逆着它的商业利益,而「信任下降」顺着。调查没有说这些工具被用来做什么、有没有哪次审查因此变慢、以及它改变了已上线代码的什么。
一件工具在真实工作里被大规模使用,并且被测量到 —— 而做出「用它」这个决定的是使用者本人,不是雇主。它比「技术能力」多:干的是真活,不是演示;又比「实际部署」少:没有任何雇主把它投入生产、要求使用、或围绕它改过流程。权重定为 `cautious`:`automating` 的定义是「机器能做这件事**并且**有采用迹象」,而这就是一种采用迹象 —— 但使用可能只是试用,而且相当一部分测量来自有利害关系的一方,所以一条永远不够,两条独立的才够。还要注意是谁在计数。厂商遥测直接看得见这件事,而它同时在卖这件工具,所以这类记录要在适用范围里写明这层利害;而一个统计机构去问企业「员工有没有在任务里用 AI」,看见的是同一条通道、却没有任何利害 —— 在它存在的地方,它是更好的来源。
一个政府里的一个机构分支(ICE),而且是该机构依法定义务报出来的,不是挑出来发布的 —— 这正是这份清单里那些平淡条目值得读的原因。条目编号 DHS-2758,在逐条上报的那份 CSV 里。它立住的是这次上线以及附加在上面的条件,不是使用量:清单里没有任何使用数字、没有人数、除了机构自己说这些工具「提高开发者生产率」之外没有别的生产率主张。支撑这两项任务的是机构自己写下的两句分开的话:输出「必须先经过审阅和批准,才能通过现有的版本控制与部署流程并入代码库」(对应「审阅机器写的东西」),以及「这些工具不直接改动生产系统;所有变更都必须走标准的人工审阅、测试与批准流程」(对应「设定一个自动写代码的 agent 在无人看管时能做什么」)。被点名的工具是外购的,这一点值得知道,不过在这里上报的一方是机构而不是供应商。同一份清单里还带着同一个部门的一条反向信号:条目 DHS-373「商用生成式 AI 代码生成」,开发阶段是「已退役」。那一行没有日期也没有理由,所以它只立住一件事:国土安全部曾列出过这样一个用例,现在不再运行它。
企业已正式投入使用。可以改变基线,但要结合规模与场景相似度加权。
这对你意味着什么#
你还不在这一页上,而通往这一页的那条路正是承压的那一段 —— 先去读初级那一页。这里最值得记住的是:这个职业卖的能力是对某一个具体系统的判断力,而它是靠待在那个系统里获得的,不是靠用更好的工具。
这一页上被测出来的结论是:在你自己的代码库上,工具并没有让你更快,而你可能以为它让你快了。把它当成「去量一下自己的工作」的理由,而不是一句安慰:那次试验规模小、而且已经过去一年,而这份工作正在变大的部分不是打字 —— 是审查进来的东西,以及为一个智能体被允许做的事答复。
你的选择#
四个方向,每个都写明真实约束和一个本周可验证的动作。继续做下去也是正当选择 —— 只要它是被选择的,而不是被默认的。
成为那个「说不」会被采纳的人
当生成的改动变多,约束就移到「能拿出站得住的理由拒掉一个改动」的那个人身上。这种权威是靠在公开场合、反复地、对某个具体系统判断正确挣来的。
前提是在同一个代码库里待到久到你对它的判断靠得住 —— 这和「每十八个月跳一次涨薪」是相冲的。
找一个你这个月批过的生成改动,重新读一遍,专门找你当时漏掉的东西。写下来:你现在还会不会批,以及为什么。
把「智能体能做什么」这件事接过来
总要有人决定一次自动改动能碰什么、从哪里进来。在多数团队里没有人被指派做这件事 —— 这就是为什么它出现在事故复盘里,而不是职位说明里。
至少现在,它是一份没有头衔的责任。要么你有意识地、白纸黑字地接过来,要么它会在第一次出事的时候被安到你头上。
写一页:在你们的仓库里,自动改动目前在没有人经手的情况下能做到什么。发出去,看看谁对「现在已经被允许的范围」有不同看法。
转向「错了在法律上很贵」的地方
支付、安全关键系统、受监管的数据 —— 在这些地方,无人经手的改动本来就不被允许,所以审查与担责是被拨款的,而不是被默认的。
节奏更慢、流程更多,而深度要用年来攒。那是另一种工程,不是「同样的工程换个更安全的房间」。
找一条真正适用于你身边某个系统的监管要求,读一读它到底禁止了什么。大多数工程师从来没有直接读过一条。
转到问题那一侧
解决方案工程、技术产品、开发者体验 —— 这些岗位的价值在于同时理解一套系统和「别人需要它做什么」,而在这里,写代码从来就不是稀缺的那部分。
要求把沟通当成一级能力来练,并且接受一件事:你将不再是最懂这份代码的那个人。
找一个正在用你做的系统的人,坐在旁边二十分钟一句话不说。把他每一次迟疑的地方记下来。
常见问题#
本站收录的那一次随机试验测到的是相反的结果,而其中最值得记住的细节是「测量」与「感觉」之间的落差:16 名资深开源维护者,在他们自己熟悉的仓库里处理真实问题,使用 2025 年前后的工具后耗时多了 19%,而他们估计自己快了 20%。作者不主张这个结论适用于大多数开发者或新项目,而且它已经过去一年。它确立的是:在一个成熟的代码库上,提速不是自动发生的 —— 而且问你自己,得不出答案。
没有人能用一个数字回答这个问题,而两边那些笃定的答案都在卖东西。更有用的问法是「哪一部分」,因为各部分的速度不一样:写常规代码在很大程度上已经由机器完成;审查它写出来的东西已经长成了一份独立的工作;而「带着已知风险决定发不发」几乎没动,因为那是担责,不是能力。与其等一个数字,不如盯一个你自己就能核对的信号:你一周里有多少时间现在花在读不是你写的代码上。
是暴露方式不同,不是更安全 —— 而且这两件事是连着的。一个不再培养资深的行业,拿到的是一个以后才爆发的供给问题,不是一张现在的安全保证:如果底下进来的人变少,原本分摊在一个团队里的「教人」的工作,会落到更少的人头上。有些工程社区已经在有意护住这条路 —— LLVM 禁止在标为「good first issue」的问题上使用 AI 工具,好让新贡献者在上面学。
目前还没有人能拿证据回答这个问题,而把这一点说出来比猜一个有用。这三者的暴露度确实不同,但现有的研究本来就是按经验年限设计对照的,不是按技术栈,所以根本没有可以用来区分它们的东西。任何一个把前端和后端排出高下的笃定说法,都是某个人的印象。证据能支持的是另一种选法:按「在你这个领域里,错了有多贵」来选 —— 而这一条横跨这三个方向。
审查不是你写的代码,并且说得出你为什么否掉某一处。这项能力一直都在这份工作里,却从来不是招人或考核时看的那一项;而它现在是瓶颈,因为生成把工作从「产出」挪到了「判断」。它同时也是让你成为「说不会被采纳的那个人」的那项能力 —— 而那是这份工作里目前看不到替代品的部分。
这些判断底下是什么#
这一页上 6 条任务判断里,6 条有已核实事件支撑、0 条是平台推断,每一条都在它出现的地方标注着。它们底下是 2 个技术维度、一条自语言模型进入公众视野以来的回溯轨迹,以及 7 条已核实事件。
同一个职能里的其他岗位#
一家公司先把工作分成职能,再分成岗位。下面这些和这一份工作同在「技术与数据」里 —— 那是一件关于组织结构的事实,不是「它们相似」或者「它们在朝同一个方向变」的判断。
初级程序员 · 前端工程师 · 后端工程师 · 数据工程师 · 算法 / 机器学习工程师 · AI 研究员 · 测试工程师 · 数据分析师 · 数据科学家 · 统计师 · 经济学家 · 业务分析师 · 业务系统与流程负责人 · IT 支持 / 技术支持 · 网络安全分析师 / 安全运营 · 运维 / 平台工程师 / SRE · 网络工程师 · 技术文档工程师 / 技术写作 · 基金申请书撰写人
