创作、开源和经济发展
OpenSource
字数1175 2020-03-15

早上解决了登入终端后自动切换目录这个问题。

根据这么多年的研发经验,解决这个问题过程中的灵光一闪的情况时常发生,现在回头看,其实很多复杂的技术问题总是遵循这样的规律:

  1. 这个问题太难了,看着就复杂, 第一把搞不定
  2. 我就不信了,持续死瞌很久,第N把还是搞不定
  3. 放弃了,不搞了,不搞了
  4. 去学习其他知识,潜意识保持关注
  5. 在某一个安静的清晨,天微微亮,小鸟婉转悠扬的鸣啼声下,进入放松和专注的心流状态
  6. 突然,灵光一闪,哦,原来这么简单,搞定了

其实,问题变化了吗?没有。

那什么发生变化了呢? 是知识积累和心境发生了变化,当时你解决不了问题的关键是解决方案需要多个知识模块产生连接才能解决,你当时的知识体系是不完善的,在缺少对某块知识的掌握下,无法对多个知识模块产生连接,从而创造出解决问题的方案。

所以,短暂的放下很重要,放下并不代表不解决问题,而是放下问题去做知识积累,潜意识关注的目的是让大脑在休息的时候帮你整理知识和建立知识之间的连接,大脑这个工具很神奇,只要你保持关注,它会自动在后台思考运转,不需要增加你的思考负担。

所有的创造工作,特别是脑力创造领域,都需要极度的放松,因为只有极度的放松,大脑才会进入毫无杂念的专注心流。

最后创作成果其实等价于这个公式:

创作成果 = 知识积累 + 潜意识关注 + 放松的环境 + 专注的心流。

这种规律和模式也能解释为什么开源社区的先进技术大多数都是国外开发者创造的?

  1. 基本物质条件好:不为基本生存担忧,研发环境就相对宽松
  2. 长时间专注一件事情:长时间专注的心流,大脑会进行广泛的知识积累和低成本的知识整理过程
  3. 放松的心态:在宽松的环境和专注的思考下,就相对容易进入放松的状态,为多个知识模块产生连接准备创作机会

大多数开源项目并不是超多核心技术堆叠的,大多数开源项目都遵循下面的模式:

  1. 项目创作阶段:通过多维度知识连接攻克了核心技术
  2. 现实对接阶段:根据项目的应用场景,不断增加工程化代码满足现实,这部分代码数量巨大,但是难度并不高,只是增加了代码的复杂度
  3. 成熟发展阶段:通过现实的总结,最后从单独功能衍生出围绕核心功能的API、SDK和生态

从我对国内开源环境的了解,我们在应用场景响应和生态建设能力并不差,差就差在创作阶段,究其本源,还是我们国家的经济发展水平不够高,大多数研发人才都在生存线上挣扎,因为神经时刻都在对危机做应急响应,我们无法给自己准备好创作所需的宽松环境和放松心态,导致在核心技术的多维度知识连接方面缺乏深度思考,最后也很难利用多维度的知识连接创作出解决问题的核心技术。

我们现在已经在某些领域创造出开源核心技术,但是创作的数量依然不如国外,本质原因还是国家的经济水平和研发环境还需要进一步发展。

做了开源十多年,年轻的时候想不清楚的问题现在想清楚了:

开源技术和生态的发展和国家的经济发展水平息息相关,经济好了,人就懒散了,人放松了,创作能力自然就提高了。