最近感觉走到了一个分水领,有一些感想,以及一些对应方案,分享。这部分从实操上和全栈系列相关,但是更深层次的东西反而是思想和方法,所以我还是放在了建模系列下面。
金庸武侠聊的那些,还真有点意思
小说也是人生。我工作的领域是比较抽象的,代码、逻辑、服务、模型、算法,这些都属于说起来像概念,但是无法(普遍)交流的东西。而且这些概念往往有一些复杂的,关联的,难以言喻的东西,但是这些和金庸的武侠(武功)体系是能够基本对应上的,不得不说很奇妙。
我先随便归个类,武功最厉害的大约有三种:
PS: 我个人认为(和我的经历有关),python就像是小无相功,可以模拟万物。
道家武功的高手,一般看天资,如果ok的话,那么进步神速,而且上限极高,基本上逼近了武功的极限。如果机缘不到,那么可能都无法入门,或者根本练不成。但是似乎因为太过逆天,所以修炼道家功夫的人多少都有点坎坷。例如无崖子师兄妹的感情纠纷,以及后来鸠摩智(小无相功)的大起大落等。似乎有一种超脱武功的规则加在这些人身上,按实际的例子来看就是一帮子黑客、极客智商很牛,但是性格可能不好相处。学python的或多或少像道家的。
佛家武功特点就是慢,但是上限也是极高,最重要的事,佛家武学不遭天妒,所以香火绵长,事业壮大。看看贯穿金庸武侠的门派,少林寺一定是一个重要的player。也许正应了老子说的”曲则圆,缓则全“。练佛家功夫,最大的敌人可能是自己。因为时间太过漫长(才能验证),很多修炼者受不了,放弃的,甚至叛变的都不少。这么强的信念,又有几人能坚持到底呢?而且归根到底,要登顶的人还是要具有内在灵性,少林寺虽壮,可也要看看成功率啊!少林寺至少有几千个人吧,能成为顶尖高手的估计也就百分之一。java体系是有点像少林功夫的。
最后是杂家,那可也是多彩缤纷,大浪淘沙的。印象最深刻的就是九阳和九阴,当然像打狗棒法、降龙十八掌、蛤蟆功、一阳指、六脉神剑啥的也很厉害,但我觉得最厉害的应该是九阳+九阴。但似乎整部书没有人同时凑齐这两样。我觉得杂家有点”易“的味道,在易的理论下是分阴阳的,阳相当于是萌发和孕育,而阴则是成型、具象、使用。只具备九阳,那么就是有枪没子弹;只具备九阴,则是有子弹没枪。单独拎出来都是非常 impressive, 但是没有组合后都是没法登顶的。 javascript体系其实有点像这个。杂家最终的根还是来自于道家,有点像linux和unix的意思。
金庸里面有个人物是比较有趣的,既会很多顶级武功,但是性格又很弱。那就是天龙八部里的段誉。而另一个人物和他多少是互补的,那就是鸠摩智。
段誉的三个主技能,看起来很像一辆电动车:
这个组合很棒棒,但是过于逆天了,所以金庸就给段誉来了个大bug, 让他发挥超不稳定。要是段誉是个服务,注定是不能上生产的。
鸠摩智只有两个主技能:
看来看去,鸠摩智少了一样东西,能源模块。后来得到易筋经算是补上最大短板,但是金庸让命运开了个玩笑,急于求成使得鸠摩智走火入魔。这和极客的特点很像。
好了,假设我们的工作/职业/事业就像在打一个电玩游戏,初始人物的模型是鸠摩智,我们要怎么玩?
从武学层面上:
我们再看博弈层面:
总结一下,鸠摩智在追求「武学」这个目标下,完全就是个疯子,不是理性决策人。 也许他潜意识追求的还是佛学吧,反正他这肯定没法达到武学的巅峰。整部剧里面,如果画个图,他就是不停的当搅屎棍。最幼稚的段誉、最草根的虚竹都找了乔峰当大哥,他连个盟友都没有(一直被利用)
所以鸠摩智的致命弱点是:非理性决策人,不动脑子。
说了半天兜回来,搞编程、算法(算是软件工程这块吧),最终的目标是什么?要怎么决策才能达到我们的目标呢?
我觉得我应该算是极客一类的人,“武力”值应该是够的,在持续推进方面我也不是很担心。这点我觉得只要心态摆正了,自然会走上循序渐进的路。
更重要的其实是博弈的方法。鸠摩智出场的时候已经是国师了,这点没啥可参考的,所以更需要通过博弈的合纵连横,才能慢慢胜出。这个反倒是像虚竹这样的角色上位。
这句话我老板很爱说,我也觉得是非常正确的。我从工程性的思维出发,完成一个大项目,最后取得良好结果的过程,一定是磕磕绊绊,各种坑的。
用户看到了很棒的产品界面,然后付钱,里面的代码可能是“挣扎”着拼到一起的。
顺着这条路往前走,就是佛家那套特别稳固,可靠的实现路径。
Rule1只能保证方向盘获得稳,车开的稳,但是要是路走错了,再稳也白搭。在路线的选择上,我老板觉得做正确而难的事情,而我觉得应该做难而正确的事情。
道理很简单,如果说事情是正确的,这道筛选过后还是有很多可选项,你不一定能找到那个有价值的事情,这样最后意义不大;反过来说,先找难的,你一定会估摸自己能不能搞定,这里有一个双向选择的问题。难的事情一定是存在价值的,然后再看看哪个正确。
另外就是坚持到底了,千辛万苦选了一条路,中间没有产生自我怀疑是不可能的,真要这样也是非常可怕的,很容易就走火入魔了。在不断的拷问自己到底行不行得通,走不走的出去的过程中,不断的检验、实验和证明,最终成就的才是胜者的心。想想两万五千里长征,走在路上的时候你还定坚定信仰吗?
接下来就是火力全开了,或者说反脆弱。有时候受限于我们的能力、经验,我们开发的初版可能结构性的存在问题,怎么办?
最好的办法就是重构,但是太可怕了,几个月搭建起来的东西说扔就扔了,再做一遍? 很多人,很多时候(包括以前的我)很容易打退堂鼓,敷衍了事。
我的实践告诉我,怕什么来什么;偷什么懒遭什么报应。
所以重构对我来说不是一个问题,只要我觉得需要,我一定会重构,直到我觉得达到了一个合理(满意)的结果。不是最优倒没有关系,毕竟生也有涯,知也无涯。
当你完全不怕摧毁自己的结构、逻辑和代码时,最终会出现一种全新的,优秀的东西。
再想想鸠摩智,他本身握着最大的财富小无相功,也看过很多优秀的武学,为啥不能搞一套独创的出来呢?非得去抄这抄那。想要到达顶峰,最后一步一定是自己迈出去的,前无古人的。没有这种认知就安于现状好了,毕竟keep,不采取行动也是一种可行决策。
有时候退无可退也不失为一种优势,因为你只能破釜沉舟,背水一战。鸠摩智起点太高了,他不适合进取,适合守成。
有句话这么说:不要跟SB争论,他会把你拉到他的水平上,然后用他的经验打败你
反过来我们要这么想,我们希望博弈,就要把对手拉到博弈的框架,然后用博弈优势取胜。
要进行博弈,最好进行信息透明的博弈,这样是比较有利的。当然,我们的信息都是按照密集分类的,信息共享不意味着泄露核心秘密,那那样做就错了。
只有做到信息共享,才能形成博弈框架,所以这也是为啥合作要找行内人,因为跨行的话没法做有效的信息沟通,最后就退化成信息不完全的博弈,效益低。
假设里面有几种角色:
投资人投钱,来支持一些未来可能能赚(大)钱的项目,要考虑投资回报,延误投资损失。
经理人作为中间人,不直接劳动,而是通过解释、沟通,让摸鱼人做一些东西给买单人,从而获得回报。
摸鱼人只考虑花最小的成本把东西做好,然后甚至不想多花一秒钟再这东西上面,只要经理人不找问题的话。
创新者总是希望找到一条最好的路,降本增效,甚至愿意付出额外的努力。当然,经理人的任务对于创新者是一种制约,创新者也要完成经理人的任务。
买单人大部分时候考虑那个成本低,效果好,不太关心这个东西怎么做的,只要用的舒服就行。
竞争对手总是试图创造竞争壁垒,或者缩小和你的差距,来积压你的生存空间。只要是片蓝海,最终都会让你感觉是片红海。
如果创新者准备创新的话,必然要考虑到各自的期望,成本和回报等。【最惨的情况是创新者的成果被窃取】,经理人和投资人获益,摸鱼人没有损失,也有一定获益;买单人也收益,但是竞争对手收到伤害。如果故事有续集,那么创新者跳到竞争对手,最后原本的公司会获得更大的打击。这种博弈结果一定是不是最优的。
所以对于创新者来说,这种情况和竞争对手反而成战友了,挺有趣。
所以创新者一定要很好的确保自己的成果不被窃取,如果我们假设创新者的成果不可被窃取,那么除了竞争对手,接下来的所有人都会获益。
所以底线是【守住成果】。当然创新者要进一步贡献的话,没有激励也是不可能的,这样从效用上说不是好的决策。(干多干少一个样,干少了创新者还能有更多的时间)
要确保这一点,通常来说,很重要的是,要保持信息的透明。有些nasty things是因为信息不对称,而broker因为职业的本能,一定会利用这一点。
除了让投资人明白为什么要采纳创新者的方案之外,还要让投资人明白一点,如果他采取了损人利己的策略,最终会双输,不要让他做这个选项。
这里既有长期的博弈思想(道),也有技术层面的控制(术)。
美国之前有做过一些实验,细节不说了,大致是基于程序的比赛,看看怎样的博弈策略是最优的。
在长期博弈下,一般是我先提供善意,如果对方negative,我再提供一次善意,如果对方仍然negative,此时我才negative。
大致这种模式是最好的,当然,很重要的前提是让参与者明白这是长期博弈。剩下的对于参与者来说,只要肯稍微牺牲一点,就一定能推动博弈往好的方向发展。
所以也很简单对不对? 与人为善,但是善意有限制。
破解价值高于实际价值即为安全
分散放置而非集中放置
只要一心追求目标,精益求精,就会发生时间是最好的信息安全手段。有些花我们知道会开,但要是提前摘下,你永远也无法知道它长什么样。
所以不要去埋怨技术的路很长,要把它视为一种保护自己的手段。
俗话说,不怕贼偷,就怕贼惦记。但是当这件东西本身就是道,贼也没法惦记的,时间太长了,变数太多了。
所以,核心是形成道,这是无法被窃取的。
不要把鸡蛋放在一个篮子里,不要把螺丝和螺母放在一起
我们在实现系统的过程中就是逐步完成的,所以天然就形成了一个个的“鸡蛋”。按照密集的约定,当达到II就会开始注意安全防范,一旦进入稳定时就会封装发布。但是这时候要将东西分成几个类别,既是天然的归类整理,也是一种信息安全防范。归类后的文件将会放在一些不同的地方,不会放在一起。
另外就是版本的变迁,这个是纵向的,更是会放在其他地方,只有必要的时候再重新封装。封装的过程需要时间和成本,这时候可以“偷懒”,只要保证自己在需要的时候可以做到就行了。
对重要的文件进行加密,然后在启动时会增加一些检测,例如使用时间、使用次数等。另外就是部分的功能需要通过远程交互来进行更新和检测。
这样对于使用者,只有遵守契约,才能正常使用。
要时不时想着自己是在扮演什么角色,至少在一次博弈中 ,不要在乎自己是谁,说什么做什么全是角色决定的。