自打这个标题挂上热榜之后,不少朋友转给我看,问我的第一句话几乎一样:“这事是真的假的?程序员是不是真到头了?”我一开始也以为又是哪个自媒体拿旧闻翻炒,结果顺着公开信息扒了一圈才发现,引起轩然大波的核心不是某个大厂裁员通知,而是一篇关于开发模式与组织效率的博客内容,在行业讨论中被持续放大之后,资本市场的反应比技术圈激烈得多。IBM的股价在当天出现明显异动,市值蒸发超过三百亿美元,这件事本身就是个非常值得玩味的信号。
一篇博客就能让大象级公司掉血三百亿,看起来像段子,但背后透出来的是整个市场对“AI能不能把程序员批量干掉”这个问题的极度敏感。只要出现一点貌似权威的声音说“开发要变天了”,资金会立刻用脚投票。这种情绪不是空穴来风,但也远没有到让程序员集体转行的程度。今天我打算把这个话题拆开聊:AI到底动了程序员的哪块蛋糕,哪些护城河真的在被清零,哪些能力反而在涨价,以及身处行业里的你我现在应该怎么调整自己的技能组合。
1. 一篇博客引发的三百亿蒸发:恐慌是怎么被层层放大的
1.1 从博客到股价:一条离谱但真实的传导链
我特意花时间捋了一下这个事件的传导逻辑。最初引起争议的是一篇讨论“传统研发模式即将被AI原生开发方式冲击”的博客,里面的核心观点是说现在的AI编程工具已经能完成大量初级编码、自动化测试和文档生成工作,软件开发的组织形态会发生变化,一些过去必须依赖人海战术的环节会被压缩。
这个观点本身在技术圈里谈不上新鲜。过去两年,GitHub Copilot、文心快码、CodeGeeX、通义灵码这些AI编程助手我一直在用,Cursor更是成了很多团队的标配。真正让这个事件升级的,是随后出现的一批“二传手”解读:把“开发模式变化”翻译成“IBM要不养程序员了”,再通过财经自媒体一顿情绪化加工,最后变成一条看起来像官方口径的“IBM放弃大量研发岗位”的传闻。
于是整个传导链完全成型:博客提出“AI改变软件开发模式” -> 二次解读变成“某大厂要结构性削减程序员” -> 市场联想到AI替代逻辑 -> 资金快速撤离 -> 股价大跌。这中间没有哪个环节在造假,但每个环节都在放大。资本市场上真正交易的不是那个事实本身,而是市场对事实的“第一反应”。
一件值得所有从业者留意的事是:市值蒸发三百亿美元这种量级的变化,背后未必有等量齐观的基本面恶化,更多是情绪踩踏。IBM这棵大树如果真因为一篇博客就能被伤筋动骨,那说明市场对AI冲击旧有商业模式的定价已经到了风声鹤唳的阶段。
1.2 为什么所有风吹草动都容易被套上“程序员末日”的壳
从我观察到的现象看,这两年AI领域的每一次技术突破,都会被迅速翻译成“XX行业要完了”的叙事。尤其针对程序员,这个叙事的受众面极广,因为互联网行业本身就聚集了大量高薪技术人群,吃瓜群众爱看“高薪精英被技术反噬”的戏码,焦虑中的从业者则会被不断推送类似内容,形成自我强化。
这里其实有个认知陷阱在作祟:大家把“编程”和“用代码解决问题”划了等号。如果AI真的能做到后者,那确实意味着程序员的雇佣价值趋近于零。但问题是,现在AI工具所做到的仍然是前者——它擅长的是“把已经明确的需求快速转成代码”“在已知模式里找答案”“根据测试反馈修bug”,而不是“在充满歧义、约束条件相互冲突的真实业务里,替人类判断到底该做什么”。
我打个比方,AI编程工具更像一个速度极快、知识面极广的实习程序员,你给它清晰指令,它执行得有模有样;但如果你把一个“客户希望系统变快,但具体说不清哪里慢”、“老板要求安全等级又要兼顾员工便利”这样的模糊问题抛给它,它大概率会给你一本正经地生造一个方案。这种时候,真正干活的人是需要承担责任的,而AI生成的代码越多,责任密集度就越高。
2. 被AI“清零”的护城河:哪些能力确实在快速贬值
2.1 重复性编码正在从技能变成成本
如果把时间轴拉回到2015年,一个能熟练写Spring Boot CRUD接口、会搭SSH框架、能把页面增删改查写得不出bug的程序员,在市场上确实值一份不错的薪水。那个年代的编程门槛主要在“记忆”和“熟练度”:需要记住框架的API、理解配置项的作用、知道常见的三层架构怎么写。
但现在你让AI帮你生成一个标准的RESTful接口,它能在几秒钟之内产出结构完整的代码,包括参数校验、异常处理、日志埋点。我再也不用翻文档查某个注解到底怎么拼。企业雇佣一个程序员来做这类工作的边际价值只会越来越低,因为当同类技能可以被工具以极低成本规模化复制时,你的个人产能必须建立在你对工具的使用水平之上,而不是建立在你会手写多少行代码上。
说白了,在过去,会写代码是一个职业的护城河本身;在今天,会写代码只是入场券。大家接受这一点的时间比想象中要快得多——我身边不少朋友去年还在说“Copilot写的东西没法看”,今年已经默认新项目一上来就把AI助手接好,工作流完全变了。
2.2 “搜索引擎+翻文档”式的求知方式正在被会话式问答取代
另一种正在被快速清零的能力是“快速找到信息并手抄进项目”的功夫。以前遇到一个不熟悉的库,合理的做法是打开搜索引擎,找到对应的官方文档,翻示例代码,自己拼出一个能跑的demo。这个流程非常耗时,也非常考验信息检索能力和文档阅读理解能力。
现在不一样了。像Claude、GPT这类大语言模型,训练语料里包含了海量开源项目和框架文档,你几乎可以把它当成一本“活文档”来用:告诉它“我要用某个库实现什么功能”,它直接给你完整代码;跑出来报错了,把报错信息粘给它,它给你分析可能的原因并给出修复建议。这个流程把过去“找资料半小时、写demo一小时”的体验压缩成了“对话两分钟、测试两分钟”。
我并不是说这种能力没用了,而是说它的门槛已经大幅降低。过去检索能力强的程序员能省下团队大量时间,是一项显性优势;如今这项优势的平均水位被AI拉高了一大截,就像人人都发了一把铲子之后,单纯“挖得快”已经不成其为核心竞争力。
2.3 初级测试与文档产出:最早被替代的事务型工作
在我接触的团队里,最先大规模用AI替代的既不是编码也不是架构设计,而是“解释代码给新人听、补测试用例、写接口文档”这类支持性工作。前两年我们团队落地一个跨部门交接项目时,光是整理存量系统的接口文档就耗费了两个人两周时间。今年类似的活,我让AI直接扫描代码仓库,自动生成接口说明、参数含义、调用示例,准确率虽不至于百分百,但能覆盖八成以上,人工只需要做一次复核。
单元测试同样如此。过去写有效覆盖率的单测是公认的体力活,现在让AI基于既有方法签名和业务规则生成测试骨架,再人工补充边界条件,效率提升是数量级的。这种工作非常容易被替代,因为它们本质上是“对已有信息的整理和搬运”,不需要面对真实世界的不确定性。
这也是为什么很多大厂在引入AI开发工具之后,第一轮调整往往不是裁掉高级工程师,而是缩减初级开发岗位和测试团队的招聘量。不是新人不够努力,而是他们入门期干的活,撞上了AI最擅长的区域。
3. 我实测下来的边界:AI编码工具在哪些场景会翻车
3.1 老系统重构:AI拆不开十年前的“屎山”
AI编程工具在能力边界上的软肋,我几乎是踩了个遍才摸清的。首先要泼冷水的场景就是老系统重构。我手上有一个维护了快八年的交易系统,里面有不少模块是几任团队接力写出来的,有的连原作者都离职了。代码里充斥着历史遗留的“魔法数字”、隐式状态、全局单例、多层回调嵌套。
我试着用AI工具去做模块拆分分析,结果相当难受。AI能准确地指出“这个类过长,应该拆开”,但当它尝试给出拆分方案时,经常忽略掉一些运行时才出现的耦合逻辑——比如某个字段在某处被反射赋值、某个静态方法被子类悄悄复用。它基于统计规律给出的“最合理”方案,在这种充满异常逻辑的老系统里,往往最不合理。
新项目里的代码语法规则统一、命名规范、结构清晰,AI读起来毫无障碍;但老系统恰恰相反,它充满了人类为了赶工期做出的各种妥协,这些妥协在代码里留下的痕迹,AI没办法从上下文里读懂。真正能重构老系统的人,必须对业务脉络心里有数,知道这段丑陋代码当初是为了挡住哪一类线上事故。这个能力,AI短期拍马也赶不上。
3.2 跨模块联调与系统性排障:问题往往不在报错里
AI调试能力的上限,我也反复测试过。在单文件、单模块范围内,AI找bug确实比人强,日报、监控图、日志能汇总分析,能迅速定位到某个异常抛出的来源。可一旦问题出在跨模块联调,尤其是两个团队各维护一个服务、中间隔了消息队列和分布式缓存的时候,AI的局限就出来了。
这种问题的根因往往根本不体现在报错信息里。可能是下游服务在凌晨批量任务时把连接池打满了、可能是某个配置中心的值被运维手动改过、可能是A服务里缓存了一个B服务已经更新的状态,这些信息分散在监控平台、链路追踪、业务日志、甚至某个人的聊天记录里。排查这类问题,需要的是对整个系统架构的全景理解,以及对业务的直觉。
AI现在能做的事,是帮你把链路追踪里的调用关系理顺、把可疑的日志节点标出来,但让它“判断到底是缓存不一致还是消息乱序导致的问题”,它往往只能给出一个概率较高的猜测,而且会因为缺少业务常识而跑偏。打个比方,AI在排障这件事上像是一个熟读维修手册的学徒,一切正常时能按图索骥,但遇到“手册上没写”的组合故障,它就会反复在原地打转。
3.3 需求含混期的架构决策:AI只会给你一个“看起来对”的答案
比技术更让AI无力的,其实是需求本身的不确定。我在带项目的时候,经常要对着完全互相矛盾的需求做取舍:业务方说要“全流程自动化”,但又不愿意改老旧审批流;老板说要“上最新的大模型能力”,但预算只够买几台普通服务器;客户说要“保证数据绝对安全”,又问为什么不能把数据放到公有云上。
这个时候如果去问AI“我该怎么设计系统”,它一定会给你一个均衡、全面、看起来无比合理的方案,仿佛把所有可能性都考虑到了。但恰恰是这样的方案最没有用,因为它回避了那个真正关键的问题——在资源有限、约束冲突的现实情况下,你优先保证什么,牺牲什么,用什么节奏分阶段交付。
这个决策过程依赖的是对业务战略的理解、对团队规模的判断、对协作关系里各方底线的把握。AI可以辅助你穷举选项、评估不同方案的利弊,但最后的责任拍板,它永远无法替你完成。这也是为什么我坚持认为,软件开发的复杂度从来不在“写”上,而在“决定写什么、不写什么”上。
4. 所谓“最后的护城河”到底是什么:从技术到系统的能力迁移
4.1 护城河从来不是某个框架,而是建模真实世界的能力
讨论“程序员护城河”的时候,我发现一个常见的误区:很多人以为护城河是指“掌握某种AI替代不了的编程技术”,比如会底层汇编、会搞编译器、会做分布式系统内核。这种想法把问题局限在了“技术难度”这一个维度。
但从我对身边高水平工程师的观察来看,真正让他们难以被替代的,不是他们用了多高深的技术栈,而是他们能把复杂的真实世界问题拆解成计算机能处理的模型。同一个业务需求,初级工程师看到的是“要加一个状态字段,前端多一个按钮”,高级工程师看到的是“这是一次业务流程的状态机升级,会牵动审批流、权限模型、消息通知、数据报表、审计追溯五个模块的联动”。
这种建模能力背后是对业务的深刻理解,是多年摸爬滚打沉淀下来的领域知识,是“知道什么该自动化、什么该留给人来审批”的分寸感。AI可以把一个已经建模清晰的问题转成代码,但它很难自己从一团迷雾般的业务描述中提炼出实体关系、状态流转和边界条件。
4.2 代码审查与质量底线:有人要对AI的产出负责
当团队开始规模使用AI生成代码之后,一个新的岗位价值变得非常高——代码审查者。这个角色不是传统意义上“看看提交记录”的审阅者,而是要在一个PR里判断:AI生成的那300行代码是否真的符合业务语义,有没有在边界条件下埋下坑,是否与现有架构风格一致,性能隐患藏在哪里。
说白了,AI把写代码的成本打下来了,但把审查代码的责任密度顶上去了。过去一个中级程序员写的代码可能会有不少低级错误,但大家默认人会为自己的代码负责;AI生成的代码出错率不低,用户一旦产生了“AI写的应该没问题”的预期,风险反而更大。那个能在一堆貌似工整的AI代码里挑出逻辑漏洞的人,在团队里的地位只会越来越高。
这就像有了自动辅助驾驶之后,司机这个职业没有消失,但对司机“兜底能力”的要求反而提升了——出事的时候,系统给你递过来一个几乎正确但偶尔抽风的方案,你必须有能力在最后一刻把它掰回正轨。我能看到未来几年,“AI代码交付物审查”会成为系统工程领域的一个正式工种,它的能力要求甚至比亲自编写更高,因为它要求审查者同时理解“业务该怎样”和“模型为什么会这样写”。
4.3 沟通协作与跨角色翻译:最难自动化的人性界面
如果让我选一个未来十年最难被AI替代的程序员能力,我会把票投给“跨角色沟通与翻译能力”。在一个真实的项目环境里,产品经理、运营、设计师、测试、运维、老板,每个人都有自己的信息茧房,而程序员往往是唯一一个同时摸过需求文档、数据库表结构、线上监控告警、用户投诉工单的角色。
项目推进不下去的时候,往往不是技术做不到,而是各角色之间的信息没有同频。优秀的工程师会主动把“技术债务可能导致下周上线延期”翻译成“老板能听懂的排期风险”,会告诉产品经理“你想要的个性化推荐,现在的数据埋点根本支持不了”,会带着运维一起看日志确认“这个问题不是网络抖动,是应用层的死锁”。
这种翻译和沟通能力,需要的是对人类语境的理解、对组织权力的敏感、对利益关系的判断。AI可以帮你生成一份措辞严谨的周报,但它感知不到会议室里那个沉默的人其实才是关键决策者。所以在我看来,程序员未来的核心竞争力属于“高代码能力+强沟通能力+深业务理解”的复合型选手,而单纯的技术钻研者,会面临比过去更大的职业瓶颈。
5. 与其焦虑被替代,不如重新配置自己的技能组合
5.1 把AI当成结对编程搭档,而不是效率工具
很多人在引入AI编程工具时踩的一个误区,是把它当成一个简单的“代码生成器”:自己脑子里的方案不变,让AI替自己把手敲出来。用一段时间后觉得“也就那样,能省一点打字时间”,然后就放在那里吃灰了。这种用法暴露的恰恰是使用者在认知上的偷懒。
我建议你换一种用法:在做任何一个技术方案之前,先把你的设计思路、约束条件、你担心的问题全部塞给AI,让它扮演一个严格的技术评审官,从反面挑毛病。比如我最近设计一个消息推送服务时,把自己偏向于“用Redis存储离线消息”的设想告诉AI,它立刻指出在极端高并发下Redis内存可能成为瓶颈,并给出“Redis+对象存储冷热分离”的替代思路。
这个过程的真正价值不是让你接受AI的答案,而是逼着自己在对话中把自己没想到的变量摆到台面上。AI像一面镜子,帮你看清自己思考里的盲区。当你养成了这种“先对话、后编码”的习惯之后,你的系统设计能力和代码质量会同步上一个大台阶,而这恰恰是最高级的护城河。
5.2 去搞AI时代的“新基建”:Agent开发与AI应用工程化
如果你还有余力,我非常建议你主动去拥抱AI应用开发这个方向,而不是停留在“用AI写传统代码”的层面。现在的行业里,AI能力正在从“聊天工具”转向“能自己规划任务、调用工具、操作软件的Agent”,而这中间需要大量的工程化功夫:怎么管理记忆、怎么设计工具调用协议、怎么让模型输出的结构化数据与旧系统对接、怎么做效果评估和回归测试。
这些都是纯新的领域,传统开发经验不完全适用,但也不是从零开始。我在最近的一个实际项目里,用LangChain和自研的任务编排框架搭了一个能自动阅读工单意向并给出初步拆解的智能体,过程中踩了大大小小无数坑:模型经常一顿操作猛如虎,最后忘了调用关键API;上下文一长就失忆,把前面定的规则忘了;tool calling的参数格式稍有偏差,整个流程就崩。
这些问题的解决方案还没有被完整地写进教科书里,谁能先摸清门道,谁就能吃到这波红利。老一辈程序员当年也是从.NET、Java的荒原里一步步踩出路的,今天的AI Agent应用开发就是一片新的荒原,先到者得。
5.3 在垂直业务里扎下去,做“既懂代码又懂行”的人
最后一条建议看起来最土,但实际上最稳:找一个你感兴趣的垂直行业,深耕下去。AI再强,它也不会替你了解医疗里的医保结算规则、不会替你理解制造业里的物料齐套逻辑、不会替你判断金融风控里“这个额度为什么不能批给这类客户”。
在未来,纯靠写代码就能获得高溢价的岗位会越来越少,但“能住在行业现场,懂业务流程痛点,能设计出管用的软件方案”的人会越来越值钱。因为我认识的每一个真正稀缺的工程师,没有一个是单纯的技术专家,他们聊起业务来头头是道,知道用户真正的痛处在哪里,然后再用技术手段去解决它。AI只是放大了他们的产能,并没有削弱他们的价值。
我自己这几年最大的感受是,技术变化越快,越需要锚定一些不变的东西:理解真实世界中人的需求、能在一个领域里持续积累判断力、学会在复杂约束下做取舍。AI这波浪潮不是第一次被描述为“程序员的终结”,也绝不会是最后一次,但每一次所谓终结的叙事背后,都会诞生一批用新工具撬动更大价值的人。希望读到这里的朋友,是顺手把恐慌关掉、动手去重配自己技能树的后者。