在凌晨三点的IDE里,我悟了:一个996程序员的生存与学习之道
上周五晚上11点47分,我盯着屏幕上一行 Error: OutOfMemoryException,耳机里放着Lo-fi Hip Hop,脑子里却在想明天早上面试官会不会问“Redis缓存穿透和击穿的区别”。那一刻我突然意识到:我已经连续三周没完整看过一集《瑞克和莫蒂》了。
我在一家“福报”公司待了三年零四个月。说是“福报”,其实就是每天早上9点打卡,晚上9点才敢摸鱼看一眼招聘APP的状态——还不敢让Leader发现。团队氛围其实不错,PM虽然总在周三下午甩来新需求,但至少会说“辛苦了”,而不是直接@你“这个今天必须上线”。
最近开始学AI,不是因为我多热爱技术,纯粹是被逼的。去年双11大促前夜,系统崩了,日志里全是 Connection timeout to AI inference service。运维老哥一边骂“这破模型部署谁搞的”,一边把锅甩给我:“你不是写后端的吗?AI不也是代码?”
我心想:AI要是只是代码,那我还在这卷什么?早该去当算法工程师拿30K了。
当“平衡”变成奢侈品
说实话,“工作与生活平衡”这个词,在我们这种节奏下,听起来就像产品经理说“这个需求很简单”一样虚伪。
上周团建,Leader语重心长地说:“大家要劳逸结合。”
转头就在企业微信发了条消息:“下周三前,把LLM推理服务重构完,支撑Q2智能客服上线。”
我差点把咖啡喷到键盘上——那可是我计划用来刷LeetCode准备跳槽的时间!
但问题来了:我不想一辈子当CRUD Boy。
现在的面试题早就不是“手写快排”那么简单了。前几天面了一家A轮 startup,面试官上来就问:
“如果让你设计一个支持百万QPS的向量检索服务,你会怎么选型?Faiss 和 Milvus 有什么取舍?”
我当时脑子一片空白,只能硬着头皮扯了两句“倒排索引 + HNSW”,结果对方微微一笑:“看来你还没真正落地过。”
那一刻我明白了:技术深度,才是跳出99坊的船票。
我的“碎片化学习”实战:不是时间不够,是方法错了
以前我也试过“下班回家立刻学两小时”,结果往往是:
- 打开VS Code,改两行代码,收到企业微信消息
- 切过去处理线上告警(又是那个该死的空指针)
- 回来发现注意力断了,干脆刷会儿B站
- 睡前懊悔:“又浪费一天!”
后来我悟了:对抗996,不能靠意志力,得靠策略。
1. 把学习“缝”进工作流
我们组最近在做智能推荐模块,用到了Embedding + 向量搜索。
别人把它当黑盒调用,我偏要挖到底层。
于是每次debug模型返回异常时,我不光看日志,还会顺手翻Faiss的源码,甚至自己跑了个对比实验:
| 方案 | 构建时间 (s) | 查询延迟 (ms) | 内存占用 (GB) |
|---|---|---|---|
| Faiss-IVF | 12.3 | 8.7 | 4.2 |
| Milvus (CPU) | 18.5 | 6.1 | 5.8 |
| 自研HNSW (Rust) | 9.1 | 5.3 | 3.6 |
虽然最后因为交付压力还是用了Milvus,但我把这些数据整理成内部技术分享,顺带写了篇博客。
工作产出 + 学习成果 + 面试题素材,一箭三雕。
2. 音乐不是背景音,是“专注结界”
我习惯边听音乐边编码,但以前随便放网易云歌单。
现在我专门建了一个“深度编码”歌单:纯器乐、无歌词、BPM 60-80。
神奇的是,只要戴上耳机播这首 [Tycho - Awake],大脑自动进入“勿扰模式”。
连隔壁工位的测试小哥都知道:“他戴AirPods的时候,别找他提Bug。”
3. 把面试题当“开发心得”来积累
很多人刷题是为了背答案,我反其道而行——把每个面试题当成真实项目痛点。
比如“如何防止缓存雪崩”,我不光记“加随机TTL”,还会在本地搭个Redis Cluster,故意触发雪崩,看监控指标怎么爆:
# 模拟大量Key同时过期
for i in {1..10000}; do
redis-cli SET "user:$i" "data" EX 60
done
# 60秒后,观察CPU飙升
然后写一篇《一次真实的缓存雪崩事故复盘》,里面既有代码、监控图(文字描述)、也有解决方案。
下次面试被问到,直接说:“我上周刚处理过类似case,这是我们的优化方案……”
比背八股文强一百倍。
跳槽不是逃避,是重新定义“平衡”
很多人觉得“换工作就能平衡生活”,天真了。
我面过几家标榜“Work-Life Balance”的外企,结果技术栈还是Spring Boot + MySQL,三年经验干五年活。
真正的平衡,是掌握主动权——能选择做什么项目、用什么技术、要不要加班。
所以我现在学AI,不是为了转行,而是让自己具备“不可替代性”。
当你会用LangChain搭建Agent,能调优Llama.cpp推理性能,还能把向量数据库压测到极限……
你就不是“可替换的螺丝钉”,而是“能解决问题的人”。
这时候,谈薪资、谈弹性工作、谈拒绝无效需求,才有底气。
上周我提交了离职申请。
Leader很惊讶:“你不是刚做完智能客服吗?下个季度还有大模型网关项目!”
我笑了笑:“正因为做完了,才知道外面的世界有多大。”
最后一点真心话
我知道很多人和我一样:
- 想学新技术,但下班只想躺平
- 想跳槽涨薪,但简历没亮点
- 想平衡生活,但KPI压得喘不过气
但请记住:你不是机器,不需要24小时待机。
哪怕每天只抽出30分钟,专注地读一篇论文、跑一个Demo、写一段总结,
三个月后,你会感谢那个没有放弃的自己。
我现在依然996,但心态变了。
不再抱怨“为什么又是我加班”,而是想着“这段代码能不能抽象成通用组件?”
不再焦虑“学不动了”,而是记录:“今天搞懂了Transformer的Positional Encoding,开心!”
对了,昨天终于看完《瑞克和莫蒂》S6E5。
片尾曲响起时,我合上电脑,对自己说:
“You pass butter? No, you build the future.”
附:我的“防崩学习清单”(亲测有效)
- 每日微目标:不求“学2小时”,只求“搞懂1个概念”(比如今天弄清RAG的检索流程)
- 代码即笔记:所有学习都伴随可运行代码,存在GitHub私有库,面试直接show
- 拒绝完美主义:先跑通,再优化。很多同学卡在环境配置就放弃了
- 利用通勤时间:听AI播客(推荐Lex Fridman),比刷短视频有用十倍
- 定期输出:哪怕只是朋友圈发一句“今天学会了用LangChain调用本地LLM”,也是正反馈
面试题千变万化,但开发心得才是你独一无二的护城河。
别让996偷走你的成长——你值得更好的未来,不只是更好的offer。

评论 0