真正的宿敌是什么意思?如何区分普通对手和宿敌!
这话题听着有点玄乎,但真要往深了琢磨,差别大了去了。我这人做事就喜欢刨根问底,不管是写代码还是跟人打交道,总想搞清楚底层的逻辑。说到“宿敌”,很多人第一反应就是死对头,见面就干一架的那种。但我想说,那大多只是“普通对手”,离“宿敌”差得远了。
咱们先说普通对手。遇到个普通对手,无非就是工作上的竞争,大家抢一个项目,或者在同一个赛道上你超我,我超你。比如我以前做软件开发的时候,隔壁组有个家伙,能力挺强,咱们俩经常为了一些技术方案争得面红耳赤。那时候我就觉得他是我对手了。我们互相较劲,比谁的Bug少,谁的上线快。但是,这事儿过了,大家私下里还能一起吃个饭,聊聊技术圈的八卦。他进步了,我心里佩服,可能还会琢磨他哪招高明,赶紧学过来。他对我来说,是个激励,是个鞭策,没了他就少了一个可以较量的人,但绝不是什么“仇人”。
真正体会到“宿敌”这个概念,还得从我做的一个小项目说起。那时候我负责一个偏底层的优化工作,想推一个全新的内存管理方案。我辛辛苦苦熬了好几个通宵,把方案跑通了,觉得万事大吉。结果在评审会上,冒出来一个人,我姑且叫他“老K”。

老K直接就揪住了我方案里一个极其细微的边界条件问题,那个问题平时根本跑不出来,得用特殊的测试脚本才能触发。他不是随便说说,是带着完整的测试报告和复现步骤来的。当时我真的有点懵,感觉像是被人一棒子打到了七寸。
我赶紧回去修改,以为这回能顶住。结果第二次评审,他又抛出了一个关于并发读写时延的质疑,数据精确到毫秒级。我当时就明白了,老K不是想赢我这回评审,他是真的不认可我的方向,他有自己的成熟方案,而且他的方案在某些核心指标上确实比我的更稳健。
这事儿之后,我和老K就杠上了。我们不是那种“今天干你一架明天再谈”的对手。我们俩开始在同一个领域里,为了同一个目标,进行最极致的较量。我每次一有新想法,第一个想到的就是“老K会怎么看?他能从哪里挑出毛病来?”他成了我最好的参照物,也是我最大的障碍。
我记得有一次,为了解决一个性能瓶颈,我连续两周都泡在机房里。我感觉快到极限了,想放弃现有的思路,转而用一个更安全但性能稍差的方案。就在我准备提交方案调整申请的时候,我突然想起老K上次提的那个“极端场景下的抗压性”。我猛地坐直了身子,觉得如果我认怂了,我就真的输给他了,输给我的能力上限了。

我重新分析了那个边界条件,发现老K的质疑是对的,但他的方案也并非无懈可击。我找到了一个折中的办法,既满足了抗压性,又达到了我想要的性能指标。提交上去的时候,我心里清楚,这套方案的完成,很大程度上是老K逼出来的。
普通对手,你赢了他,他可能拍拍屁股走人,换个赛道;或者你输了他,你换个思路再战。但宿敌不一样,宿敌往往是你必须战胜的对象,他代表了你目前能力的天花板,是他让你不断地突破自己已知的极限。他不是那个让你睡觉安稳的人,但他让你每天早上醒来,都迫不及待想知道:“今天我又进步了多少,能不能追上他一点?”
区分点就出来了:普通对手是让你进步,宿敌是逼着你进化。普通对手是“竞争关系”,宿敌是“存在定义关系”。没有了普通对手,你可能只是安逸点;没有了宿敌,你可能就停止成长了,安于现状了。你得庆幸自己有宿敌,虽然痛苦,但那才是你真正需要死磕的对象。









