有很多人都好奇过，为什么鸭哥有这么多热情和时间来做这么多复杂的 hobby projects，并且把它们做得很深入。
我一般会打哈哈说因为干啥啥不行，划水第一名。把别人工作的时间都用来做[咖啡](/HG-1-coffee-grinder-review.html)，做咖啡自然就好喝了。
但其实仔细想想，这是一个蛮值得深入探讨的问题。

这里面最重要的一个原因，我觉得是对复杂系统的习惯程度，或者说 comfortable with complicated systems。
所谓复杂系统，是跟我们平时所接触到的"因为我做了 A，所以得到了 B"这样的系统对应的。
它有很多个可能的输入来影响最终的结果，或者说有很多把钥匙来打开很多锁。
我们很难总结出来只要我做ABC，就可以完成XYZ。
成功有很多条路径，失败的路径更多。

举个例子，[升职加薪](/four-field-interview.html)是一个非常典型的复杂系统。
你可能做得很好，升职加薪很快，也可能做得不好。
但是，很难推断其中到底是什么原因能够让你升职加薪得更快。
大家可能会有一些感觉，会有一些模糊的想法，会做简单的实验，但是很难真的把它归因到某个特定的因素上去。
或者就算知道一些原因，也很难复现。或者扩大观察范围以后会得到完全相反的结果。

另一个例子是做菜。
最后的菜可能会很好吃，但中间因为牵扯到的因素实在太多了。
比如食材是不是新鲜，你的调料品质怎么样，搭配怎么样，火候怎么样，导致最后菜的口味也不一样。
但是如何去提升做菜水平，这是一个系统性的复杂的东西。
不是说我只要按部就班说 12345，就能做菜做得好吃。
而是要反过来看，要知道如果我做菜做得这样不好吃，那是因为那样的原因，我应该这样改进。
需要经过这种复杂的归因和改进和探索以后，才能提高做菜的水平。

为什么要强调复杂系统这一点呢？
是因为绝大多数有意思、或者说有难度的兴趣都属于这种复杂系统。
比如[摄影](/focal-length-in-photography.html)，为什么你觉得照出来的照片好看？
或者咖啡，为什么你觉得出来的这杯咖啡好喝？
或者[音响设备](/sound-engineering-1-scientific-hifi.html)，为什么你觉得这首歌用这个器材听得就更好听？
都牵扯到很多方面，也牵扯到复杂的归因和改进。

而鸭哥的一个特点，就是对这种复杂系统的忍耐程度非常高。
这可能是因为和[读博](/phd-master-selection.html)以及职业训练有关。
在我的整个求学和工作生涯中，每天接触到的都是类似的复杂系统。
不停地在做针对各种复杂原因的归因和改进。
而且在走出学校以后，我逐渐发现这其实是一种超能力。
我们日常接触到的东西大都是高度确定的，比如汽车踩油门就会走，打伞就会挡住雨。
所以当面临一个复杂系统的时候，人的自然反应就是沮丧。
为什么我做了这么多努力，它还是没有改进？
到底要怎么做才可以？
而如果拥有面对复杂系统可以仍然很舒适地思考，有效改进的超能力，自然就可以做到很多很复杂的事情。

具体地说，这会在"知"和"行"两个方面帮助到这些hobby projects。
一方面，这些领域都是现存的人类已经研究过很多年的领域，所以只有在继承的基础上才能往前发展。
但因为这些都是非常复杂的系统，所以人类围绕它们的理论本身就非常庞杂。
所以从知的角度来说，怎么样在一个庞大复杂的知识系统中间快速找到其中的脉络，领会其中的直觉，并且把它灵活运用，是一个核心优势。

从"行"的方面来说，要想把一个复杂系统做成功，最关键在于如何debug。
也就是当你看到最终的成效不如所想的时候，不是拍脑袋乱想可能是什么原因，并且瞎调各种变量，而是通过设计一系列的实验，来快速地把原因锁定在一个很小的范围内。
然后再进行各种权衡，来让最终的结果提上去。

所以你可以看见，如果对一个复杂系统非常熟悉的人，他不论是在心态还是在执行效率上，都会非常占便宜。
毕竟我们玩业余项目主要是为了找乐子，不是自虐。
如果跟复杂系统死磕并且不享受这个过程，那还不如不玩。

所以总的来说，我觉得对于复杂系统的舒适程度和熟练程度，可能是决定一个人能做多复杂的项目的关键，不论这个项目是工作里还是生活上的项目。
如果当你有了这个能力之后，你看到各种看起来非常牛逼、很复杂的 hobby projects，其实都很简单、很舒适的时候，自然而然就会发展出各种奇怪的兴趣爱好，并且在每个领域都取得成就。

广告时间：
因为我觉得这是一个特别重要的能力，因此一直想着怎么把这种debug的能力分享给大家。
所以我和[课代表](https://space.bilibili.com/491306902/)开发了一个[AI相关的课程](https://www.superlinear.academy/c/ai/)，希望带着大家受控地犯错误，在犯错的过程中学会怎么设计实践，快速归因，从而高效debug。感兴趣的同学可以戳链接了解一下。

<script async data-uid="49b08a3e73" src="https://yage-ai.kit.com/49b08a3e73/index.js"></script>
