有一段时间,我经常有一种奇怪的感觉。
每天都很忙。
会议很多。
需求很多。
问题很多。
别人看起来可能觉得:
一个工作十几年的技术人,应该已经非常稳定了。
有经验。
懂业务。
能解决复杂问题。
遇到事情也能够扛下来。
可是只有自己知道:
心里其实一直有一种隐隐的不确定感。
我开始问自己几个问题。
如果五年以后,公司不再需要现在的我。
我还能依靠什么?
如果未来技术变化越来越快。
过去积累的经验,还有多少价值?
如果有一天,我离开现在的位置。
我真正拥有的东西是什么?
这些问题,以前我很少认真想。
因为每天都有新的任务。
新的需求。
新的问题。
就像一个运行中的线上系统。
只要没有宕机。
就很少有人愿意停下来检查。
但是某一天,我突然意识到:
过去十几年,我一直在维护公司的系统。
可是:
我好像很少认真维护自己的人生系统。
01 程序员会做 Code Review,却很少给自己做人生 Review
作为程序员,我们都知道:
代码写久了,一定会产生问题。
哪怕最开始的设计非常合理。
随着需求不断增加。
功能不断叠加。
人员不断变化。
系统里面一定会出现:
历史代码。
临时方案。
隐藏依赖。
这些东西,在刚开始的时候没有问题。
甚至帮助系统快速上线。
但是时间久了:
它们会慢慢变成维护成本。
这就是技术债。
成熟的软件团队,会定期做一件事情:
Code Review。
不是为了证明谁写错了。
也不是为了否定过去的设计。
而是:
重新理解系统。
发现隐藏风险。
优化未来架构。
后来我发现:
人生其实也是一样。
我们年轻的时候,也在不断写自己的”人生代码”。
为了进入更好的公司。
我们学习技术。
为了证明自己的价值。
我们承担更多责任。
为了获得稳定。
我们接受组织安排。
为了完成目标。
我们牺牲时间和健康。
这些选择,当时都是合理的。
因为它们帮助我们走到了今天。
但是问题是:
很多代码上线以后,就再也没有回头维护。
很多人生选择也是一样。
我们不断增加功能。
不断增加责任。
不断增加负载。
却很少停下来问:
现在这套系统,还适合未来十年吗?
02 我的第一次人生代码审查:发现自己欠了几笔债
当我开始认真检查自己的时候。
我发现:
很多问题,并不是突然出现的。
它们早就在系统里存在。
只是以前:
年轻。
机会多。
身体还能扛。
所以没有暴露出来。
就像一个运行多年的系统。
平时看起来没问题。
但是流量增加以后。
隐藏的问题开始出现。
第一笔债:能力债
我第一个检查的问题是:
这些年,我到底积累了什么?
过去十几年。
我学过很多技术。
参与过很多项目。
解决过很多复杂问题。
但是如果有一天:
脱离现在的公司环境。
这些经验还能不能产生价值?
这个问题让我停顿了很久。
因为以前我认为:
技术能力,就是我的核心资产。
但是后来我发现:
技术只是能力的一部分。
真正有长期价值的东西,应该是:
我解决问题的方法。
我理解业务的能力。
我总结出来的规律。
我形成的判断体系。
如果这些东西只存在我的脑子里。
随着项目结束消失。
那么它更像:
一次性的代码。
而不是:
可以复用的组件。
第二笔债:经验债
这是很多技术人的共同问题。
我们经常说:
“我有十几年经验。”
但是后来我开始问自己:
这十几年,是十几年成长?
还是一年经验重复了十年?
区别很大。
如果每一年:
都有新的认知。
新的方法。
新的沉淀。
那么经验会产生复利。
但是如果只是:
不断完成任务。
不断解决问题。
不断进入下一个项目。
那么时间只是增加了熟练度。
经验真正的价值,不在于经历过多少事情。
而在于:
你有没有从经历中提炼出自己的系统。
第三笔债:表达债
这是我以前低估的一笔债。
技术人很容易相信:
只要事情做好。
价值自然会被看到。
代码写好了。
系统稳定了。
问题解决了。
事实证明:
并不完全如此。
因为随着职业阶段变化。
你的价值越来越复杂。
年轻的时候:
你的价值可能体现在:
写代码。
解决Bug。
完成需求。
但是到了中后期:
你的价值更多体现在:
判断。
决策。
影响。
协作。
这些东西,如果不能被表达。
别人很难理解。
这不是让自己包装。
而是:
升级自己的沟通接口。
过去:
我和世界连接的接口是代码。
未来:
我需要增加新的接口:
文字。
表达。
影响力。
方法论。
第四笔债:依赖债
这是我后来意识到比较严重的一件事情。
很多技术人的职业系统,其实是一种单节点架构。
结构很简单:
公司
↓
岗位
↓
工资
↓
生活
过去很多年。
这个系统运行得很好。
公司提供平台。
岗位提供收入。
我提供能力。
彼此交换。
但是任何系统都有风险。
公司会变化。
行业会变化。
岗位会变化。
如果整个系统只有一个节点。
那么风险其实很高。
所以我开始思考:
除了当前工作。
我有没有建立自己的备用系统?
不是说马上离开公司。
也不是说所有人都应该创业。
而是:
未来的自己。
有没有更多选择?
有没有:
自己的知识资产。
自己的持续输出。
自己的个人影响力。
这些东西短期看不到收益。
但是它们是在为未来建立:
故障转移能力。
第五笔债:身体债
这一笔债,是很多技术人最容易忽略的。
年轻的时候。
我们习惯认为:
身体可以恢复。
熬夜。
加班。
高压力。
都可以扛过去。
但是到了40岁左右。
我越来越意识到:
身体不是普通模块。
它是整个系统的基础设施。
如果底层资源不足。
上层所有功能都会受到影响。
未来十年的竞争。
不仅仅是能力竞争。
也是:
系统稳定性竞争。
03 人生代码审查,不是为了否定过去
当我把这些债列出来的时候。
其实有一瞬间,我也会产生一个想法:
是不是以前走错了?
后来我发现:
不是。
真正优秀的工程师,不会责怪旧代码。
因为他知道:
当年的设计。
一定是在当年的约束条件下做出的最佳选择。
年轻时候追求技术。
没有错。
努力工作。
没有错。
承担责任。
没有错。
这些选择,构成了今天的自己。
代码审查的目的,不是批判过去。
而是:
理解过去。
优化现在。
设计未来。
人生也是一样。
04 40岁以后,我想重新设计自己的人生系统
这也是我开始写《人生 Debug》的原因。
我不是因为已经找到了答案。
恰恰相反。
是因为我也正在寻找答案。
我想记录:
一个40岁程序员,
如何重新检查自己的系统。
哪些地方需要修复。
哪些地方需要升级。
哪些地方需要重新设计。
也许未来某一天回头看。
现在写下的这些文字。
就是这一次人生重构留下的版本记录。
如果你也处在人生某个版本切换阶段。
也许你也可以问自己几个问题:
过去十年。
我真正积累了什么?
哪些能力正在失效?
哪些经验还没有被转化?
我的人生系统。
有没有隐藏的单点故障?
未来十年。
我希望自己成为怎样的人?
这些问题。
不一定马上有答案。
但是:
值得开始一次审查。
因为:
不知道自己欠了什么债。
就不知道未来应该优化哪里。
人生不会因为一次代码审查,就变得完美。
系统也不会因为一次重构,就永远稳定。
但是:
一个愿意持续Debug自己的人。
至少不会一直运行在旧版本里。
我是语霖。
执笔为语,心落成霖。
希望用文字和声音,记录一个40岁程序员重新设计人生系统的过程。
我们下一篇继续聊。