写代码能不能干一辈子,这个问题的答案不在于代码,而在于你如何看待"写代码"这三个字。最近网上总有人焦虑35岁危机,也有热搜在问"现在还学写代码还有用吗",今天就从我这些年的实际观察出发,掰开揉碎聊聊这件事。
1. "写代码能干一辈子"是伪命题?先问问自己把代码当什么
很多人问"写代码能不能干一辈子",我听到这句话的第一反应是:你口中的"写代码",到底是哪种写代码?因为我见过太多人,嘴上说的都是写代码,实际干的却是完全不同的事。
1.1 "写代码"的三个阶段,你在哪一层
我自己的观察是,"写代码"这件事可以分为三个层次。
第一层是"翻译层":产品经理把需求讲清楚,你把需求翻译成代码。这个阶段的核心技能是熟悉语法、熟悉框架、熟悉API调用。说白了,这是"别人定义问题、你来实现"的状态。很多工作三五年的同学卡在这一层,因为日常开发任务确实也就只需要你做到这一层。
第二层是"设计层":面对一个模糊的、甚至没人完全想清楚的需求,你要能把业务的约束条件找出来,在性能、成本、可维护性之间做权衡,设计出一个合理的方案,再动手写代码。这时候你写的代码,每一行背后都有一个"为什么"。
第三层是"定义层":你不再等别人给你需求,而是能从业务目标、用户行为、数据反馈里定义出"什么该做、什么不该做",并且用技术手段推动业务往前走。到了这一层,你写的是代码,但代码只是你表达方案的一种方式。
很多人焦虑"写代码能不能干一辈子",本质上卡在了第一层,并且预感这一层会被更便宜的人或者AI替代。这个预感没有错,但正确反应不是焦虑,而是往上走。
1.2 工具焦虑和职业焦虑其实是同一件事
热搜里有个词叫"vscode写c没有代码提示",看上去是个纯工具问题,但我觉得它和"写代码能不能干一辈子"是同一个焦虑的两个侧面:都是对自己掌控力的怀疑。
一个VSCode环境配置问题,正常来说半小时就能解决,但有人会把它上升为"我是不是不适合写代码";就像今天"AI写代码这么强,我是不是要失业了"一样。这种思维模式,比年龄本身危险得多。
我把话放在这里:如果你把写代码当手艺,工具的变动只是换一把刀;如果你把自己当一个"只会写代码的人",那任何风吹草动都会让你觉得末日要来了。
2. 35+危机不是年龄问题,是你的定价逻辑被重估了
我先抛一个反直觉的观察:一个40岁的程序员被优化,核心原因通常不是他年纪大了,而是他的产出可以"被替代",且替代成本更低。这是定价逻辑的问题,不是年龄的问题。
2.1 你的工资是给"解决问题半径"付的,不是给键盘敲打付的
公司付你薪水,买的不是你敲键盘的速度,而是你解决问题的半径。同样是写一个后端接口,新手看到的是"用什么框架、怎么写逻辑",资深的人看到的是"系统目前的瓶颈在哪、这个接口会不会被高频调用、要不要做缓存、失败了怎么降级"。
热搜里有个词叫"在服务高可用场景下,写后端代码时需要注意哪些点",这个话题就很能说明问题:同一个"写代码"的动作,在普通场景和高可用场景下的技术含量差距是数量级的。一个天天处理高并发、数据一致性、故障恢复的人,和一个只写CRUD的人,虽然职位上都叫"程序员",但在就业市场里根本不是一个物种。
年轻时候大家拼的其实是体力上限——睡得少、学得快、家里事少。但等你到了30多岁,如果还在和年轻人拼"谁更能熬、谁上手新框架更快"这种维度,那确实是拼不过的,因为那是体力游戏,而体力游戏必然是年轻人的主场。
2.2 AI正在做的事情,是把"翻译层"的价格打到零
这两年各种AI写代码工具层出不穷,热搜里"ai写代码""哪个ai写代码厉害"几乎天天有人问。很多人看到AI能写代码就慌了,但你冷静下来看:AI目前真正擅长替代的,恰恰是第一层"翻译层"。
你把需求描述得足够清楚,AI可以帮你实现一个功能模块,甚至能用得像模像样。这本来就是可以被外包、被低薪新人做的事情。AI在这个层面确实有成本优势,而且优势还在扩大。
但AI替代不了第二层和第三层:它不知道你公司的历史包袱是什么,不知道哪个业务方真正想要什么,不知道线上那个间歇性超时背后牵涉了多少个服务的状态纠缠。这些问题需要人亲自趟过坑才知道,而且这些坑的知识,恰恰是35岁的程序员比25岁的程序员值钱的地方。
问题来了:如果你的工作内容一直停留在"翻译层",你等于主动选择了和AI、和低成本人力去竞争同一个岗位,那你当然会被重估——不是因为你老了,是因为你提供的价值本来就不稀缺。
2.3 为什么"有经验"本身不值钱?除非它能转化为决策能力
这里有个容易误导人的说法:"经验是财富"。实际上,经验本身并不值钱,值钱的是经验带来的决策能力。一个人干了十年,如果只是把第一年的经验重复了十年,那他的经验在市场上基本没有溢价。
反过来,那些经历过线上事故、做过大型系统迁移、踩过性能瓶颈的坑、知道哪些方案看起来美好但落地会死的人,他们的经验能直接帮公司省下真金白银,这才是溢价来源。
所以35岁危机的本质是:如果你没有随着年龄增长积累出更复杂的决策能力,你的价格就会被重新定价到"动手执行层"的价格区间。这个区间,25岁的人和AI都能和你竞争。
3. 动手诊断:你是"码字工人"还是"问题解决者"
在谈布局之前,先做一个自我诊断。别凭感觉判断自己是哪种人,用下面的场景对照一下。
3.1 五个场景,判断你的真实段位
我列一张自检表,你可以诚实地对照一下:
| 场景 | 码字工人的反应 | 问题解决者的反应 |
|---|---|---|
| 接到一个新需求 | "用什么框架/技术方案实现?" | "这个需求解决了谁的什么问题?边界在哪?" |
| 线上出bug | 按报错信息修完就结束 | 追到根因,思考"为什么线上没拦住这个错误" |
| 做技术选型 | "哪个新、哪个火、哪个简历上好看用哪个" | "在当前团队规模、业务阶段、维护成本下哪个最合适" |
| 写代码之前 | 打开编辑器直接开写 | 先在脑子里过一遍数据流,确认每个分支的合理性 |
| 面对一个陌生领域 | 立刻搜索"XX从入门到精通" | 先画一张这个领域的概念地图,搞清核心矛盾 |
注意,我说的不是"正确但空泛",而是每一条你真的在实践中做到过没有。比如拿第一条来说,热搜里"前端写代码之前需要注意什么 业务逻辑",很多人以为前端就是把接口数据渲染到页面上,但资深的同学会在一开始就确认:这个页面是给谁看的、核心操作路径是什么、用户误操作怎么兜底。同样的岗位,思考深度完全不同。
3.2 一个真实案例:同一个需求,两种做法
我举个具体例子。早年间我带过两个后端工程师,同样接一个需求:给订单系统增加一个定时任务,每天凌晨把超时未支付的订单关掉。
A同事的步骤是:找个现成的任务调度框架,写一个方法,查订单表,把超时的状态改掉,测试通过,上线。很利索,该做的事都做了。但上线两周后出问题了:某些订单其实已经完成了支付,只是支付回调有延迟,凌晨的定时任务扫描时订单状态还没更新,就把这些订单误关了。用户投诉炸了。
B同事接到需求后,先问了三件事:超时判断依据以哪个系统的时间为准?是否存在支付成功但状态未同步的情况?这个任务的执行结果要不要做通知和补偿?然后他把这三条在方案里都处理掉了,上线后没出任何问题。
两个人后来发展路径完全不同。A不是不努力,而是他努力的方向永远是"把需求翻译成代码";B的努力方向是"理解需求背后的真实业务约束"。十年下来,A从一家公司换到另一家公司,永远在做差不多的CRUD,薪资涨幅有限;B已经能独立负责一个业务线的技术架构了。
3.3 "写代码速度慢怎么办"——这个问题本身就暴露了误区
热搜里还有个"写代码速度慢怎么办",我特别想展开说。多数人写代码慢,打字速度只占很小一部分,真正的慢在两条:
一是动手前没想清楚,于是写一半推翻重来,反反复复折腾。这个浪费的时间远大于你敲键盘的时间;二是遇到问题去搜索时没有方向,说明脑子里缺一张"系统如何运转"的地图。
想清楚了写,一版迭代到位的速度,比"先写再说然后不断返工"快得多。这句话我给过很多人,但能听进去的人不多。大多数人宁可反复试错,也不愿意在动手前多花半小时把逻辑理顺。这其实也和"写代码能不能干一辈子"一样,是心智模式的问题:你是在用战术上的勤奋弥补战略上的懒惰,还是战略上先想清楚再动手?
4. 提前布局35+的可行路径:三条路线和一个底层能力
如果你想清楚了,不想让自己被困在"翻译层",那接下来的问题就是往哪个方向走。我总结过三条靠谱的路线,外加一个底层能力。
4.1 路线一:纵深,成为某个高难度领域的"活文档"
第一条路,是在某个门槛足够高的领域做到足够深。比如高可用架构设计、数据库性能调优、全链路监控与故障演练、安全攻防、大规模数据一致性保障。这些领域的特点是:知识密度大、试错成本极高、没有三年五年实战根本摸不到门道,而且很难被AI替代。
为什么这么说?因为在这些领域里,AI能给的信息永远滞后于你的实战沉淀。举个最简单的例子:某次线上故障是因为磁盘IO被日志写入拖垮,这个知识在书上能找到吗?能找到,但只有在真实环境里蹚过一遍,你才会对"日志写入"这件事产生肌肉记忆式的警觉。这种"直觉"是AI给不了、年轻人也速成不了的。
具体的做法是:挑一个你当前业务中最痛、最深、最没人愿意碰的方向,主动去接那些困难的任务。别挑容易出成绩的,挑容易出问题的。后台部门里最难搞的模块、最容易被甩锅的故障、最没人愿意维护的遗留系统,这三样东西看着苦,其实是建立护城河的最好素材。
4.2 路线二:横跨,从"写代码的人"变成"定义代码的人"
第二条路,是往上游走:做需求分析、方案设计、技术决策、架构规划。这条路的本质是把你从"怎么实现"提升到"该实现什么、该用什么方式实现"。
为什么这条路能穿越周期?因为不管技术栈怎么换、语言怎么换代,"定义一个合理方案"这件事始终需要人来做。AI再强,也需要有人告诉它"我们要解决什么问题、约束条件是什么、怎么算成功"。
我在第1节里说的"定义层"就是这个意思。具体怎么走?我建议你在日常工作中刻意练习一件事:接到任何需求,先别急着进入技术思考,先搞清楚业务方的真实目标,再把需求翻译成技术方案。写完代码只是下限,把为什么这样写讲清楚才是上限。
另外,练好跨部门沟通的能力。很多程序员不喜欢开会,觉得浪费时间。但说实话,技术方案推进会、需求评审会,恰恰是"定义问题"能力的最好训练场。在这些场合里你能看到不同角色的人怎么理解同一个问题——产品在讲价值、运营在讲流程、测试在讲风险——而你,要能从中抓住那个技术最优解。
4.3 路线三:杠杆,把AI用成你的同事而不是你的对手
第三条路,也是目前最紧迫的:把AI写代码这件事,从"威胁"变成"杠杆"。现在网上一堆"AI写代码""Claude写代码用哪个IDE""如何使用Codex写代码"的讨论,说明大家都意识到这是个趋势,但多数人用AI的方式还停留在"让它帮我写段代码"。
这个用法说实话价值不大。正确的姿势是:你先做问题的拆解和设计,把需求和边界写清楚,然后让AI负责把其中机械的部分实现出来,你来做代码评审和验收。相当于你是架构师和评审人,AI是你的外包实现团队。
这个转变有一个技术含量上的前提:你得能判断AI写的代码对不对、边界有没有漏洞、性能会不会有问题。判断力的来源就是你自己的基本功。所以一个资深工程师配上AI,产出的速度可能是以前的三倍五倍;一个什么都不会的新手配上AI,产出的是一堆看似能用但一上线就出问题的代码。区别在判断力,而判断力是靠时间和踩坑堆积的,AI恰恰加速了"有判断力的人"和"没有判断力的人"之间的马太效应。
4.4 底层能力:持续重建"可迁移的问题解决框架"
最后说底层能力。技术栈会过时,框架会过气,语言会换代,但有一套东西永远不会贬值——你对"如何发现问题、拆解问题、解决问题"这件事的方法论。
我这些年最值钱的经验不是我会哪些技术,而是我脑子里存了好几个"问题解决框架":遇到性能问题怎么入手,遇到系统复杂度过高怎么重构,遇到业务需求模糊怎么澄清,遇到团队协作阻塞怎么推进。这些框架像乐高积木一样,不管遇到什么新场景,我都能拆开来重新组装。
要重建这种框架,有个具体做法:每做完一个项目或解决一个棘手问题,花半小时写下三件事——这个问题的本质是什么?我用了什么方法路径解决的?如果下次遇到类似问题,我第一步应该先做什么?积累几十条之后,你会发现自己在面对新问题时,不再是一张白纸式的慌乱,而是能直接从模型库里调用最接近的路径。
5. 对AI写代码这件事,我最后想说几句实在话
关于AI,热搜里天天有人问"哪个AI写代码厉害""AI写代码"之类的问题,我想说几句可能不太顺耳的大实话。
5.1 AI消灭的是"会不会写代码"的差距,扩大的是"能不能解决问题"的差距
十年前,会不会写代码是一条巨大的分界线,会的人有饭吃,不会的人没饭吃。现在的AI让"会写代码"这件事的门槛大幅降低了——你描述得足够清楚,AI就能把代码写出来。但这恰恰意味着,"会写代码"本身不再是稀缺资源了。
反过来,拥有真实业务理解、系统设计判断、故障排查直觉的人,依然极度稀缺。AI越强,这类人的杠杆效应越明显。
我认识一个做架构的老哥,他现在的日常就是:自己画系统图、拆模块、定接口规范,然后扔给AI生成初版实现,他来改。以前要组一个五人小团队干两个月的活,现在他一个人加AI两到三周就搞定。你说这样的程序员,老板会因为他35岁而裁掉他吗?留他还来不及。
5.2 给所有还在焦虑的人的三个具体建议
如果你现在还处于"翻译层"的舒适区,我建议你从今天开始做三件事:
第一件,把"怎么写出来"改成"为什么这么写"。每写一个模块,强迫自己写出三行注释:这个模块解决的核心问题是什么?为什么选用这个方案?如果未来出现什么情况,这个方案会被推翻?写不出来说明你根本没想清楚。
第二件,每周花20%的时间,做一件跟当前业务无关的技术探索。比如你们组一直在做后台管理系统,你可以去研究一下日志采集、链路追踪或者性能剖析工具链。这些看起来"不务正业"的东西,会在某一天成为你解决一个完全陌生问题的底气。
第三件,无论用什么AI工具,都要养成"先给背景再给任务"的习惯。你给AI写Prompt时,不只要说"帮我写一个接口",还要说清楚"这个接口的背景、约束、验收标准"。练的就是你定义问题的能力——这个能力AI永远替代不了。
5.3 别再问"现在学写代码还有用吗",改问另一个问题
问"现在还学写代码还有用吗"的人,和十年前问"现在学英语还有用吗"的人是一批人。他们总想找到一个"学了就不用担心被淘汰"的安全状态,但现实世界根本没有这种状态。
代码这个工具,不管什么时候都有用,就像英语一样是全球通用的沟通工具。但如果你学了代码只是为了"找个稳定工作",那确实会失望——因为这个时代的稳定,不再是找到一个不被淘汰的岗位,而是拥有一种不管你换到哪个岗位、哪个行业,都能快速创造价值的能力。
这就是我说的另一个问题:"我能不能让自己在每一个阶段都比前一个阶段更值钱?"这个问题如果答案是"能",那你写代码写到退休都没问题;如果答案犹豫了,那你焦虑的不是35岁,而是过去五年的成长曲线。
我自己的工作经历里,被问过太多次"你都这个岁数了还写代码,不觉得没前途吗"。我的回答一直没变:我写的不是代码,我用代码解决问题。工具会变,问题永远在。当你看明白了这一点,"写代码能不能干一辈子"这个问题就不再困扰你了——你会把问这个问题的力气,省下来去解决下一个更难的问题。