今天来聊聊不确定性和确定性, 没有提纲, 写到哪里算哪里。
不确定性有两种:
一种是绝对的不确定性, 这也是世界的本来面目。所有的人, 都不能确定它(或者也可以广义地认为,困难到所有人都无法确定它)。 举个简单的例子: 抛掷一枚骰子,最后出现几个点,无法确定。更微观地讲,有物理学家海森堡提出的著名的测不准原理(不确定性原理)。 在这个问题上, 爱因斯坦认为上帝不抛骰子,拉普拉斯认为可以推算出世界在每时每刻的精确值。 显然, 爱因斯坦和拉普拉斯, 都错了, 而且很离谱。
另外一种是相对的不确定性。 来举个简单例子, 对于没有学过算术运算规则的婴儿来说, 这些算术运算规则就是不确定的。而对于一个初中生来说, 这些算术运算规则是很简单的, 是确定的。 同理, 对高中生来说, 初中数学是简单的, 确定的。 对大学生来说, 高中数学是简单的, 确定的。可见, 不断提高自己的认知层次, 可以让更多的不确定性变为确定性。
来分别说说这两种不确定性。
人们对于绝对不确定的事情, 就真的没有办法吗? 非也。虽然投掷一次骰子的具体值不能确定, 但是概率必然是1/6(请注意, 这里的概率不是近似1/6, 而是数学意义上的精确的1/6).
电子在导体中杂乱无章地运动, 人们能理解这些乌合之众的电子的行为吗? 不能! 那怎么办? 可以通过忽略细节来进行抽象, 抽象出电压、电阻和电流, 比如, 电压能精确到5V. 从微观到宏观, 从具体到抽象, 从不确定性到确定性。
可是, 5V真的很精确吗? 这只是理论值, 如果考虑到具体的电子元件缺陷, 为什么不可以是5.000000001V呢? 当然可以。
看来, 抽象程度还是不高, 可以把5V附近的值都定义为1, 把0V附近的值都定义为0, 而只让电路中的电压在5V附近和0V附近, 这样, 电路中所有电压的逻辑都是1和0. 而且是准确的1和0, 不会有任何错误。
回头看一下, 那些到处乱窜的电子, 居然就映射成了准确的1和0, 从不确定性, 到了确定性。 这就是计算机二进制里面的1和0, 计算机无非就是在和这些1和0打交道。
1和0就一定是精确的吗? 比如A要给B传输一个1, 万一在传输过程中, 受到电磁干扰或者器件缺陷, 1变成0了, 岂不是就错了? 这种不确定性怎么处理? 有个简单的方法可以参考: 每次传1的时候, 就传11111, 每次传0的时候, 就传00000, 这样, A传输给B后, 11111不小心变成了11110, 那么B还是能识别出来的, B认为,肯定是中途出错了才导致11111变成了11110, 所以B可以从11110中还原出11111, 从而知道A要传的实际上1. 这就是信道编码的思想, 除了上述这种1编码为11111, 0编码为00000的笨方法外, 还有很多信道编码方法, 其本质目的就是,减少不确定性,增加确定性。
略懂点计算机网络的人, 比如我, 都知道计算机网络的物理层目的就是为了传输1和0组成的比特流, 而OSI的7层结构,就是下层为上层服务,让确定性层层增强。所以,当我们用socket编程用得很爽的时候, 要知道,这是经历了多少次的层层抽象,层层保证啊。
当然, 在计算机中,层层抽象,并不局限于计算机网络, 看看从电子、原子核到原子, 到分子,再到简单电路,模拟电路,数字电路,芯片,集成电路,机器语言,汇编语言, 操作系统,编译器,高级语言, 这一系列的东西, 也是类似的逻辑。
总之, 通过抽象, 能减少不确定性, 增加确定性。 顺便说下,香农信息论就是讨论不确定性的。
再看看相对的不确定性, 这个才是真正想说的。 昨天不确定的东西, 可能今天就是确定的了。
在这个鸡汤满满的时代里, 心灵鸡汤达人们呼唤我们拥抱不确定性, 拥抱未知, 拥抱变化。 为什么要拥抱呢? 抱起来很舒服吗?当然是不舒服。
多少人, 每天把自己局限于确定性中, 内心或多或少地排斥未知, 倾向于在自己能确定的熟悉的圈子里面活动, 比如我,曾经的我。
为什么那么多人喜欢做熟悉的事情呢? 因为熟悉的事情, 确定性高, 容易搞定, 舒服。 为什么那么多鸡汤达人呼唤拥抱不确定性、走出舒适区呢? 因为不确定性才能真正让一个人拓宽自己的领域和能力。面对不确定性的过程,会有担心和焦虑, 这很正常。从乐于做确定的事情, 到乐于做不确定的事情, 这个转变并不容易,关键在于内心。
老师如果仅仅是讲讲课而不做科研(科研需要面对不确定性), 那么这就是相对简单的确定性事情。 今天要讲的东西, n年前就已经会了。 当然, 这并不是否认老师的功劳和价值, 很多简单的东西, 很重要, 对社会也有价值和贡献。人生无非就是依据价值观做各种判断和选择, 并无对错。
在工作中, 仅仅需要体力就可以搞定的事情, 是简单的确定性事情, 比如堆积点一眼能看穿的业务代码。 就好比把一吨的砖从山底搬到山顶, 确实没什么含量。回头看看我自己的CSDN博客, 有不少搬砖痕迹。 砖头是需要搬,知识是需要积累和总结,但搬多了, 不好。程序员们天天说自己加班,忙得不得了,其实很多时候, 不过是在搬砖而已。现在经常看到api boy或者api caller这种说法, 跟搬砖差不多, 这种确定性的事情, 相对简单。
我们工作的本质任务, 说白了, 就是化不确定性为确定性, 然后去搬那些确定性的砖。老板喜欢你给他搞出一堆不确定的烦人问题吗? 当然不喜欢, 他更喜欢你能解决他的一些不确定性的问题, 至少能让这些不确定的问题转化为确定的问题。 这也是工作价值的本质所在。
每个人的时间有限, 如果按照每天9:00上班, 18:00下班来看, 这一天的时间片该如何划分呢?
本想画个图, 也画了一下, 感觉很丑,还是用文字吧:
主时间片(9:00-18:00)
1. 异步推动,减少不确定性
2. 同步/异步沟通, 化不确定性为确定性。
恩, 这里的同步和异步,就是编程中所说的同步和异步思想。
其余时间片(18:00以后):
3. 搬砖, 处理确定性问题。 额,还是在加班。
很多励志电影都鼓励人们敢拼敢闯, 去创造机会, 面对未知的不确定性世界和领域。《功夫熊猫3》如是说:If you only do what you can do, you will never be more than you are now.
一个人停滞的标志, 很大程度上是让自己心安理得地停留在确定性的事情上, 并不断简单重复着(纵然你重复10000小时,信奉所谓10000小时定律, 有个bird用啊), 而不再面对不确定性。
不多说, 也不知道说了些什么。