【CSDN 编者按】在很多开发者的职业叙事中,15 年往往意味着倦怠、麻木、被无穷无尽的需求和工单压得喘不过气。但本文作者给出了另一种视角:在软件开发这个高速变化、永远有坑、永远有惊喜的行业里,依然有人能从一行小脚本、一个冷门的系统洞察、一次微不足道的自动化里找到持续 15 年的热爱。
翻译 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
今天我突然意识到,相比很多同事,我其实过得还算不错,而他们过得又比很多现实生活中的朋友更不错。
但真正让我意外的是:15 年了,我居然还能从软件开发里获得快乐。
人生里能保持 15 年吸引力的事并不多。我能想到的另一个,就是开车 —— 一条空旷的公路、一辆靠谱的车,甚至都不需要音乐,轮胎与柏油路的摩擦声就足以让我心安。
在我看来,编程跟开车很像:纯粹、有沉浸感、有属于自己的小世界。所以今天我想聊聊:15 年后,编程、代码、软件开发,究竟还有什么值得让我着迷。


那些微小到几乎没人注意,却让我 " 爽到飞起 " 的改进
别误会,我当然也喜欢那些带来巨大业务价值的大功能 —— 那是我拿工资的理由。但真正让我 " 兴奋 " 的,是那种每天能省五分钟、每周能省一小时、只有我自己知道价值的小优化。
例如,上周我写了一行代码,把某个老是重复出现的错误引导到另一条执行路径。这个 Bug 手动修只需要十分钟,但现在?我再也不用处理了。
这一行代码背后,是我十五年的经验积累、对系统细节的理解、对数据流的洞察——就为了那种 " 啊我懂了,我能搞定 " 的瞬间。
这种体验,比写一个大功能还让人满足。

写下一行代码背后,站着几十年、几千人的努力
下次你在 VS Code 里敲一个字母,自动补全啪一下弹出时,停下来想一秒:
为了这一行补全,多少人贡献了代码?多少人免费修过 Bug?多少想法从七十年代传递至今?
我们今天的每一次敲击,都踩着前辈们的肩膀:有些人已经去世,有些人再也没写过代码,有些人曾为你每天用的某个 API 做过演讲……这一切共同组成一个让人惊叹的事实:软件世界是少有的 " 知识共享无边界 " 的行业。所有程序员都能在 StackOverflow 上互相帮忙修算法 Bug,只因为那是个有意思的问题。
然而绝大多数现实世界的行业不会这样 ——你很难看到哪位木匠愿意把 " 祖传手艺 " 免费告诉陌生人。

布尔值背后的灰色地带:技术讨论永远比代码本身复杂
理论上,技术世界是最 " 布尔 " 的世界:
要么跑,要么挂
要么编译通过,要么报错
要么 1==1,要么不等
但实际呢?任何一个看似简单的决定,都能变成激烈讨论、政治博弈、甚至心理战。
有趣的是,这些讨论往往不是坏事。其他开发者、其他团队、甚至你的老板都有可能提出有价值的观点,帮助你更完整地理解问题。而这些 " 灰色地带 " 让软件开发充满人味——代码世界是布尔的,但团队世界永远不是。
庆幸的是,我现在的位置仍让我能 " 亲自下场写代码 "。讨论完之后,最终落地的那一行代码 —— 才是我真正期待的事情。

中间件开发的乐趣:让两个巨大系统听懂彼此
我近年的大部分工作是写中间件,说实话:这是我最喜欢的活之一。
中间件看似只是 " 转发数据 ":理解系统 A 的输出,理解系统 B 的输入,处理常规情况,兜住边界情况,设计稳定的转换逻辑。但里面可以玩的东西非常多,例如数据校验、数据转换、监控、异常追踪、防火墙与代理、编码问题、部署、可观测性、稳定性设计等等。
哪怕连最无聊的中间件,都能让我脑子一直保持兴奋。毕竟,我一个人就可以把完整的中间件从头到尾写完,并且三年后它仍能稳定运行。
不是因为我多厉害,而是因为输入 / 输出够稳定,数据量足够大让逻辑变得 " 超级可靠 "。这种感觉,像养了一缸自动运行的生态鱼缸 —— 自己偶尔看一眼监控,都觉得很舒服。

技术圈里对热点的吵闹,让我越来越享受 " 做一个安静的旁观者 "
关于 AI,我只想说两点:
(1)还记得几年前大家把 " 低代码 " 吹上天的声音吗?
(2)奇怪的是,程序员自动化别人工作时从不担心,但轮到自己被自动化时不少人都开始慌了。
老实讲,我每天都能找到 ChatGPT 的使用场景:小自动化脚本、大流程优化、文档生成、调试辅助、快速查资料(代替我自己摸索几十分钟),那些喊着 "LLM 完全没用 " 的人,对我来说比 AI 狂热吹捧者还奇怪。
他们吵得越厉害,我就越喜欢在旁边安安静静地用 AI 工具赚钱、写代码、提效。

所谓 " 枯燥的业务系统开发 ",其实是最能激发创造力的地方
我的职业生涯几乎都在 " 老系统 + 工业级软件架构 " 里打滚。有人觉得这很无聊,总是改小 Bug、加小功能、在巨大单体里扩一个子模块或者受制于几十年前的架构决策——但你知道吗?入行 15 年,我就是喜欢这种约束。因为正是这些限制,让软件开发对我来说充满了乐趣。
很多有缺陷的系统既僵化又难以改变,但恰恰在这种情况下,总有空间去做定制开发、寻找务实的解决方案,或者自己写代码在两个大型系统之间搭建桥梁。还有那些 " 居家版 DevOps" 解决方案,可能不如成熟工具那么花哨,但能以 20% 的工作量达到 80% 的效果。
更重要的是:这种定制开发的需求永远都很明确。需求、输入输出都有明确的定义,而且需求是即时存在的。我从来不需要考虑产品市场匹配(PMF),因为市场本身就迫切需要我的产品,而且通常会明确告诉我他们需要什么 —— 而不是我到处问 " 有人需要这个吗?"。
对我来说,在时间、预算和架构的限制下工作,正是我现在坚持下去的动力。我已经写了太多的 for 循环和 if 语句,普通的软件开发对我来说已经有些重复了。
当然,你也不能整天只设计系统,否则会脱离实际,看不到那些从宏观视角会忽略的小问题。所以我的工作中需要有实际的编码部分 —— 而且我更希望这些编码工作能有趣、有挑战性,而不是每天重复写那些早就写过几千遍的代码。

软件开发,是我生活里最不无聊的部分
每当我对工作有点厌倦,我只需要去一趟超市,看一看普通人的 "NPC 模式 "。
你会瞬间意识到:
能坐着写代码,是一种奢侈。
就算是最糟糕的日子,我们也能接触到一个充满不变真理的世界:信息可以自由获取,身边的人通常都很聪明且通情达理。但每次我踏入现实世界,都会明显感觉到巨大的落差 —— 我总觉得,在我遇到的人里,大概有一半的人随时处于 " 主系统维护中 "。
再加上软件开发这个领域如此多样化,没有任何人能彻底理解其中的十分之一。所以在入行十年后,这个职业带给我们的回报,早已不只是金钱 —— 还有很多身边人无法获得的、意想不到的收获。
因此,我有信心,15 年后我会再写一篇文章:《入行 30 年,我依然为软件开发着迷的那些事》。


