随着我逐渐遇见各种事情,我逐渐意识到,想做好一件事情,当然需要天赋和才情,但是或许有一些我们普通人也可以采取的秘诀,以我现在的看法,这大约是简单,可持续和预期管理。
简单
简单不是指“大道至简”这种形而上学的东西,而是说,从我现在的见识来看,大部分的问题,其实本质是不复杂的,大部分看似精美的解决方法,其实原理也很简单。 想要取得成就,很多时候只需要很简单的方法,要有观察的能力,要自信。我可以举出很多例子:
- 集装箱本质上非常简单,就是提前batch process,在统一装到船上,这极大的改变了世界贸易的模式,但尽然知道20世纪50年代才被卡车司机想到。 (当然,可能也是因为以前的船运力有限,不太能负担集装箱,但也可能是因为没有集装箱的发明,所以不造大船,这点我不懂)
- linux 操作系统本质上很简单,一开始只是出于兴趣,但就是因为简单,以及没有过高的期望,所以大量的人快速贡献代码,最终成为互联网时代的基石,同时期gnu的内核极度难产,最终被放弃。这当然不是gnu基金会的能力问题,而是一开始,预期太高,错过了freeBsd 留下的黄金真空期。
- unix就更不用说了,pipe的设计,非常简单,Powershell引入了传递object,但真的有多少人用呢?更不必说unix背后的C语言,真的可以是重工不巧,返璞归真。非常简单,但是最好的系统编程语言。 我个人很喜欢C++,但不得不说,linux拒绝C++是非常有道理的,C++就是过度复杂了。所以实践中,往往不同的公司有不同的标准,只使用语言的某几个部分。
- 数据库的Volcano模型,也非常经典简单,现在所有的数据库还是这样做的,即使是号称push到上层 而不是pull的数据库,本质上还是没有太大的变化。
- 更不必说,machine learning最基本的back propogation是大一学生都可以理解的内容,而同期的svm却难很多,特别是各种kernel的推导,但吊诡的是,看似复杂的,数学的svm的结果,在计算量上去以后,被back propogation吊着锤了10条街。
- 还有很多类似的例子,比如redis一开始只有单线程,mysql同期一开始事务管理都做不好,但成为了非常流行的数据库。sqlite即使今天也只支持一个写txn,但确实是全世界使用最广泛的数据库。
- Gcp一开始,想要做类似lamda那样的serverless,也被ec2锤爆了。 aws到现在,最赚钱的,我猜测大约也是最简单,最基础的ec2和s3。
综上来看,我的理解是,如果可以简单,绝不要引入复杂度。无论是所谓的性能优化,还是可扩展,在大部分时候,都是over engineering。绝对不值得以牺牲简单性为代价。
费曼说“如果不能让孩子理解,就不能说自己真的懂”。
对简单的要求,大约就是可以向孩子解释明白。 如果一个人只会说各种术语和fancy words,但却不知道最基本的细节,我会觉得这个人非常的不靠谱,他不见得有什么真的见识,可能只是一种夸夸其谈的生存策略。事实上,我觉得,哪怕作为销售,这都是不合格的。
可持续
简单本身就是一种力量,我觉得,它有几个好处:
- 简单往往代表着更少的状态,和更少的中间节点以及流程。越少的流程和节点,反而越降低了出错的可能性。
- 简单代表着更低的心智成本,更加容易被接纳和上手,也更加容易被维护。
- 简单代表更加容易被组合。空气和水可能是这个世界上最简单那,最纯粹的事务,却可以充斥在任何角落,有不同的用处。 精心打磨的艺术品,却可能只有在展厅里才有价值。 所谓的世界7大奇迹,无论是宙斯神像,还是空中花园,早已消息。只有造型最简单,最朴素的金字塔,反而一直还在。
越是复杂,越是脆弱。时间是最强大的力量,只要可能出错,在长时间的尺度下,一定会出错。简单,本身代表了一种更少出错的可能性,本来就代表了在长时间尺度下的可持续性。
活下来,慢慢迭代,这是我们从生物演化中,能够学到的最好的事情。
心智模型
但非常有趣的是,人类,至少是我,很不幸的,经常有一种奇特的心思。 我往往认为,复杂的是更好的,昂贵的是更有效的。但这大部分时间,往往反而不是。
保持健康最简单的方式就是吃健康的食物,睡眠,减少压力,适度运动。 这一定比所谓的保健品要好得多。 但我们往往觉得,这太简单了,是假的,反而更加倾向于各种稀奇古怪的保健品,但其中大部分,无非也就是脑白金一类的安慰剂罢了。
保持财富的方式无非就是有稳定的收入,减少开支,减少激进的投资策略,不断的把钱放到稳定但是能够跑赢通胀的复利型产品,然后相信时间的力量。但我们总是做不到。
减肥的方式无非是每天的摄入小于输出,只需要一点点的缺口,只需要一直坚持,一定可以瘦下去。
但我们往往做不到这些看似简单的事情。 我觉得,这和我们人类的大脑的功能性有关系。
大脑进化的目的是为了生存和繁衍,而不是为了理性的思考。不凡说,理性的产生,反而是一种奇迹般的副作用。
所以,按照我的理解,人类偏爱复杂的精巧的事务,是出于一种求偶的需要,就是说,在自然界,生存是残酷的,只有强大的人,才能够留下后代,所以为了吸引配偶,就需要展示自己的生存能力和强大。
而最简单的,展示方式,就是加入额外的复杂度,却依然活下来了:
自然界很多雄性的鸟,有非常艳丽的羽毛来吸引雌性,从逃避天敌的角度来说,这绝对是错误的,因为越是单调简单的颜色,比如枯黄色,越可能更好的伪装逃避天敌。越是浮夸的颜色,越是容易被发现,减少身存的几率。
但其实,如果一只鸟,有艳丽的羽毛,却活到了求偶的季节,不正说明了,这只鸟非常的强大吗?一定是有某种特别的生存能力,才可以活下来吧。这是一种引入了不必要的危险,来展示强大的残酷游戏。
我认为,人类也是一样,大部分时候,我们喜欢复杂的,精巧的东西,和雌性鸟儿喜欢艳丽的羽毛是一样的。 不是因为这种东西能够更好的帮助我们生存,而是如果我在有debug的情况下,还可以活着,我是强者,你应该在求偶的时候考虑我。
这就是像是女孩天生喜欢男人给她买包,这完全是符合我们上述提出的演化模型的,目的不在于包有投资或者保值能力。而是说,即使把大量的资源花在了一个其实不值得的东西上面,依然可以不影响生活,可以获得很好,所以证明了强者的身份。
我们喜欢难的事情也是这样的,我可以花大量的时间,精力,在某种其实不太有效的事情上面持续投入。我还是能很好的生存,我是强者。比如说,我觉得很多小众的昂贵的爱好背后的心智模型是这样子的。
但这不对的,这只是进化的产物,这只是让我们觉得我们是强者,而不是真正的解决问题。
解决问题,可能反而很简单,就如上述第一节的例子。
预期管理
简单的方案,可能是违背心智模型的,在一开始,对预期管理的要求很高。
我们往往会担心,提出简单的方案,是不是意味着,我是个蠢货,是不是意味着,我是个弱智,我是个弱者,是个loser。
这个方法太简单了,如果有效,早就有人做了。
这个方法太简单了,绝不可能有效。
这个模型太简单了,我面临的挑战瞬息万变,怎么会有效果呢。
但简单的,可能是好的,它意味着更少的出错的可能性,更低的投入,更少的精力,更快的反应速度。这是最重要的。
不要相信复杂的说法,古代人为了解释地心说,不得不引入一个一个的本轮,天体的计算成为了大师的艺术,但只要把太阳放到中间,一个简单的模型,就可以舍弃到太多的不必要的本轮,是的,我们人类,也可以用最简单的模型理解宇宙。
网上有种种大师,玄学,说着眼花缭乱的术语,似乎一本易经穷尽了所有的奥秘,但是,按照我们的简单模型,我们知道,这是骗子(此处需要补充逻辑推理)
最重要的是,开始的时候,心态也保持同样的简单。
就是说,我的模型,策略,方法是简单的。
我的心态也是简单的,我只是希望,我的方法,能够解决这个问题。 我不会有过高的期望,我不会奢求我发现了宇宙的真理,万能的方案,不是的。 我的预期也是相匹配的简单,我只是想解决这个问题,也许这个简单的方法不一定有效,那也没关系,我们在分析问题,提出下一个简单的方案就好了。
简单,快速,但坚定的迭代。
做一个简单,朴素,真诚,但坚定的人。
我这一辈子,其实对自己有很大的期待,但我要做好预期管理。 我就希望,能做到上面那句话。
我喜欢真诚,因为这也是一种最简单的状态。