从测试转开发三年,我在天通苑踩过的坑和悟出的道

奇妙之云端
2026-05-10 04:00
阅读 3881

去年十月的一个周五晚上,我窝在天通苑13号楼那间月租3500的次卧里,一边啃着外卖凉透的黄焖鸡,一边盯着屏幕上疯狂报错的CI流水线。老婆在隔壁房间刷剧,声音不大不小,刚好能让我听见“主角又开挂了”——而我,连个最简单的API接口都调不通。

那一刻,我真想砸键盘。

但我不敢。毕竟这台MacBook是我咬牙分期买的,月薪刚从15k涨到22k,离“财务自由”还隔着十个西二旗早高峰的距离。更重要的是,我是那个从测试岗硬生生转成开发的人,没人会给我“试错宽容期”。


起点:测试不是终点,但很多人困在里面

三年前,我还是某二线互联网公司的黑盒测试工程师。每天的工作就是点点点、写写写测试用例,偶尔怼一怼开发:“你这逻辑明显有问题!”
但他们回我一句:“你行你上啊。”

我真上了。

辞职那天,HR问我:“你确定要裸辞转开发?现在行情不好,测试岗好歹稳。”
我说:“我不想一辈子只当那个说‘有问题’的人,我想成为那个‘解决问题’的人。”

于是,我花三个月啃完了《深入理解计算机系统》、刷了LeetCode 200题、搭了个简陋的个人博客项目。投简历时,我特意把“熟悉自动化测试框架”改成“具备后端开发潜力”,结果第一轮技术面就被问懵了:“讲讲Redis的ZSet底层实现?”
我支支吾吾说了半天跳表,面试官笑了笑:“兄弟,你这水平,怕是连我们实习生都不如。”

那段时间,我住在天通苑东三区一个合租房里,每天6:30起床挤地铁去中关村面试,晚上10点回来泡面充饥。焦虑得整夜失眠,脑子里全是“是不是选错了路”“30岁转行是不是太晚了”。


转机:Prompt工程救了我?

转折点出现在去年春天。

当时我已经入职一家做AI工具的小公司,职位是“初级全栈开发”。名义上是开发,实际上还是干了不少测试活儿——谁让我有“质量保障基因”呢?但老板看我学习能力强,让我参与一个内部智能客服系统的重构。

这个系统要用大模型生成对话回复,而我的任务之一,就是设计Prompt模板,让LLM输出更稳定、更符合业务语境。

一开始我以为Prompt工程就是“多写几个例子+加个system prompt”,结果上线第一天就炸了。用户问“怎么退款”,模型回:“亲亲,建议您联系客服哦~❤️”,然后附带了一段毫无逻辑的购物推荐。

我被产品总监当众diss:“你这Prompt写得跟小学生作文似的,能用吗?”

当晚我复盘,意识到一个问题:Prompt不是魔法咒语,而是系统设计的一部分。

于是我开始用开发思维重构Prompt:

  • 把业务规则拆解成结构化约束(比如“退款流程必须包含:申请入口、审核时间、到账周期”)
  • 设计fallback机制:当置信度低于阈值时,自动转人工
  • 引入few-shot learning + chain-of-thought,让模型“先思考再回答”
  • 最关键的是——把Prompt当作代码一样做版本管理、单元测试、灰度发布!

我还写了个小工具,能自动对比不同Prompt版本的输出质量,用BLEU、ROUGE甚至业务指标(比如用户是否继续追问)来评估效果。

没想到,这套方法论在内部火了。老板说:“你这思路,比纯算法团队还工程化。” 后来我甚至被邀请去给其他组做分享,标题就叫《Prompt工程不是玄学,是架构设计》。

那一刻,我才真正觉得自己像个“开发”。


架构思考:别让技术变成空中楼阁

很多人以为转开发就是会写CRUD就行。但现实是,真正的分水岭在于有没有架构意识。

举个例子:我们系统有个需求,要支持动态配置Prompt模板。最初我直接把模板存在数据库,前端改完保存,后端读出来拼字符串塞给LLM。

看似简单,实则埋雷无数:

  • 模板语法错误会导致整个服务崩溃
  • 没有版本回滚,改错一次全量用户受影响
  • 无法灰度,新模板一上线就得赌命

后来我重构了整个链路:

  1. 引入Prompt Schema校验(类似JSON Schema),确保语法合法
  2. 设计双写机制:编辑态存草稿,审核通过才生效
  3. 加入A/B实验能力,支持按用户ID分流
  4. 输出日志结构化,方便后续分析bad case

这其实就是一个微服务的设计思维——边界清晰、容错兜底、可观测、可迭代。

我常跟新人说:“别把自己当成‘功能实现者’,要当成‘系统构建者’。哪怕只是一个Prompt,也要问自己:它会不会崩?崩了怎么办?怎么验证它对不对?”


求职启示:你的差异化在哪?

上周我和一个同样想从测试转开发的朋友聊天。他说:“我现在天天刷算法,但感觉和科班生比差太远了。”

我反问他:“你有没有想过,你的测试经验其实是优势?”

他愣住了。

我说:“科班生可能代码写得溜,但他们往往缺乏对‘系统可靠性’的敏感度。而你,知道一个bug是怎么产生的,知道用户会在哪里卡住,知道什么叫‘不可接受的体验’——这些恰恰是高级开发最需要的直觉。”

我自己求职时,就刻意突出这点。面试时不说“我会Spring Boot”,而是说:“我重构了一个AI服务的Prompt管理模块,通过引入版本控制和灰度发布,将线上bad case率降低了60%。”

HR眼睛都亮了。

现在回头看,从测试转开发最大的红利,不是技术栈的切换,而是视角的升维。你不再只关心“这个功能能不能跑”,而是思考“这个系统能不能扛住真实世界的混沌”。


天通苑的深夜:焦虑与希望并存

写这篇文章的时候,已经是凌晨1点。窗外偶尔传来外卖电动车的喇叭声,隔壁情侣还在吵架。房租又要交了,老婆说想换个离她公司近点的房子,但我算了算账,还是劝她再忍忍——毕竟现在这份工作,让我第一次觉得“转行没选错”。

这三年,我踩过无数坑:

  • 以为会写Python就能当后端,结果连线程安全都没搞懂
  • 盲目追新技术,学了一堆LangChain、LlamaIndex,结果业务根本用不上
  • 和产品吵架,说“技术做不到”,后来才明白是自己没找到trade-off的平衡点

但也攒下了一些心得:

  1. 技术深度 > 技术广度:与其泛泛了解十个框架,不如吃透一个系统的完整链路
  2. 工程思维是护城河:Prompt也好,微服务也罢,核心都是“如何构建可靠、可演进的系统”
  3. 别羞于自己的非科班出身:你的跨界经历,可能是别人没有的洞察力

结语:技术人的长期主义

有人说,AI时代,程序员要失业了。
但我觉得,真正会被淘汰的,是只会写样板代码的人;而懂得设计系统、理解业务、拥抱变化的人,永远稀缺。

Prompt工程只是个缩影。它让我明白:技术不是孤立的工具,而是为了解决真实问题而存在的有机体。无论是写SQL、调模型,还是画架构图,最终都要回到“用户是否满意”“系统是否健壮”这两个原点。

如果你也在转行路上挣扎,或者正被某个技术难题折磨——别慌。
我在天通苑的这间小屋里,也曾无数次怀疑自己。但只要每天进步一点点,把每个坑都变成垫脚石,路总会走出来的。

共勉。

(完)

P.S. 最近在研究如何用LLM辅助代码审查,如果你也在做类似实践,欢迎交流。微信:xxx(假装有)。
P.P.S. 天通苑房租真的该降了。

评论 0

最热最新
暂无评论
奇妙之云端Lv.1
0
影响力
0
文章
0
粉丝