人生元编程
欧雷 发表于
看到文章的标题,你也许会问:什么是「元编程」?它跟人生有什么关系?
何为「元编程」
在解释「元编程」之前,先来说说「元 X」这种构词。
一般来说,「元 X」被解释为「关于 X 的 X」,意思是用「X」所代表的东西去完成它本身,是「X」的进一步抽象——
In epistemology, and often in common use, the prefix meta- is used to mean about (its own category). For example, metadata are data about data (who has produced them, when, what format the data are in and so on). In a database, metadata are also data about data stored in a data dictionary and describe information (data) about database tables such as the table name, table owner, details about columns, – essentially describing the table. Also, metamemory in psychology means an individual's knowledge about whether or not they would remember something if they concentrated on recalling it. The modern sense of "an X about X" has given rise to concepts like "meta-cognition" (cognition about cognition), "meta-emotion" (emotion about emotion), "meta-discussion" (discussion about discussion), "meta-joke" (joke about jokes), and "metaprogramming" (writing programs that manipulate programs).
In a rule-based system, a metarule is a rule governing the application of other rules.
Any subject can be said to have a metatheory, a theoretical consideration of its properties, such as its foundations, methods, form and utility, on a higher level of abstraction. In linguistics, a grammar is considered as being expressed in a metalanguage, language operating on a higher level to describe properties of the plain language (and not itself).
在软件开发中,「元编程」是指利用编程语言提供的能够改变语言本身某些特性的能力来进行编程,这种编程方式可以在一定程度上提高编程效率,还能够实现一些高级功能。JS 中的 Proxy 和 Reflect 等就可以用来进行「元编程」。
那么「元编程」和人生又有什么关系呢?
如果把「人生」看成是一个「计算机程序」,「人」是用来编写这个程序的「程序设计语言」,人的「认知」和「能力」能够改变语言本身某些特性,那么训练并提高利用它们的技巧从而改变、操控自己的人生,就是「人生元编程」。
世界本质
世界是由什么组成?世界的本质是什么?也许你会说是粒子,是物质,但我认为是信息。
在这里,「信息」是个相对抽象、泛化的概念,有不同的形态,如:物质、能量、图形、文字、声音、颜色等等。
信息有「普通信息」和「元信息」。普通信息分为两类:某种形态;从一种形态变为另一种形态的过程。元信息具体是什么样的,应该只有神才知道,大概是类似于「逻各斯(logos)」那种东西。
就像「能量守恒定律」一样,信息总量也是守恒的——信息既不会凭空产生,也不会凭空消失,可以从一种形态转换为另外一种形态。
就拿「人」来说——
「存在」本身就是一个信息,这个信息包含「肉身」和「灵魂」两个子信息。其中,「肉身」来自于「精子」和「卵子」结合而成的「受精卵」;而「灵魂」则一直存在,或是其他什么形态的信息转换而来。「肉身」与「灵魂」在母体内通过某种方式结合,降生为「婴儿」。
上段文字中的「存在」、「肉身」、「灵魂」、「精子」、「卵子」、「受精卵」、「婴儿」等都是名词,是以「某种形态」所体现的信息;而贯穿它们的「受精」、「降生」等为动词,是以「从一种形态变为另一种形态的过程」所体现的信息。
一个「某种形态」的信息是由其他「某种形态」的信息组合、变换而来,将它们连接起来的是无数个「从一种形态变为另一种形态的过程」的信息:
除了上面说的「存在」本身,各种语言、方言中表达「人」这个语义的语音和文字,以及能够让人联想起「人」的图形、声音等,都是「人」的不同形态。
「人」和「人」的各种不同形态都是「信息」,它们之间的关系可以参考基督教中的「三位一体」。
为了方便理解,举个更贴近日常的例子——
每个人都要吃饭和上厕所,如果不考虑细节以最粗粒度来说,从「吃饭」到「上厕所」有三个信息:「食物」、「消化」和「排泄物」。其中,「食物」和「排泄物」是「某种形态」,「消化」是「从一种形态变为另一种形态的过程」。可以用表达式来表示:💩 = f(🍚)
。
用软件工程相关知识来做类比,对于程序员来说更加容易理解——
在由计算机程序构造的数字世界里,「数据」就是「信息」——「普通数据」是「普通信息」,「元数据」是「元信息」;「数据结构」相当于「某种形态」,「算法」等价于「从一种形态变为另一种形态的过程」。
于是乎,「函数式编程」这种编程范式完美地诠释了现实世界的基本运作方式。
信息是现实世界的本质,数据是数字世界的本质,数字世界是现实世界的映射。
抽象人生
既然世界的本质是信息,那么越能够获得并操控更多的信息,就越能玩转这个世界,也就越能将人生置于股掌——信息是世界最基本、最重要的,掌握更多信息并能将其有效利用者得天下。
以此为目标,「如何获得信息」及「如何操控信息」就成为了关键。
信息的形态及其获取并操控的方法千千万,如果盲目地去做,即使耗费千百辈子也是不得要领。应该去观察、思考它们背后哪些东西是不易变、必需的,将其作为切入点建立思维模型——这!就是抽象。
元认知
「元认知」包括「认知了解」与「认知调整」两部分。
认知了解
一个人应该对人的认知相关的知识及自己在认知事物时的特点有所了解,了解了才能去调整;也应该知道人与人之间的认知是有差异的——有的人看问题是静态的,只关注那个点的状态;有的人看问题是动态的,关注后续的发展会有什么影响;有的人看问题是立体的,能够更全面地去评估。
认知调整
在对自己认知事物的特点有所了解的基础上,需要对整个认知过程进行主动干预——将自己的认知作为被观察者持续观察,各个步骤使用「5W2H」进行分析,当某个步骤出现问题或需要决策时及时进行调整。
元能力
按照认知事物的递进关系,简单说说我认为很基本、很重要的几个元能力:关于「是什么」的建模能力;关于「如何懂」的学习能力;关于「如何用」的管理能力。
建模能力
世间一切,皆为模型。正如我在《我来聊聊模型驱动的前端开发》中所说——
模型是人们根据事物特征将它们分类并抽象后的结果,建模是人们认知世界的一种方式。
就像《圣经》里描述的——上帝按照自己的样子创造了亚当这个世上第一个人类,又从他身上取下一根肋骨创造了夏娃这个世界上第二个人类。在这里,上帝将自己作为参照提取特征抽象出祂所认为的「人」的模型,并根据这个模型创造出「亚当」和「夏娃」。
将自己所遇到、所了解的事物进行建模,分析它们之间的关系,能够从更高的角度更系统地去看待事物。遇到新事物时可以关联现有模型去快速地理解并掌握它。已建立的模型越多,越能在选择时做出更好的决策。
学习能力
「学习」是任何高级生物在生命进程中都需要做的事情,这是不会变的,并且作为掌握任何知识、技能的入口,这是个极其重要的切入点。
因此,能否抽象出一个很好、很合理的学习的思维模型,决定了人生好坏的根基,也决定了能否进一步对人生进行抽象。
「学习」就是将从任意数量的信息源获取到的信息进行萃取、吸收并加以刻意训练的过程。
在这个过程中,有几个需要重点关注的点:
- 如何增加来源;
- 如何摒弃噪音;
- 如何快速理解;
- 如何加强记忆;
- 如何科学训练;
- 如何提高效率。
管理能力
如果已经拥有的信息不去加以梳理,它们将是一盘散沙,不成体系,需要用时却不知如何去用及该用哪个,会「把一手好牌打烂」。
因此,将分散的点连成线甚至形成树,整理出一套套成体系的方法论很是重要。每套方法论都可以是一本或多本的书。
管理能力一方面体现在「整理」上,一方面体现在「控制」上。
大多数情况下,信息不应该原原本本地输出,需要在输出前进行转换,如:语音或文字的语义、字数、措辞和语气,脸上的表情等等。
还有像时间、精力、金钱这类,需要尽可能降低消耗速度并提高利用率。
思想总结
在「唯信息论」的思想体系中,「存在」、「精神」、「物质」、「能量」、「数据」等都是「信息」的衍生。能够掌握更多信息并有效利用的人可以玩转自己的人生。
「元认知」与「元能力」是支持对人生进行「元编程」的能力。利用它们使抽象出趋于完美的人生模型成为可能。
当一个人成功抽象出很好的人生模型,那么他已经打好了成为「人生赢家」的基础,接下来就是极其严苛的自我刻意训练,包含知识、话术、表情控制、情绪控制等等,最终达到能够无话不谈,见人说人话,见鬼说鬼话,语言操控他人的境界。
具备肉体的「人」的一生的「起点」是「出生」,「终点」是「死亡」。将一生划分为多个阶段,每个阶段有个小「目标」,也是一生中的一个「点」。在朝着「目标」努力的过程中,会发生对自己影响很大的「事件」,它可能会让人改变目标,也可能会改变达到目标的时间,这也是一生中的一个「点」。将这些「点」连线,就是「人生」。从「起点」到「终点」的「路径」,可以采用动态规划求得最优解。