ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI编程工具会替代软件工程师吗?技术判断与应对策略

AI编程工具会替代软件工程师吗?技术判断与应对策略

最近有个说法在程序员的聊天群里被反复转发:距离 AI 替代软件工程师,可能只剩下 6 到 12 个月。这句话出自某头部AI实验室CEO的一次访谈。很多人看完的第一反应是焦虑,第二反应是怀疑,第三反应是跑来问我怎么看。我在一线写代码和带项目十几年,经历过好几次"某某技术要取代程序员"的浪潮,但这次确实有点不一样——AI 不再只是帮你补全代码,而是开始自己定义任务、自己执行、自己交付。

这篇文章不打算贩卖焦虑,也不打算灌鸡汤。我想用一次真实的测试、几个项目现场片段和这些年带团队的经验,聊聊这个预测到底哪部分靠谱、哪部分是话术,以及我们这些靠写代码吃饭的人接下来到底该做点什么。

1. 一句"6 到 12 个月",为什么让整个行业不淡定了

1.1 这个数字是怎么传出来的,以及它原本的语境

我先去翻了那个访谈的原始信息源。说实话,能找到的只是一段科技媒体的文字摘录,不是完整视频,所以原话语境被压缩得很厉害。标题里那句"距离 AI 替代软件工程师可能只剩 6 到 12 个月",在原始访谈里的完整逻辑其实是带着前提的:如果 AI 能在一个端到端的软件工程流程里稳定完成编码、测试、修复、交付,那么这个时间线可能是 6 到 12 个月;如果只是说"工具能辅助工程师",那时间线完全不同。

这个前提相当要命。你把它拆开看,其实是在说"当 AI 具备完整执行软件交付闭环的能力时,替代才开始发生",而不是"下个月大家就全部失业"。但摘录转发的过程中,前半句被丢掉了,后半句被放大成了一句预言。这就是为什么你要对任何一个简洁有力的行业判断保持警惕:它可能是真的,但它的"真实"往往藏在一大堆条件句里。

1.2 说这话的人,自己就是赛场上的一员

另一个不太容易被注意到的点是,发布这个预测的机构本身就是做 AI 工具和模型的。市场上有一个普遍规律:卖工具的人会把工具的边界说得更乐观,因为这直接关系到融资、客户信心和市场预期。我不认为他们在撒谎,但一个 CEO 对自家技术路线的判断,天然带有"我认为这件事很有希望"的倾向性。

上次我参加一个闭门技术交流会,某同行说过一句话我记到现在:判断一个技术趋势,别只听制造趋势的人怎么说,要多听真正在产线上用这个技术的人怎么说。这句话在 AI 这件事上特别适用。所以我在过去一个月里没怎么刷新闻,而是自己上手做了一轮相对严格的测试——用 AI 编程工具处理手头的真实任务。

2. 我用一周真实项目测试了 AI 编程,结论没那么简单

2.1 测试的边界设计:我把什么任务丢给了 AI

为了不空谈,我给自己定了一个测试规则:未来一周,凡是能够明确描述输入输出、有清晰验收标准、且不涉及敏感业务数据的编码任务,全部都先交给 AI 编程工具处理一遍,然后我再人工走查、修改、合并。我挑的是手头一个后台管理系统的迭代:要加一个报表模块,包括数据聚合接口、前端筛选交互、导出功能,还要调整三处老接口的返回结构。

这个任务量不算大,但它覆盖了软件工程里常见的三类工作:写新功能、改旧逻辑、联调前后端。我用的就是目前市面上主流的 AI 编程工具,没有做任何特殊配置,直接把任务描述、项目结构和相关代码片段喂进去。

2.2 两个让我觉得"接近了"的场景

第一个让我觉得"快被替代了"的场景,是生成数据聚合接口。AI 在我给出了表结构和需要的字段映射之后,十几秒就写出了完整的聚合查询,包括分组条件、状态过滤、分页参数,甚至自动加了索引提示。我检查了一遍,逻辑基本正确,只需要改两处命名不规范的变量。这个过程如果我自己写,大概需要二十分钟到半小时。

第二个场景是前端筛选交互。我把现有的表格组件代码贴给它,说"增加一个时间范围筛选和一个状态多选下拉",它给出的改动覆盖了组件 props、内部 state、请求参数拼接,连重置按钮的逻辑都一并处理了。最让我意外的是它还顺手处理了一个边界条件:当筛选条件全部清空时,默认查最近七天的数据。这个细节我没写进需求里,它像是从上下文推断出来的。

这两个场景叠加起来,确实会让人产生一种感觉:如果再给它半年到一年,它是不是真能独立把一个小功能做完?

2.3 一个让我立刻冷静下来的场景

真正让我冷静下来的是第三个任务:调整三处老接口的返回结构。这些接口是三年前写的,没有单元测试,调用方有五个不同模块,而且其中两个调用方已经没人维护了。我告诉 AI 需要把字段从status改成state,并把错误码从数字改成字符串枚举。

AI 给出的方案非常"标准":直接改接口返回体,然后全局搜索所有调用点,批量替换。这个方案在教科书上完全正确,在真实环境里会出事。因为有一个老模块会把status当作数字做比较运算,换成字符串枚举之后,运行时类型不匹配,而这个模块没有自动化测试覆盖,只能靠手工回归。AI 感知不到这些隐性依赖,它只能看到代码库里的显式引用,看不到团队记忆里的那些"历史债"。

我最后花了两个多小时重新手工调整改法,并且给那两个无人维护的调用方单独写了兼容层。这件事让我意识到:AI 的短板不在于"写不出代码",而在于它对这个系统的"为什么是这样"没有感知。

2.4 为什么"能跑"和"能交付"隔着一条大江

这一周的测试下来,我形成了一个比较清晰的判断:AI 在"把一个明确任务执行出来"这件事上,已经接近甚至局部超过初级工程师的水平;但在"决定这个任务到底该不该这么做、这么做会不会碰坏别的东西、做完之后谁负责长期维护"这些事情上,它还远不够格。

"能跑"和"能交付"之间隔着一条大江。大江的名字叫责任。一个软件功能从能在本地跑通,到能上生产环境稳定服务几千个用户,中间要经历代码审查、兼容性评估、异常路径测试、上线回滚预案、监控告警配置。这些环节看起来不像"写代码",但恰恰是它们构成了软件工程这个职业的绝大部分价值。

3. 软件工程师真正难替代的,是三件"写代码之外"的事

3.1 第一件:把人的含糊需求翻译成机器的精确规格

如果你跟业务方开过需求会,你一定会懂我说的是什么。业务方说"这个列表要好看一点",AI 永远没法把"好看一点"翻译成栅格间距、字体层级、空状态设计;业务方说"这个功能要快",AI 不知道"快"是指接口响应低于 200 毫秒,还是用户感知上不卡顿。产品经理的角色在中间做了一层翻译,但真正落到技术方案时,工程师还得再翻译一层。

我见过太多 AI 生成的代码是"需求直译":需求说加一个导出按钮,它就加一个导出按钮,逻辑是前端把当前表格数据转成 CSV 直接下载。可现实需求往往是:导出要跑异步任务、要带上筛选条件、要给大文件分片、要控制导出权限。这些约束散落在会议纪要、群聊天记录和个人经验里,根本不在需求文档上。能把这些碎片信息组装成一个完整技术方案的能力,我把它叫做"需求考古能力",这是 AI 目前完全不具备的。

3.2 第二件:在信息残缺时做决策

生产环境出了故障,告警页面上一片红,日志文件堆成山,业务方在群里疯狂艾特你。这时候没有完整信息,没有清晰的下一步指引,你能依靠的只有对系统的整体理解和一点直觉。AI 在这种场景下能做的是:帮助你快速聚合日志、给出可能的原因列表、甚至生成一段排查用的临时脚本。但最后拍板"先回滚版本还是先扩容量"的,仍然是人。

因为在故障现场,决策的代价极高:选错了,用户影响时间拉长,责任要有人承担。AI 可以给出概率最高的原因,但它没法为这个判断负责。负责任这件事,看起来跟技术无关,实际上是软件工程职业存在的基石。只要系统还需要有人为它兜底,软件工程师这个岗位就不会被真正替代,只会被重新定义。

3.3 第三件:为十年后的维护者留后路

代码写出来,是给未来的自己和其他维护者看的。我在 Code Review 里经常提的几条意见——命名要表意、函数不要太长、复杂逻辑要写注释——本质上都不是为了让"今天能跑",而是为了让"三年后还能改"。AI 生成的代码有一个共同特征:它能做到结构工整、命名合理,但它不理解"这段代码在这个团队里有特殊含义"。

举个例子,有些模块里的注释离谱到像是历史文物:"不要动这个函数,动了财务结算会出错,原因未知"。AI 读到这里通常会认为这是无效信息,重构时直接删掉。但老工程师看到这种注释会立刻警觉,去找原作者确认。这种基于团队记忆的判断力,不写在任何代码库里。它需要在真实项目里一年一年泡出来,没法靠训练数据获得。

4. 6 到 12 个月里,哪些岗位会先被重新定价

4.1 最快被重估的三类工作:装配工、翻译工、测试工

如果"6 到 12 个月"这个预测要部分成真,最先感受到冲击的一定不是所有工程师,而是三类工作内容偏向重复的岗位。

第一类是"代码装配工"型,主要工作是按固定模板增删改查、写表单页面、封装接口调用。第二类是"代码翻译工"型,主要工作是把产品原型翻译成前端代码,把接口文档翻译成后端实现。第三类是"重复测试工"型,主要工作是按脚本执行回归用例、手工验证边界条件。

这三类工作的共同点是:输入输出都非常明确,验收标准几乎可以枚举。而 AI 最擅长的恰恰就是这一类任务。我认识一个带外包团队的朋友,他说最近接的一个前端页面项目,三个人干了两周的活,他用 AI 工具两天就做完了初版,剩下时间全在调样式细节。这不是个例,而是成本结构正在被改变的信号。

4.2 反而更值钱的两种角色:质量守门员和领域架构师

跟上面三类形成鲜明对照的,是两类角色的价值正在上升。

第一类是"质量守门员"。AI 产出的代码量会暴增,但质量参差不齐,谁来决定一份 AI 生成的代码能不能合入主干?谁来判断它有没有踩中公司特有的技术债雷区?这个角色的核心能力不是写代码,而是审查代码、评估风险、建立自动化防线。以前每个工程师都在写代码的同时顺带做质量把控,以后这个职能会越来越独立、越来越专业化。

第二类是"领域架构师"。他们不需要写很多代码,但他们清楚一个复杂系统的全貌:哪些模块能改、哪些模块不能碰、数据怎么流转、未来怎么扩展。AI 可以生成单个模块的实现,但没法把一个单体老系统平滑地拆成微服务,没法在预算和时间的约束下决定"今年先重构哪一块"。这种判断力完全是经验密集型,数据量再大的 AI 模型也很难从代码库里自学到。

4.3 一个可观察的指标:招聘 JD 的变化

别信新闻标题,要看招聘 JD。我最近观察了几个技术社群的招聘帖子,出现了一个明显的趋势:初级"纯编码"岗位明显减少,但"懂 AI 工具、能做代码审查、能定义质量标准"的岗位画像在增加。JD 里很常见的要求是"熟悉主流 AI 编程工具,并能在团队内推广最佳实践"。

这说明市场本身也在重新定价:编码动作在贬值,判断和决策在升值。这个结论比"AI 是否会替代软件工程师"更值得你关注,因为它直接影响你接下来半年该学什么、该把精力放在哪里。

5. 我的应对清单:把 AI 当成"过度自信的新同事"来管理

5.1 习惯一:每周保留两小时手写核心代码

很多人问我,既然 AI 写代码这么快,是不是可以彻底放手了。我的回答是:工具越爽,手感越容易退化。手写代码看起来是"慢功夫",但它其实是在保持你对代码的敏感度。就像老司机也要偶尔开手动挡,不是为了快,是为了保持对车辆的体感。

我每个星期会挑一段核心逻辑,关掉 AI 辅助,从零开始写一遍。这段代码不一定是新功能,可以是把一个复杂函数按新思路重写。这么做的一个直接收益是,当 AI 生成的代码有问题时,你能更快地嗅到异常。如果你已经完全看不懂代码细节了,你连审查它的资格都没有。

5.2 习惯二:把"AI 代码走查"变成固定流程

以前 Code Review 是看人写的代码,现在要额外加一道工序:AI 代码走查。我的做法是,AI 生成代码之后,我会专门检查以下这几项:

  • 它有没有凭空发明不存在的库和 API?
  • 它对边界条件的处理是不是"看起来很周到但实际没覆盖"?
  • 它有没有引入不必要的依赖和重复逻辑?
  • 它的改动范围是不是超出了我原本要求的边界?
  • 它有没有处理好错误路径,还是只写了 happy path?

这五条检查项看着简单,实际每个都能救你一次。我在测试周里就抓到一个案例:AI 为了处理空值,自动引入了一个三方工具库,而整个项目一直用的是团队自研的判空函数。这种"贴心"改动如果没人拦下来,就会造成依赖冗余和风格分裂。

5.3 习惯三:业务理解优先于技术炫技

现在的工程师有一个很危险的倾向:太在意技术选型的新潮,太不关心业务到底在解决什么问题。AI 来了之后,这种倾向会更危险。因为如果你对业务的理解不够深,AI 给出的方案看起来就足够好了——反正都实现不了业务的真实意图,区别只在于哪个方案错得更离谱。

我开始要求团队里的每个工程师回答三个问题:这个功能给谁用?他现在的痛点是什么?我们的方案为什么比其他方案更合适?这三个问题与代码无关,但答不上来的人,写出来的只是语法正确的废品。AI 可以帮你写代码,但帮你不了你理解业务,至少目前是这样。

5.4 习惯四:给自己设置一个"无 AI 日"

每个月我会选一天,只用最朴素的编辑器写代码,不调用任何 AI 辅助。这一天不是用来怀旧的,而是用来做"基线校准"的:亲手做一遍日常任务,才能直观感受 AI 带来的效率提升到底在哪里,也才能感受到没有 AI 时哪些环节是最痛苦的。

这种做法还有一个隐藏价值:它能让你在团队讨论"哪些任务可以交给 AI"时给出有根据的判断,而不是人云亦云。你亲身体验过没有 AI 的基线,才知道 AI 的边界在哪儿。

6. 这不是淘汰赛,更像一次大浪淘沙式的分级

6.1 替代是梯度发生的,不是一夜清零

回来看那个"6 到 12 个月"的预测,我的判断是:它给出的时间线大概率过于乐观,但方向基本准确。AI 对软件工程行业的冲击不会是悬崖式的一夜清零,而是梯度的、分层的、由边缘向中心渗透的过程。先被改变的是工作方式,然后才是岗位结构。

六到十二个月里真正会发生的是:更多团队会把 AI 编程助手纳入标准工具链,初级岗位的招聘门槛会被拉高,独立负责一个完整模块的机会变少,但与此同时,能驾驭 AI 的工程师会成为团队里效率最高的人。这个过程更像行业内部的一次大浪淘沙,把"只会写代码"的人筛出来,把"会写代码、更懂业务、能管质量"的人留下来。

6.2 工程师这个头衔不会消失,但它的能力边界会被重画

十几年前做网页需要手工切图、写表格布局,后来可视化工具出来,很多人说前端要消失了。结果是前端没有消失,而是变成了一个更强调交互、性能、工程化的复杂职业。AI 编程工具也一样,它会把大量低端编码任务吸走,但也会把工程师这顶帽子的重心推向更上游。

未来的软件工程师,可能更像一个"技术产品经理 + 质量负责人 + 领域专家"的混合体。写完代码只是起点,设计约束、评估风险、权衡取舍、解决未知问题,才是这个职业不可替代的内核。你如果现在只把眼光盯在语法和 API 上,确实会焦虑;如果把眼光放在问题定义和系统决策上,你会看到一大片还没被 AI 占领的空间。

6.3 我给自己定的三条底线

最后分享一个我自己的小实践吧。预测这个东西,听听就好,但应对策略得落到习惯里。我给自己定了三条底线:第一,坚持手写核心代码,保持对代码的敏感度;第二,坚持做 AI 输出的最终把关人,任何时候不在没有审查的情况下合入 AI 代码;第三,坚持深入业务现场,每周至少跟产品、运营、客户聊一次真实使用场景。

三条底线都不性感,但都很务实。AI 工具大概率会越来越强,预测会说"六个月替代"还是"两年替代"也不重要,重要的是你的能力结构里有没有那些 AI 拿不走的部分。代码会贬值,判断力不会;效率会通胀,责任感不会。这行饭要吃下去,靠的不是跟 AI 比写代码的速度,而是比谁更懂"这个系统为什么要存在"。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进