今天想到一个例子,分享一下。
比如你要打造一件铠甲。但是你又不想做成堂吉诃德那种全身包裹起来,穿上就不能靠自己的力量脱下来的铁罐头。
于是你设计了很多细小的铁片,再通过巧妙的方式让他们彼此覆盖勾连。就这样,鱼鳞甲诞生了。
好处是容易穿着--或者叫“披”更好--也不会丧失太多的灵活性和机动力。
坏处是制作工序过于繁琐。在没有工业化的古代,尤其如此。
提到鳞甲,是因为它的制作过程和我们学习任何东西或者达到任何目标的过程,是不谋而合的。
一开始,都是想把事情整个儿做出来。也不是不行,你得做大匠。大匠要能力,要资源,要眼界。缺一个就完了。把大象放进冰箱里,先把冰箱打开,再把大象放进去,关门。不要只把这个当笑话--这就是说的大匠如何做事。你有这个水平吗?
然后就是把事情拆开来做。拆到什么程度,还是看水平。
《中庸》:
人一能之己百之,人十能之己千之。
这句除了劝人努力的角度之外,还藏着另一层意思:你要把台阶拆到你能抬腿走上去的程度。喜马拉雅山,八千八百米,如果你是巨人,一脚就上去了。如果你是常人,也能上去,无非台阶要多准备几级。
水平也是不断提高,角度不断扩展,积小胜为大胜。
《三十六计·敌战计·顺手牵羊》:
微隙在所必乘,微利在所必得。少阴,少阳。
这说的是打仗。但如果把夺取战争的胜利看成目标的话,对目标的分解,实际上就是一个个解决“微隙”,获得“微利”的过程。“少阴”就是没解决的小问题,“少阳”就是已经装到兜里的利益。
从程序员的视角来看,这就是所谓“从底向上”的设计方案。
这就是在视角比较狭窄,资源也不足,仅有的是冲劲和热情的时候,能够采取的唯一办法。
不要想象出一个结果(比如上面的铠甲)然后拿锤子硬怼上去。
《道德经·第七十四章》:
夫代司杀者杀,是代大匠斫也,夫代大匠斫者,希有不伤其手矣。
如果伤了手能办事倒也罢了;怕的是就算伤了手,事情也还是办不下去。
所以游戏里面设计新手村,再设计升级机制,就是要告诉玩家们,在现实世界里,该怎么提高自己的等级。但可惜的是,被吸引到虚拟世界的人,好象更多。
《天才白痴梦》:
何必寻梦,梦里甘苦皆空。
醉翁他日醒觉,可会跨凤乘龙?
梦里的甘苦、新手村的经验,都是你成长道路上的资粮。
其实你大可以把每一个大问题,都分解到能解决的“新手村”程度。对于实在无法分解的,可以先放着,也许你解决了新手问题之后,你就有了面对复杂问题的资本。
这就是反向的“从底向上”。
也可以说,先造一个底出来。这个底,就是你最坚实的地基。
莫于沙上起高楼。
【2021年7月15日,春风作于竹风斋。正文1011字。】
【只要我打字足够快,烦恼就追不上我。这是真的。】