最近几年,我越来越明显地感受到一种变化。
过去,作为程序员,只要技术能力足够扎实,愿意持续学习,就能在行业里建立起自己的竞争优势。
学会一门新语言,掌握一个框架,熟悉一套架构,解决几个复杂问题,这些投入往往能够在工作中得到回报。
但现在,情况正在发生变化。
以前需要花费大量时间才能完成的编码任务,现在借助 AI,可能很快就能得到一个可用的初步结果。过去需要查阅大量资料才能掌握的技术知识,现在也可以通过对话快速获得解释和示例。
这并不意味着技术不重要了。
真正让我开始思考的是:当某些技术能力越来越容易获得时,过去支撑我们职业竞争力的东西,还能不能继续支撑未来十年?
我今年四十岁,已经不太愿意仅仅因为某项技术很热门,就投入大量时间学习它。
不是因为我不想学习,而是因为我必须更加认真地思考:这项投入究竟能给自己带来什么?它能形成长期积累吗?还是等到下一轮技术变化到来时,又要从头开始?
我开始尝试把技术能力也看作一项需要持续评估的资产。
有些能力值得长期投入,有些能力需要升级,还有些能力即使曾经非常有价值,也可能随着环境变化逐渐贬值。
如果未来十年还想保持竞争力,我认为首先要弄清楚的,不是哪些技术值得追逐,而是哪些能力正在失去稀缺性。
一、第一种正在贬值的能力:单纯的代码生产能力
在程序员的职业生涯里,写代码曾经是一项非常重要的竞争优势。
能够熟练使用语言,理解框架,快速实现需求,处理复杂逻辑,这些能力直接影响开发效率,也决定了一个人能承担多大的工作量。
但 AI 正在改变代码生产的成本。
对于许多边界清晰、规则明确、验证方式比较成熟的任务,AI 已经能够帮助开发者生成代码、编写测试、解释错误,甚至完成一定范围内的重构。
这并不意味着 AI 能够独立解决所有工程问题。
真实的软件系统存在大量历史包袱、隐含约束、业务例外和环境依赖。生成代码只是开发过程的一部分,理解上下文、判断方案是否正确、验证系统行为,仍然需要相当多的工程能力。
但一个变化已经值得重视:如果一项工作的主要价值只是把明确的要求转换成代码,那么这种能力的稀缺性就可能下降。
过去,面对一个开发需求,我需要花费时间理解实现方式,查阅 API,编写代码,再逐步调试。
现在,我可以把一部分工作交给 AI,自己更多地负责理解需求、约束实现方式和验证结果。
代码仍然重要,但单纯产出代码,不再必然意味着同等程度的竞争优势。
这对程序员意味着什么?
不是应该放弃编码,而是应该改变自己对编码能力的定位。
我依然需要理解代码,因为只有理解实现细节,才能发现 AI 的错误,判断方案的风险,评估性能和维护成本。
但我不能再把“我能独立写出这些代码”当成唯一的价值证明。
未来更值得积累的,是我能否判断哪些代码应该写,怎样写更合理,以及怎样确保它们在真实系统中可靠运行。
从代码生产者,到能够对工程结果负责的人,这可能是一种更有长期价值的能力升级。
二、第二种正在贬值的能力:只会使用某个工具或框架
回头看自己的职业经历,我也曾经把熟练掌握某项技术栈,当作重要的职业保障。
一种框架掌握得足够熟练,某个中间件用得足够深入,某套工具链运用得足够顺手,就能在工作中形成效率优势。
这种能力并没有失去价值。
问题在于,工具使用能力与长期解决问题的能力,并不是同一回事。
工具的生命周期可能很长,也可能因为新的技术方案出现而快速缩短。
当框架的使用门槛降低、文档和代码生成变得更加容易时,单纯记住配置方式、API 用法和常见操作流程,就很难长期构成强壁垒。
过去,我可能需要记住某个框架的配置细节,才能快速解决问题。
现在,我可以通过文档搜索和 AI 辅助,迅速找到示例并理解基本用法。
真正拉开差距的,逐渐变成了另外一些问题:
为什么选择这个框架?
它适合什么场景,不适合什么场景?
当系统规模增长、业务规则变化、团队人员更替时,它会带来什么影响?
如果出现性能问题或者故障,我能不能定位根因,而不是只会按照既有教程操作?
这些问题并不会因为工具变得容易使用而消失。
相反,当实现变得更容易时,错误决策也可能以更低的成本、更快的速度进入系统。
所以,我不会因为某项技术不再热门,就否定自己过去积累的经验。
我更愿意把具体工具看作一种载体,把工具背后的原理、适用边界和问题解决方法,视为更值得迁移的资产。
框架可以更换,但理解系统的能力、分析问题的能力,以及评估技术方案的能力,可以在不同技术栈之间持续发挥作用。
三、第三种正在贬值的能力:只会按照需求执行
这是我觉得更值得警惕的一种能力。
在很多组织里,程序员的工作模式长期比较明确:业务提出需求,产品整理文档,技术评估方案,开发人员实现功能,测试人员验证结果。
每个人在既定流程中承担自己的职责。
在这种模式下,能够准确理解需求、按时交付任务,是一种重要的职业能力。
但问题是,需求本身并不一定正确。
有些需求只是因为历史流程如此运转;有些功能是为了弥补原有设计的缺陷;还有一些工作,即使完成了,也未必真正解决业务问题。
过去,开发资源有限,很多想法即使价值不高,也可能因为实现成本太高而被自然过滤。
当 AI 降低了部分实现成本后,组织可能会提出更多需求。开发者也可能更快地把需求实现出来。
但需求能够被实现,并不代表它值得实现。
如果一个人始终只负责接收任务、完成任务,却很少判断问题本身是否成立,那么他的工作效率即使不断提高,也可能只是更快地完成低价值工作。
这让我想到自己在技术治理工作中的一些思考。
技术方案评审、代码审查和系统质量管理,并不只是检查某段代码有没有错误。
更重要的是理解业务目标、识别系统风险,判断方案是否真正满足需求,以及今天的实现会不会给未来留下不必要的技术债。
同样的逻辑也适用于个人职业发展。
如果我只是等待组织分配任务,再通过技术能力把任务完成,那么我的职业方向就很容易完全由外部需求决定。
未来更值得培养的,是主动定义问题的能力。
面对一个需求,我需要能够继续追问:它真正要解决的是什么?有没有更简单的办法?是否应该通过调整流程解决,而不是继续增加软件功能?
这种能力不一定要求我成为产品经理,也不意味着所有程序员都必须承担业务决策。
它只是提醒我,不要把执行能力当成判断能力的替代品。
四、第四种正在贬值的能力:依赖重复经验,却不理解底层原理
经验是程序员的重要资产。
做过足够多的项目,遇到过足够多的问题,就会逐渐形成直觉。
看到某种异常,大概知道问题出在哪里;看到一种架构设计,就能预判可能存在的风险;遇到性能瓶颈,也能快速缩小排查范围。
但经验有一个容易被忽视的局限:它通常在熟悉的环境中最有效。
如果一个人只是记住了过去的解决方案,却没有理解问题背后的原理,那么当技术环境发生变化时,经验就可能失效。
例如,过去遇到某类问题,我知道应该检查某项配置,或者使用某个常见方案。
如果 AI 能够快速检索这些经验,那么单纯记住解决步骤的优势就可能减弱。
但如果我理解问题背后的机制,就可以根据新的上下文重新推导解决方法。
这也是为什么我认为,未来基础原理仍然重要。
算法、数据结构、操作系统、网络、数据库、分布式系统、软件工程,这些知识不会因为 AI 能够解释它们,就自动失去价值。
真正需要调整的,是学习和使用它们的方式。
我不一定需要把每个 API 的参数都背下来,也不需要把所有工具的配置细节都记在脑子里。
但当 AI 给出一个看起来合理的方案时,我应该能够判断它是否符合系统原理,是否遗漏了关键约束,是否在某些条件下会产生严重后果。
记忆具体答案的价值可能下降,理解为什么答案成立的价值仍然重要。
对有多年经验的程序员来说,这意味着过去的经验需要从“解决方案集合”升级成“可以迁移的判断框架”。
五、第五种正在贬值的能力:只对局部负责,不理解整个系统
在大型软件项目里,一个人可以非常擅长自己负责的模块,却未必理解整个系统。
他可能能够高质量地完成接口开发,却不了解上游为什么这样设计,也不清楚下游如何使用数据。
他可能能够让自己的服务运行得很稳定,却不知道这个服务对整个业务流程意味着什么。
在分工明确的组织里,这种局部专业化有它的合理性。
问题在于,局部最优并不一定等于整体最优。
当 AI 能够帮助不同角色完成越来越多的局部任务时,如何协调这些局部结果、识别跨模块影响、处理系统级约束,就会显得更加重要。
这也是我越来越关注系统思维的原因。
在技术治理中,单独看一份技术方案,可能没有明显问题;单独看一段代码,也可能符合规范。
但把它们放回整个系统,就可能发现架构重复、数据口径不一致、依赖关系过于复杂,或者某个关键环节缺少故障隔离机制。
这些问题不是简单增加代码检查规则就能完全解决的。
它们需要有人理解系统目标、组件之间的关系,以及局部变更可能带来的整体影响。
未来十年,系统理解能力不一定会因为 AI 而变得轻松。
AI 可以帮助我们梳理依赖、分析代码、生成架构图,但这些工具提供的是分析材料,不会自动替我们承担架构决策的责任。
我更愿意把自己的技术能力,从“能解决一个具体问题”,逐渐扩展到“能判断这个问题在整个系统中意味着什么”。
因为真正复杂的工程问题,往往不在某一个模块内部,而在模块之间。
六、第六种正在贬值的能力:只积累工作经验,却没有形成自己的资产
这一点和技术本身没有直接关系,却可能影响一个人的长期职业安全感。
我曾经很容易把工作年限与个人成长联系起来。
工作一年,积累一年的经验;工作十年,就应该比工作一年的人拥有更多优势。
但仔细想想,工作十年不一定等于积累了十年的可迁移能力。
如果这十年里反复做相似的任务,解决相似的问题,使用相似的技术,那么经验可能增加了,个人能力的边界却未必发生明显变化。
更值得关注的是,有些经验只存在于当前组织的工作环境里。
我知道内部系统如何运行,熟悉某些历史流程,也清楚找谁能够解决什么问题。这些经验在当前工作中很有用,但一旦离开这个组织,其中一部分价值就会迅速下降。
这并不代表组织内部经验没有价值,而是提醒我:除了完成工作,还需要有意识地沉淀能够跨场景使用的能力。
例如:
-
把反复解决的问题总结成方法和检查清单。
-
把常用的技术治理流程转化为可复用的工具。
-
把复杂问题的分析过程整理成可迁移的判断框架。
-
把自己的经验通过文章、分享或开源项目表达出来。
-
把解决问题的能力逐渐转化为独立交付成果的能力。
这些积累并不一定立即带来收入,也不能保证未来一定获得机会。
但它们至少有机会脱离单一组织的环境,成为自己能够持续维护和迭代的资产。
对我来说,这一点尤其重要。
当前工作能够提供现金流,我并不需要因为对未来的担忧就立即离开它。
但如果所有能力、经验和收入都只能在当前岗位上发挥作用,那么我的选择空间就会比较有限。
所以,我希望未来积累的,不只是更多的工作经历,还有一部分能够由自己掌握、在不同环境中继续发挥价值的东西。
七、第七种正在贬值的能力:用忙碌证明自己的价值
这不是一种传统意义上的技术能力,却是很多技术人容易形成的职业习惯。
任务越多,越能证明自己重要;问题越复杂,越能证明自己不可替代;别人解决不了的问题,最后都交给自己处理。
在某些阶段,这种方式确实能够建立个人信誉。
但它也可能形成一种隐性依赖:组织越来越依赖你的个人投入,而你越来越难以离开具体的执行工作。
如果一个系统只有某个人持续救火才能正常运行,那么这个人看起来很重要,系统本身却并不健康。
如果一个程序员只有不停地解决临时问题,才能证明自己有价值,那么他的职业发展也可能被困在重复劳动里。
AI 带来的变化,会让这个问题更加明显。
当某些任务能够被自动化,单纯依赖个人投入时间的工作方式就可能面临更大的压力。
真正有价值的工作,不应该只体现在今天解决了多少问题,还应该体现在有没有减少未来的问题。
例如,我是否把重复出现的故障变成了自动检查机制?是否把依赖个人经验的流程变成了团队可以复用的规范?是否通过改进系统设计,降低了后续维护成本?
这意味着,评价自己的工作时,我需要逐渐从“完成了多少任务”,转向“解决了什么问题,以及是否让同类问题更少发生”。
当然,重复劳动并不都没有价值,稳定运行也需要有人认真执行。
但如果长期只靠个人加班、记忆和救火来维持系统,就应该考虑改变工作方式,而不是一味提高个人负荷。
我想建立的职业竞争力,不是让自己永远成为那个最忙的人。
而是即使我不再亲自处理每一个细节,系统依然能够稳定运行,而我可以把精力投入更重要的问题。
八、哪些能力值得在未来十年持续投入?
如果前面讨论的是哪些能力可能贬值,那么接下来更重要的问题是:我应该把时间投向哪里?
我不认为未来存在一份适用于所有程序员的固定能力清单。
不同的职业方向、行业环境和个人目标,会决定投入的优先级。
但结合自己的经验,我会优先考虑以下几个方向。
第一,问题定义与业务理解。
不仅知道如何实现需求,还能够理解需求背后的目标、约束和真实问题。它帮助我判断什么值得做,什么可以不做。
第二,系统设计与工程判断。
理解复杂系统的依赖关系、数据流、故障模式、维护成本和演进路径。AI 可以帮助分析,但最终仍然需要人对系统决策负责。
第三,AI 协作与结果验证。
学会把任务交给 AI,拆解工作,提供必要上下文,验证生成结果,并把有效流程固化下来。重点不是使用多少工具,而是能否稳定地产生可靠结果。
第四,跨场景迁移能力。
不把自己的价值绑定在某一门语言、某个框架或某一家公司的内部流程上,而是能够把经验迁移到新的业务、工具和技术环境。
第五,把经验转化为资产的能力。
能够将工作经验沉淀为文档、工具、方法、产品或内容,让一次性的解决问题逐渐形成可复用的成果。
第六,持续判断与自我校准的能力。
技术变化会越来越快,任何一份能力清单都不可能长期有效。比起一次性选对方向,我更需要持续观察环境变化,判断自己哪些能力仍然有价值,哪些地方需要调整。
这六个方向并不意味着我必须同时成为架构师、产品经理、AI 专家和独立创业者。
我更愿意把它们看成几个可以逐步加强的能力维度。
现阶段,我可以利用已有的技术治理经验,先练习问题定义、系统判断和 AI 自动化;在实际项目中沉淀工具和方法,再通过个人内容把经验表达出来。
这样,工作经验、技术能力和个人项目之间,就有机会形成相互促进的关系。
九、给自己的技术能力做一次资产审查
写到这里,我发现自己真正需要解决的问题,并不是预测未来十年哪门技术会消失。
预测技术趋势本身就有很大的不确定性。
今天看起来正在贬值的能力,可能因为某种新的应用场景重新变得重要;今天被认为很有前景的技术,也可能因为市场和产业变化而失去机会。
因此,我不想用一份静态的热门技术排行榜来决定自己的学习计划。
我更想定期检查自己的能力结构。
我会问自己几个问题:
-
我目前最擅长的事情,如果借助 AI 或者更成熟的工具,是否已经可以用更低的成本完成?
-
如果离开当前公司、当前技术栈,我还剩下哪些能够迁移的能力?
-
我是在不断重复已有的工作,还是在解决更复杂的问题、形成新的判断?
-
我过去的经验,有多少已经沉淀为可复用的方法、工具或者成果?
-
如果未来一年工作环境发生变化,我有哪些真实可行的选择?
这些问题不一定能直接得出答案,但它们能帮助我区分两件事:哪些能力让我今天工作得更顺手,哪些能力可能让我未来拥有更多选择。
我并不打算否定过去的自己。
过去学会的技术、解决过的问题、积累的经验,都构成了今天的基础。
只是,我不能因为过去某种能力曾经有效,就默认它在未来依然具有相同的价值。
对于一个已经工作二十年左右、开始认真考虑未来十年的人来说,这种判断可能比再学一门热门技术更重要。
因为接下来的职业发展,不应该只是不断往自己的技术工具箱里增加东西。
还应该学会识别哪些东西值得保留,哪些能力需要升级,以及哪些投入已经不值得继续。
未来十年,技术还会变化,AI 也会继续发展。
我无法保证自己每一次判断都正确,但至少可以让自己保持观察和调整的能力。
不盲目追逐新技术,也不固守过去的成功经验;不因为担心被淘汰而不停学习,也不因为暂时熟练就停止思考。
我想建立的,不是一个永远掌握所有新技术的自己。
而是一个能够识别变化、理解问题、持续创造价值,并且不把全部未来押在某一项技术或某一个岗位上的自己。
这可能才是我面对未来十年,更值得投入的技术能力。
我是语霖。
执笔为语,心落成霖。
希望用文字和声音,记录一个40岁程序员重新设计人生系统的过程。
我们下期接着聊。