500期特辑:从Java后端到AI工程师,我这三年经历了什么
500期特辑:从Java后端到AI工程师,我这三年经历了什么
适读人群:所有一路陪伴的读者,以及正在或考虑转型的Java工程师 | 阅读时长:约25分钟
写在前面
今天是第500篇。
我盯着这个数字看了很久。500,不是一个很大的数字,但对我来说意味着很多个晚上的加班,很多个周末的沉淀,很多次"这篇写完算了"又硬撑下去的经历。
原本想写一篇纯技术的,但编辑说:第500篇,能不能写得特别一点?
想了想,决定写一篇真实的经历记录。不是鸡汤,不是成功学,就是我这三年从一个"Java写了十几年、对AI一无所知"的工程师,一路摸爬滚打到现在的故事。希望对正处于迷茫期的你,能有一点点用处。
开篇故事:那个让我害怕的下午
2022年的某个下午,我正在review代码,同事丢给我一个链接:ChatGPT正式开放,快去试试。
我注册了账号,问了一些技术问题。它回答得出奇地好——不是"搜索结果的堆砌",而是真正理解了问题,给出了有逻辑的答案。
那天下午我没心思继续工作。我脑子里一直在转一个问题:如果AI能回答技术问题,那我这个Java工程师,还有多少价值?
说不害怕是假的。我当时38岁,在一线城市,上有老下有小,背着房贷。技术人最害怕什么?不是加班,不是需求变更,而是有一天发现自己的技能突然不值钱了。
那天晚上我失眠了。
一、第一年:从害怕到好奇(2022年底 - 2023年底)
1.1 先搞清楚它能做什么,不能做什么
失眠之后,我做了一个决定:与其害怕,不如先搞清楚这个东西到底是什么。
我开始密集地研究LLM。不是从原理入手(Transformer架构、注意力机制那些),而是从工程角度:它能做什么?边界在哪?怎么出错?怎么集成进系统?
这个角度让我找到了自信:AI并不是要替代工程师,它是工程师的新工具。就像当年数据库、框架出来,不是要替代程序员,而是让程序员能做更复杂的事情。
但你得会用它。
1.2 第一个AI项目:失败中学习
2023年初,公司想试水AI,我主动请缨做了一个内部文档问答系统。技术栈:OpenAI API + Java + Spring Boot + 向量数据库。
说实话,第一版做得一塌糊涂。
召回率很低,用户问的问题一半以上找不到对的答案。Prompt写得太简单,LLM经常"发挥创意",答非所问。没做安全防护,被同事测出可以让它说奇怪的话。
但我从那次失败里学到的东西,比我前三年的技术积累还多——因为这是一个完全不同的范式:不是"我写逻辑,机器执行",而是"我设计场景,机器推理"。
1.3 开始写公众号:记录是最好的学习方式
那时候我养成了一个习惯:每次搞懂一个新东西,就写一篇文章。不是为了涨粉,就是为了逼自己把理解整理清楚——你能讲清楚的,才是真的懂了。
就这样,500篇的序章开始了。
二、第二年:从会用到会设计(2023年底 - 2024年底)
2.1 技术转折点:Function Call
2023年6月,OpenAI发布了Function Calling(后来改名Tools)。对我来说,这是一个真正的转折点。
在这之前,LLM对Java工程师来说更像是"一个聪明的文本生成器",和我们的系统集成需要大量的字符串解析。有了Function Calling,LLM可以结构化地"调用"Java代码——这才是我们Java工程师真正能发挥价值的地方。
我花了整整一个月研究这套机制:JSON Schema怎么写好、工具调用怎么做安全防护、多步骤调用怎么编排。这些内容后来变成了这个系列的第491-499篇。
2.2 真正的挑战:从POC到生产
做POC(概念验证)很容易,Demo总是很好看。但把AI功能做到生产可用,才是真正的硬功夫。
我遇到过的真实问题:
- 稳定性:LLM的API会超时、限流,响应时间波动大,怎么做容错?
- 成本:Token用多了成本爆炸,怎么在效果和成本之间平衡?
- 可测试性:LLM的输出有随机性,怎么写测试?怎么做回归测试?
- 可解释性:AI做了一个决策,用户不理解,怎么给解释?
- 数据安全:用户数据传给LLM,怎么避免敏感信息泄露?
这些都不是AI问题,是工程问题。而这些,恰恰是有十几年经验的Java工程师最擅长的。
这让我意识到:AI时代,工程能力没有贬值,反而更重要了。
2.3 Spring AI:Java工程师的AI框架
2024年,Spring AI正式进入我的视野。对Java工程师来说,它的意义远不止是"又一个API封装"——它把AI集成变成了Spring风格的、熟悉的、有IoC/DI支持的开发方式。
我花了大量时间研究Spring AI的源码,特别是FunctionCallback的实现(第492篇)。这让我更深刻地理解:未来的Java工程师,不是和AI竞争,而是和AI协作,用AI能力扩展自己的工程能力边界。
三、第三年:找到自己的定位(2024年底 - 至今)
3.1 我对"AI转型"的理解变了
刚开始做这个公众号的时候,我以为"AI转型"是指:从Java工程师变成AI工程师,学机器学习,学深度学习,学模型训练。
三年后,我觉得这条路对大多数后端工程师来说是错的。
真正有价值的转型是:用AI扩展你已有的工程能力,做出以前做不了或做得很慢的东西。
拿我自己举例:
- 以前做一个需求分析助手要3周,现在用LLM+工具调用,1周能做一个可用版本
- 以前写单元测试,能覆盖60%,现在结合AI辅助,轻松90%+
- 以前做代码review,靠经验靠记忆,现在有AI辅助,漏掉的问题少多了
我还是Java工程师,还是在做后端系统,但效率、质量、以及能做的事情的范围,都不一样了。
3.2 这三年踩过最深的坑
技术上最深的坑:相信LLM能自动"理解"一切
初期我高估了LLM的理解能力,以为只要描述清楚需求,它自然会做对。结果吃了很多苦头。真相是:LLM对细节极度依赖Prompt,description写差了,它就会做出荒谬的事情。
后来我总结出一个原则:把LLM当成一个聪明但缺乏常识的实习生——它需要非常清晰的指示,在规则内效率极高,但不要让它"自由发挥"关键逻辑。
工程上最深的坑:把LLM直接面向用户,没有防护层
第一个上线的AI功能,没有做充分的安全防护。上线两天,被用户测出了Prompt注入——用户可以通过特定的输入绕过系统限制,让AI说出不应该说的话。
这件事让我很警醒:AI安全不是加个过滤词就完了,是一个系统性的工程问题。后来我专门整理了安全相关的内容(第495篇)。
认知上最深的坑:总想"等成熟了再学"
2022年底的时候,我有个想法:等LLM生态成熟了、框架稳定了再深入学,现在学的东西可能很快过时。
结果就是我比很多同行晚了大半年真正动手。而动手之后发现,那些"过时的"基础知识(Transformer原理、Embedding、RAG、Function Call),恰恰是现在所有应用层框架的基础,没有过时,只有更重要了。
教训:在技术爆发期,早动手比学得深更重要。
3.3 给还在犹豫的Java工程师
我见过两种极端的同行:
一种是"完全不理会AI,觉得炒作泡沫"。三年后,他们做的事情和三年前没什么区别,但市场上要求"AI+Java"的岗位越来越多,他们的选择空间在收窄。
另一种是"焦虑转型,把所有时间都投入学AI",但因为基础不扎实,学到的只是表层,在真正的系统设计问题面前一样无从下手。
我走的是第三条路:把AI能力嫁接到已有的Java工程能力上,做别人做不了的事情。
具体来说:
- Java后端的核心优势是:系统设计、并发处理、事务管理、性能调优
- 这些能力在AI系统里不但没有贬值,反而是稀缺的
- 真正复杂的AI系统(高并发的工具调用、可靠的Agent、安全的数据处理),需要的就是这些
你不需要成为AI研究员,但你需要成为"能用AI构建可靠系统的Java工程师"。
四、对未来三年的判断
写公众号这件事,让我养成了一个习惯:定期整理自己对行业的判断,有错了就改,别死守着一个观点不放。
以下是我现在的几个判断,供参考,不一定对:
判断一:LLM能力还会持续提升,但不是无限的
我不相信AGI会在近3年内完全取代软件工程师。但我相信,能力等于"中级工程师水平"的AI在某些特定任务上,已经超过了很多工程师。会和AI协作的工程师,会越来越有竞争力。
判断二:Agent是下一个主战场
目前大多数AI应用还停留在"问答"和"生成"层面。真正有商业价值的是能"行动"的Agent——能调API、能查数据库、能执行任务的系统。这是Java工程师的优势区域。
判断三:工程基础越来越重要
模型能力提升之后,瓶颈会从"AI能否理解"转移到"系统能否可靠地运行"。安全、稳定性、可观测性、成本控制——这些都是传统工程能力的范畴。
判断四:不要只学工具,要理解原理
Spring AI、LangChain、各种Agent框架,会不断出新版本、甚至被取代。但Transformer原理、Function Call机制、RAG的本质,这些是稳定的。花时间理解原理,应对变化才游刃有余。
五、500篇的数字背后
说一些数字:
这500篇文章,我大概写了120万字。
每篇文章平均花4-6小时:研究源码、整理思路、写草稿、修改、排版。500篇大概是2500小时。
这2500小时,很多是深夜孩子睡着之后,我一个人坐在书桌前,泡一杯茶,打开电脑开始写。
有时候会迷茫:写这些有什么用?看文章的人那么多,真的认真看的有多少?
但每次收到读者留言——"老张,这篇救了我,我排查那个Bug排了三天,看了你的源码分析,10分钟找到了"——我就觉得值了。
有一次,一个读者在评论里说:我是你的忠实读者,因为一直在看你的文章,去年年初换了份工作,做AI基础设施,薪资涨了40%。谢谢你。
那条留言我截图存着,每次想放弃的时候就翻出来看看。
六、感谢
这500篇,不是我一个人写出来的。
感谢每一个看到最后的读者。你们的阅读、点赞、在看、转发、留言,是我最大的动力。
感谢那些指出我错误的读者。有几次我在源码解析里犯了错误,是读者在留言里纠正的。正是因为有认真看文章的你们,这个公众号才有可能做得越来越好。
感谢那些在迷茫时来问我的同行。每一个问题,我都认真回答,因为我知道那种迷茫是什么感觉。
七、接下来的方向
第501篇开始,我打算继续做这件事:把我在工作中真实遇到的问题,把我花时间研究的技术,写成能帮到你的文章。
接下来我想深入的方向:
- Spring AI深度源码:FunctionCallback、ChatMemory、VectorStore的完整实现
- Agent系统工程实践:可靠性、可观测性、成本控制
- Java + LLM的最佳实践:这是我最想沉淀的内容
如果你有想看的主题,欢迎在评论区告诉我。
结尾
三年前那个失眠的夜晚,我害怕AI会让我的技能变得不值钱。
三年后,我非常庆幸自己没有逃避,而是选择了正面研究它、使用它、写文章分享它。
这个行业变化很快,会让人焦虑。但我越来越相信一件事:踏实做事的人,在任何时代都有位置。
技术在变,工具在变,但解决问题的能力、把事情做可靠的能力、让别人能用上东西的能力——这些是永远值钱的。
第500篇,谢谢你们。
一起加油。
老张
2026年4月
