认知革命读后感

认知革命

概述

花了半天,快速学习了认知革命的课程,不能保证能理解李善友所表达的所有观点, 只能说按照我现有的知识体系,对他的理论有一个消化和吸收。
他有几个核心观点,
(1)第一性原理
(2)认知世界的方式
(3)科学革命
(4)非连续性。

第一性原理

第一性原理, 我个人非常赞同这个观点, 其实就是哲学中的现象和本质说, 只不过换了一个角度来演绎这个说法, 另外在李善友的观点中, 第一性原理是需要建立在认知世界方式中演绎归纳法的基础上, 认知世界的方式中演绎法,需要一个假设的前提, 这个前提是一个具备自证清白的共识,这个共识就是第一性原理。 我个人观点,这是哲学中现象和本质 这一理论的另外一个说法而已。

在我们今天人类的发展历史上, 所有的科学进步都是为了一个目标, 如何让人类变得更懒, 更舒适。 曾经paypal 的创始人Peter Thiel就说过关于创新的一段话(原话已经忘记,但意思应该差不多), 所有的创业第一原则,就是让人们更懒去完成一些事情, 另外,乔布斯信奉的 大道至简(简单就是美) 的产品理念, 其实,就是让用户不要去花时间去思考什么是好的。今天我们程序员开发, 为什么进行模块化,分层化, 就是将每个成果固化,方便别人快速使用。 我们开源一个技术, 就是让别人不要再花时间再去重复建设, 直接站在别人的肩膀上工作。另外,比如,像浏览器之争, 今天google chrome 浏览器做到浏览器的第一把座椅, 就是google chrome 是最快的浏览器(至少号称是最快的), 对于浏览器的众多需求中, 没有一个需求是能和性能相比, 人们永远都是追求更高,更快, 更远。

对比今天的产品设计, 如果我们面向用户, 那我们在思考用户的需求中, 哪些是最核心的需求, 哪些是第二原则, 哪些是末等公民。同样,如果我们中间件推出一些产品如果面向程序员, 帮助程序员开发程序, 那我们第一需求是什么, 第一需求就是如何帮助程序员更快的开发程序,帮助他们用更短的代价完成业务目标。 从技术语言的发展上, 从早期c 到c++, 再到java, 再到python, scala, go, 语言的层次愈来愈高, 一份需求需要的代码数量也变得越来越少。

认知世界的方式

在李善友的观点中, 认知世界, 有3种方式, 1. 归纳法, 2. 演绎法, 3. 带假设的归纳法; 归纳法就是通过大量的结果,来抽象出一个事务的内在联系,是一个证明在前,假设在后的逻辑思维, 由果去推因,这种思维会遭遇一个坑, 就是归纳出来的理论,只能证伪,不能存真, 只能用来验证一些东西,而不适合去做为普遍真理;而演绎法, 通过一些假设,再加上一些已知的规律, 由假设一步一步来推导结果, 是一个假设在前, 证明在后的观点, 由因去推果, 这种思维其实是更符合逻辑思维, 符合世界是由本质来推导出原因的过程, 不过这种思维会遭遇一个悖论, 演绎法需要一个证明的起点, 就是能够自证清白的原理,也就是第一性原理,当第一性原理不存在或无法自证清白时,就无法完成整个演绎; 因为2种理论都会有一些瑕疵, 因此李善友提出了一个补充,就是带假设的归纳法。

对世界的认知方式上, 从逻辑思维角度出发, 演绎论会更全面更严谨; 归纳法会直接,更快速。 对于我们it 工程师来说, 结合第一性原理和科学革命原来来思考, 很多的事情都是要抓住事物的本质, 少受一些干扰项干扰, 当现有的做法是从大量的结果中抽象出一套规律时, 我们需要研究是不是需要从客户的最本质需求上去思考,如何一步一步完成客户最大的痛点。

科学革命

科学革命,在李善友的名词中, 有一个叫范式转换, 就是 只有管道更替, 创新是新的范式出现, 对过去很多东西,是一个颠覆性思考, 或者是完全换道考虑。 就像intel 从存储器转到cpu领域, 苹果推出iphone, 所谓 “重新定义手机”, 对过去的功能机一种完全全新的革命。

我对这种观点认为, 科学革命是一种颠覆性的创新, 这种创新其实很难, 也是非常少见的。 但有几点,需要注意

  1. 自我革命的勇气, 当意识到一种新的创新出现时, 必须有勇气自我革命, 就是腾讯 就说过, 微信就是要革qq的命, 如果害怕革命, 当别人完成自我蜕变时, 自己就沦为鱼肉, 比如柯达, 当数码出现时,没有及时抛弃传统胶片,最终被市场抛弃。
  2. 这个事情大的创新都是非常非常难的, 只能从几个角度去努力尝试创新, 从认知世界的方式出发, 从用户最本质的需求上, 从另外一个赛道上全新去演绎一件事情, 会有更多的思路。 另外个人观点是, 博采众家之长, 把一个领域的成功经验移植到另外一个领域, 从而对这个领域进行全新的改变。 就像《三体》里面说的降维攻击。

非连续性

李善友的观点是 “世界是由非连续性节点组成,而人类的认知是由连续性的节点来贯穿, 在一些非连续的节点之间穿插连续的桥梁, 而这些桥梁就是人类解决问题的各种手段”。 我觉得这个观点可能正确, 但没有什么大的价值。 对于一个程序员来说, 这个世界无论是连续还是非连续性的, 在计算机的世界里面都是非连续性的, 需要一些手段将他们连贯起来。 任何一个曲线都是由一串的节点贯穿起来。