本文首发于语雀(2026-06-25),此处为存档版。原文:https://www.yuque.com/u53445836/bde3vm/fl63k6gl6lgc5r6m

站在当下,AI 早已不是概念,而是渗透到我们日常工作的每一个角落。从 ChatGPT 的横空出世,到 Cursor、ClaudeCode 火遍全网,再到现在的人人养小龙虾。我们每个人都被裹挟在铺天盖地的宣传中。技术浪潮一浪高过一浪,每一天都有全新的产品或能力冒出来,让人目不暇接。

说心里话——说不焦虑是假的。

尤其是当 AI 获取的门槛越来越低,能力却越来越强的时候,一种奇怪的割裂感出现了:我们好像拥有了前所未有的"超能力",可以快速调用任何知识、生成任何代码;但同时又好像一无所有,因为不知道自己的积累还有多少价值,不知道下一刻会不会被取代。

我是一名在开发行业摸爬滚打 11 年的老兵。这 11 年里,我经历过移动互联网的爆发,见证过前后端分离的演进,也踩过无数技术选型的坑。但没有任何一次技术变革,像今天的 AI 这样,让我同时感到兴奋、困惑,以及一种必须重新审视自己的紧迫感。

这次分享,我想放下宏大叙事,就从一个老程序员的第一视角出发,聊聊我对 AI 时代的真实理解、切身体会,以及这一路走来的心路思考。如果能给同样在路上的你一些启发和力量,那就再好不过了。

在浪潮之前,我以为自己找到了答案(AI 时代之前)

入行:一个 Servlet 改变的世界观

2015 年,我正式入行。

大学里做毕业设计,用的是 Servlet + JSP + JDBC,完成了一个智能电网管理系统。那时候我以为,所有的 Java 后端服务都是这套体系——写 Servlet 处理请求,拼 JSP 返回页面,用 JDBC 直连数据库。简单、直接,也没觉得有什么不好。

直到入职后第一次看到公司的生产项目,我翻了整个工程,没找到一个 Servlet。那一刻的感觉,只能用"惊为天人"来形容。

后来学到了 Struts2 + Hibernate + Tomcat,相比纯手写 Servlet 和 SQL,开发效率直接上了一个台阶。我当时觉得,这就是版本答案了。再后来,接触到 Spring + MyBatis 的项目,才发现原来配置可以更简洁,代码可以更优雅。每一次技术栈的升级,都像打开一扇新的门——你以为已经看到了全貌,其实只是刚走进院子。

三年筑基:死磕源码的日子

2015 到 2017 这三年,我把几乎所有业余时间都花在了 JDK 源码的阅读上。从 HashMap 的实现原理,到并发包下 AQS 的来龙去脉,一行一行啃,一遍一遍调试。旁人看着枯燥,我却乐在其中——那种把底层机制彻底搞懂的感觉,比写出什么业务功能都爽。

那段时间,靠着对 JDK 源码足够深度的理解,我在求职上可谓是所向无敌,很少有拿不下来的 offer。现在回头看,那是我整个技术生涯最重要的"原始积累期"。后来技术浪潮一波接一波,新框架翻着花样出,我总能回到这个锚上,找到它的根。直到现在,我对于新技术态度依然是:想学,就实现一个

头部互金公司:见识真正的工程化

2018 年,靠着对《Java 并发编程实战》的倒背如流,我顺利加入了当时如日中天的国内 P2P 行业绝对龙头。

在那里,我第一次见识到大公司是怎么做工程的。代码版本管理、上线流程、开发规范、故障处理、事后复盘……每一样都有一套完整的体系。尤其是那套自动化发布系统,让我叹为观止。

为什么叹为观止?因为我之前的经历是这样的:开发在本地打好包,手动扔给运维,运维直接 SSH 到服务器上,kill -9,然后 sh start.sh,突出一个随意。

这种"随意"是有代价的。有一次,运维同学在吃饭前急着发布支付系统,kill -9 忘记执行了,结果服务器上同时跑着两个支付进程。一个小时内,所有支付都发了两遍钱。好在运维吃完饭回来发现了,及时止损——不然第二天我可能就要面临第一次失业了。

这段经历教会我一件事:工程的严肃性,是靠流程保证的,不是靠人的记性。

医药龙头:被"逼"出来的全栈能力

2019 年,我加入一家医药行业的龙头企业,负责电商网站的开发。当时最核心的任务是:整套电商系统需要从海外迁移到国内。

原本的计划是 4 个架构师带我一起做这件事。结果,人家 4 个商量好了一起跑了。我的领导看了看已经递交上去的年度汇报,又看了看一脸懵逼的我,问我有没有兴趣一个人搞。

我搞个锤子。当时的我,连什么是网络划分都不知道,更别提 AWS 和阿里云这些刚刚兴起的云服务了。

在公司向 AWS 询价并确认整体外包成本过高后,领导力排众议,让我干,给我半年时间。说实话,现在回头看,这更多是死马当活马医——没辙了。

那半年,我学到的东西比之前几年加起来都多。网络、架构、前端、后端、数据、运维、监控、扩容……涉及系统的方方面面,全都要学,全都要搞定。

结果呢?年底前,迁移完成了。整个过程零停机,零数据丢失。当美国加利福尼亚 AWS 机房的最后一台服务器下线的那一刻,我回家睡了一个非常长的觉——长到领导以为我挂在家里了。

这个项目,成了我技术生涯的转折点。它逼我跳出了"后端开发"的舒适区,第一次系统性地理解了一个分布式系统从网络到应用的全部层次。

本地生活巨头:学会写出来,也学会看更远

凭借这段迁移经验,以及业余时间用 Golang 实现的一套 JVM(当时我已经可以扫一眼字节码就大致知道这个 class 在干什么),我加入了国内本地生活行业的头部平台。

在那里的两年,我最大的进步不在代码,而在写作。

这家公司的企业文化很讲究"基本功",写作就是基本功之一。每周的周报,我都是组内写得最多的那个——认知迭代、反思总结、新技术学习,什么都写。它也是我待过的所有公司里,文档做得最好的公司,没有之一。在他们的学城里,你可以学到各个方面的东西,从前端最佳实践到容灾架构,应有尽有。

有一次经历机房断电后,我彻底迷上了机房高可用建设。在学城里,我学到了大量机房建设的硬核知识。比如:双路市电,而且要求来自不同电厂的线路,不能是同一家;UPS 和柴油发电机配合;装在机柜顶部的 STS,用于双路电源输入设备的二选一,切换时间通常是毫秒级,IT 设备不会重启;而装在配电柜的大型 ATS,用于市电和柴发之间的切换,可能存在短暂中断,这时就要靠 UPS 扛住。

还学到了机房选址的门道。比如 AWS 和阿里云,在某个区域都会部署多个可用区。AWS 在国内宁夏的 Region,就是三个机房呈品字形分布,每个机房之间间隔距离在 120 公里以上。这个距离,超过了单一自然灾害(如地震断层、河堤决口)的直接波及范围,也绝对避开了同一城市电网崩溃的故障域。

这些知识,把我从一个"写代码的人",慢慢变成了一个对"系统怎么跑起来、怎么跑不挂"有完整感知的工程师。

后面就是某股份制银行和一家智能家电独角兽了。那家银行可以说是完全爽了一整年,每天就是画一画架构图,参加参加技术评审会,提几个问题,给几个解决方案,反正只动嘴,代码是一行不写的。如果不是银行整体迁移到深圳,我估计这会还在银行里面朝九晚五,享受最惬意的一段生活。那段时间,路边遇见条狗我都想上去聊两句。

不过在银行,我重构了消金团队的 CICD 系统,一个已经存在了很多年、纯 shell 脚本组成的 CICD 系统。结合大模型的帮助,完成了 shell 到 python 的转换。

答案的成形

从 2015 年到 2025 年,整整十年。我从一个连 Servlet 都写不利索的菜鸟,一路打怪升级,经历了技术栈的迭代、工程体系的进化、系统规模的飞跃,也完成了从"会写代码"到"能做架构"的能力跃迁。

在这个过程中,我逐渐形成了一个坚不可摧的信念:程序员的价值,就藏在他踩过的坑里。经验越多,解决问题的能力越强,就越不可替代。不会被新技术淘汰,因为有底层原理,有方法论,有别人没有的"手感"。

我以为,自己找到了答案。

当工具箱开始思考,我重新成了学徒(AI 时代来临)

Copilot 出现的那一天

还在那家平台的时候,我就已经接触到了大模型辅助编程的雏形。那时最高端的东西,叫 GitHub Copilot。

我记得很清楚,视频里一个讲解者通过不停的 Tab、Tab、Tab,就完成了一段代码的开发。一个函数,一个类,甚至一组测试用例,就在他不断按下 Tab 键的过程中,从虚空中浮现了出来。

我的第一反应不是兴奋,是恐惧。一个念头直接跳进脑子里:这个行业完了。

那些年,我们筑起的护城河

为什么会有这种恐惧?因为在过去,我们每个开发者都有自己的"工具箱"。那个时候,离职的同事总会拷贝或多或少的代码带走,像蚂蚁搬家一样,把一行一行的积累存进自己的硬盘。直到现在,我家里的台式机上还躺着我第一家公司的所有仓库代码——我把整个 SVN 都搬回家了,不是为了用,就是觉得那是我的武器库。

在过去,经验很重要,经历过很重要,实操过很重要。面试躲不过项目经验,HR 筛选简历优先挑同行业、同职能的候选人。即使在计算机这样一个开放、拥抱开源的行业里,跨行也总是一件难度不小的事。行业积累、业务积累,这些构成了各自的护城河。甚至,你的代码写得只有你自己看得懂,也能在短时间内建立起一道小小的壁垒——这个模块没你不行。

这种积累建立在时间之上。时间越长,对行业的理解越深刻。大家应该也有同感:在一个行业干得越久,越不容易跳出去。一方面是其他行业的"嫌弃"——你没有行业经验;另一方面是本行业的"接纳"——你对这个领域太熟了,遍地都是能接住你的下家。

这就是我们过去的安全感来源。护城河是时间挖出来的,我觉得它足够深。

但 Copilot 的 Tab 键,像一台抽水机。它让护城河里的水,看起来没那么深了。

技术的热爱,撞上了现实的墙

这还不是最让我焦虑的。

过去十年,因为对技术的热爱,我一直朝着资深、架构方向努力,对行业知识的积累并没有真正重视过。我觉得技术是硬通货,有一手好代码,走遍天下都不怕。

但现实给了我一巴掌。有段时间我找工作非常艰难,不是因为技术不行,而是因为业务上没有积累。面试中我一遍又一遍地强调"技术是服务于业务的,没有业务的技术是空中楼阁"——这句话本身没错,但说多了,连自己都听出了心虚。面试结果是一次又一次的不合适。

那段时间,我甚至悲观到认为,自己和程序员这个行业的缘分,可能就到此为止了。国内的环境就是这样,年龄越大,纯技术的岗位越少,上升空间非常有限。而我本身又是一个非常不喜欢做管理的人,过去很多次遇到转管理的机会,我都选择了架构师方向。

这让我陷入了一个几乎无解的困局:往上走,纯技术的路越来越窄;往旁边走,业务积累又不够;往后退,往哪儿退呢?

回到原点,重新出发

就在这种两头不靠岸的迷茫中,我开始大量使用 AI 工具。ChatGPT、后来各种编程助手,我开始把它们真正引入到自己的日常工作中。

一开始的心态很矛盾:用,觉得是在加速自己的贬值;不用,又怕被甩得更远。

但慢慢地,我发现了一种微妙的转变。

以前我学一个新框架,需要通读文档、找教程、写 Demo、踩坑、再踩坑。这个过程短则几周,长则几个月。现在,我可以直接让 AI 帮我搭出第一个可用的版本,然后我边看它的代码,边追问"为什么这样写"。学习的方式变成了对话,而不是单向的啃书。

以前我解决一个陌生领域的问题,需要搜 Stack Overflow,从碎片信息里拼凑答案,一个 bug 解决后,Chrome 浏览器里面几十个,甚至上百个 CSDN 的标签。现在,我把问题描述清楚,AI 能给出一个相当完整的方案,我再根据自己的经验去审视、裁剪、优化。

我突然意识到一件事:我重新成了一个学徒。

但这个学徒,和十一年前的那个学徒不一样。十一年前,我在学怎么写代码。现在,我在学怎么和高维度的工具协作,怎么把自己的判断力注入到 AI 的执行里,怎么重新定义"我该干什么"。

我突然意识到:AI 打散的不是我的价值,是我过去给自己筑的那些壳。那些靠经验堆起来的护城河,那些"这个我做过那个我没做过"的壁垒,确实在瓦解。但同时,一个更深的问题浮了出来——没有这些壳,我到底是谁?答案不是"我有系统判断力"或者"我有架构经验",因为这些 AI 迟早也能学会。答案更底层:我是一个会对"它到底怎么跑起来的"感到好奇的人。我是一个遇到"4 个架构师都跑了"还是会扛下来的人。我是一个会在深夜里自己琢磨"我到底该怎么想"的人。

好奇、毅力、自我思考。这三样东西,跟代码无关,跟经验无关,跟行业积累也无关。它们是我这个人本身。AI 可以写代码,可以给出完美的方案,可以加速一切。但它没法替我感到好奇,没法替我在绝境中选择坚持,更没法替我去思考"我为什么在这里、我该往哪里去"。

十一年前,我作为学徒走进这一行,手里只有一双好奇的眼睛和一股不服输的劲。十一年后,当工具箱开始思考,我发现我又回到了原点——不是被打回去了,而是终于可以扔掉那堆沉重的铠甲,带着同样的好奇和劲头,重新出发。

这一次,我只带我自己。

站在 AI 的肩上,而不是阴影里(从写代码的人,到做决定的人)

至暗时刻

从银行离职后、加入那家智能家电独角兽前,我在家 Gap 了大半年。

那段时间,我尝试过很多事情。直播、送外卖、摆夜市,甚至还做过一个月的小区保安。妈的,那个队长总给我排夜班。我坐在小区的门岗里面,看着窗外的星星点点,看着凌晨的环卫工人扫街,看着拾荒者在垃圾堆里翻来翻去。手机里,Boss 直聘上的消息列表,是一眼望不到头的已读不回。

人生如棋,我在那一刻却不知道如何落子。

我试图破局。但每一种尝试都在告诉我同一个答案:不喜欢。我不喜欢直播时的自说自话,不喜欢外卖送到时门背后的冷漠,不喜欢保安亭里那种时间凝固的感觉。每一次尝试,都像在往一个错误的方向用力。

最后我不得不承认一件事:我就是喜欢写代码,我就是喜欢计算机这个行业。从 5 岁第一次碰到 Windows 95 的那一刻起,可能就已经注定了今天的结局。不是没得选,而是选了别的都不对。

焦虑是真实的,但行动才是解药

AI 浪潮下,时代在焦虑,公司在焦虑,个人也在焦虑。焦虑被淘汰,焦虑跟不上,焦虑抓不到风口。

我同样焦虑过。夜里抱着抖音和 B 站不停刷最新的 AI 新闻,每天都有新的技术名词冒出来,每天都在翻天覆地,每天都在技术革命,每时每刻都在淘汰。刷得越狠,心里的空洞反而越大。因为这些信息只是在告诉你一件事:你很危险。但它从不告诉你,你能做什么。

转折发生在一个很具体的决定上。

我沉下心来,决定开发一个自己的系统——炒股相关的,之前技术分享时给大家看过。这个决定本身并不宏大,但它改变了一切。

当我真正开始写代码,当我在 AI 的协助下看着系统一行一行丰满起来,看着那些功能从对话里变成真实的模块,我的心态从焦虑转成了兴奋。这种兴奋不是我抓住了什么风口,而是我发现,自己依然可以创造。AI 在我的对话中生成了目标代码,一行接一行,而我的内心从未如此平静。

这个平静不是麻木,是一种确信。确信我依然在解决问题,确信我依然在学新东西,确信这个行业还有我的一席之地。

AI 不是敌人,是放大器

这段经历,让我坚定了自己对 AI 的看法。

在我的认知里,目前的 AI 本质上是一个放大器和加速器——一个能力放大器。

借助 AI,我们可以在从未涉足的行业中,快速搭建出一个 MVP 版本。我们可以对自己好奇的任何领域,快速建立基本认知。过去我们学习技术的方式,无非是博客、CSDN、GitHub、Stack Overflow、书籍。那些途径依然有它们的价值,但它们有一个共同的局限:你只能在已有的知识库里打转。

更重要的是,过去我们学的东西,很多时候并不是由自己的兴趣发起的,而是需求导向——工作需要什么,你就得学什么。这种学习当然也有效,但它缺少一种"我想知道"的内驱力。而 AI 不同。它可以让你从"我需要学"切换到"我想知道"。任何你突然冒出的好奇心,AI 都能立刻给你一个起点。

这就是我要说的第三件事:站在 AI 的肩上,而不是活在它的阴影里。它不是用来取代你的,它是用来放大你的好奇心、你的持久力和你独立思考的。而这几样东西,恰恰是 AI 永远无法替你去做的。

从"写代码的人"到"做决定的人"

当我意识到 AI 是一个能力放大器之后,我开始重新审视自己的角色。过去十一年,我的核心身份是"写代码的人"——我的价值体现在我能多快、多好地把一个需求变成可运行的代码。但 AI 把这个环节的效率提升了十倍甚至百倍。如果我还把自己定义为一个"代码生产者",那我确实该焦虑。

但写代码从来不是目的,解决问题才是。

AI 能写代码,但它不能替你去定义"我们要解决什么问题"。它不能替你判断一个方案是优雅还是丑陋,不能替你权衡性能、成本和可维护性,更不能替你对线上故障负责。

所以我越来越清晰地看到一条路:未来的程序员,核心竞争力会从"我能不能写出来"迁移到"我知不知道该不该这样写,以及为什么"。我们要从执行者变成决策者,从写代码的人,变成做决定的人。

这不是一个遥不可及的愿景。在开发那个炒股系统的时候,我就是这么做的。AI 负责生成代码,我负责告诉它"方向不对,这个模块要重来"、“这个算法需要再考虑下边界条件”、“这里考虑到扩展性,我们换一种架构”。我不再纠结于每一行的语法,而是像站在一个更高的地方,看着整个系统的边界和方向。

那种感觉,其实比单纯写代码更好。因为它逼你去思考更根本的东西。

写在最后

说了这么多,最后想分享几句掏心窝子的话,希望能给大家带来一些不一样的思考。

第一句:别刷新闻了,找个东西写起来。

焦虑最大的来源,是你光在看别人做了什么,自己什么都没做。AI 的新闻你追不完,技术名词你学不完。但只要你打开编辑器,写下一行功能描述,让 AI 帮你生成第一个函数,你就已经从焦虑切换到行动了。行动是最好的解药,这真的不是一句鸡汤,是我在保安亭里看星星的时候想明白的。

第二句:保护你的好奇心。

AI 让学习的门槛降到了史无前例的低。以前你不懂一个东西,可能要翻三天文档;现在你问一句,它就能给你讲清楚。这种"想问就问、想学就学"的自由,是我们这代人最大的红利。别把好奇心丢了,去问"这个到底怎么做的",去问"如果换个方式行不行"。好奇心是你和 AI 之间最大的区别——它有知识,但没有好奇。

第三句:不要比谁写得快,去比谁想得深。

AI 写代码的速度你已经看到了。别跟它比速度,那是自寻烦恼。去比思考的深度,比你对业务痛点的理解,比你定义问题的清晰度,比你预见风险的能力。这些东西,是用十一年踩过的坑、经历过的失败、熬过的夜换来的。AI 可以学,但它没有亲身痛过。而你痛过,记住那份痛。

站在 AI 的肩上

十一年前,一个只会写 Servlet 的年轻人,第一次看到 Spring 项目时惊为天人。

十一年后,当对话框开始自己写出代码,他又重新成了一个学徒。

但这次的学徒,不再害怕。因为他终于明白,技术浪潮一波接一波,工具换了又换,但真正定义一个人的,从来不是手头的工具,而是那个握着工具的人——他的好奇心、他的毅力、他的思考方式。

AI 是一座山。你可以选择活在山脚的阴影里,觉得它挡住了所有的光;你也可以选择爬到它的肩上,借它的高度,看到比以往更远的地方。

我选择往上爬。

站在那里,我看见了十一年前那个第一次按下运行键的自己。他还是那个想搞清楚"它到底怎么跑起来的"男孩。只不过这次,他研究的对象不是 JDK 源码,不是机房架构,而是他自己——在 AI 时代,我到底是谁。

当任何知识都可以在网上获取时,学习的障碍就只剩下动机、好奇心和毅力。