走一步看三步

花火田丁 花火田丁 2019-04-11 15:56:00 +0000

题图来自于NextDay

下棋有句话「想要赢,就要学会走一步看三步」,当然,高手可能是十步乃至百步。

所谓三步,意思是,不能只看自己该如何走,还要看自己走完,别人怎么走,如果别人走完,自己该如何应对。

换言之,就是不仅要想好自己的行动,还要想好自己的行动可能带来哪些影响,以及自己如何再去根据这些影响做出反应。

如果用计算机语言来说,大概就是一长串的 if...else...,或者一个包含判断条件的流程图。过程就是先假设某个条件会发生,然后我们应当根据这个条件做出什么样的反应,而当存在多个可能性的时候,事情就复杂了,从一个起点开始,增生出了巨多条路径,路径越多,结束条件就越复杂。

举个例子。

当系统出现故障时,最关键的步骤是「确定问题究竟发生在哪个点(哪行代码)」

根据以往的经验,判断可能是 A 或者 B 模块出现了问题,假设是 A 出现了问题,我们可以尝试哪些办法去修复,如果修复了不管用,那么是修复方法有问题,还是说问题根本就不出在 A 这里,那么如果问题不出在 A 这里,假设是在 B 这里,尝试用哪些方法修复,如果修复仍旧不管用,是否代表问题也不在 B 这里……

这样一个过程,看似合情合理,有章可循,且不说能力如何,经验和运气是很重要的因素。经验有时候可以给我们指一条明路,但也会拉我们进到死胡同。看似症状相同的两个现象,也许完全不是一件事,程序员都知道,101行报错,并不代表101行本身就有错,Trace 一下,藏得很深呐。

这时候就真的需要一点运气了。天知道,一行 Java 代码报错,罪魁祸首是因为杀毒软件占用了临时文件。当然,查出来之后说起结果,很是云淡风轻,但如果当时,一根筋盯着代码看,看到天荒地老也解决不了问题。想到这个点,有点经验主义,也有点合乎逻辑,但是自己都不敢相信,于是在决定了要验证「罪魁祸首是否是杀毒软件」之后,「走一步看三步」的思维模式开始启动了,如果不是杀毒软件,还有可能是哪里出现问题?这就开始了之前提到的「推断问题点」的过程,所幸推断还没结束的时候,前方就传来了捷报,确实是杀毒软件引起的。

这样一个结果,当然是喜人的,问题得到了解决。但同时又让我反思,我所谓的「走一步看三步」与棋局中的是不一样的,真实情况是我无法100%确定自己做出的判断是正确的,比起「未雨绸缪」,更像是「多管齐下」,这样的假设是建立在某一个行动失败的基础上进行的,也就是说,如果出现了不利的结果,我该如何应对,并寻找到新的出路。棋局中当然也有利弊输赢,但更多的是策略和心智的较量,就怕路数一成不变,下个几局就摸清了套路,那么对手很有可能把你如何出手算得一清二楚,准确预测你的棋路,然后给出应对的招数,两个人的棋局变成了一个人的自娱自乐。

也有人很擅长 if...else...,但最终把自己困在了其中,各种未知,各种风险,算来算去,想想还是算了吧,感觉怎么都看不到头了,有了一棵庞大的决策树,但却从不敢跨出第一步。

人生如棋,但人生毕竟不是棋局,棋局可以复盘,可以再来,可以悔棋,但人生不行。人生中的「看三步」,不能想得太细,大致有个方向即可,心中有数,就及早行动起来,有了第一步,才会有后面的三步不是,有时候,规划得太细,就会少了运气。

旧文参考:

我准备……


撒欢吧
谈理想
聊人生
讲故事
相对论
花火田丁
微信号:huahuoding
花火田丁
不折腾不人生