我们害怕未知,害怕不确定的东西。我们希望一切都在自己的掌握之中,只是我们永远做不到。
一起回想一下。上学的时候,每个班里都有爱钻牛角尖的人。他们认为,在任何时候、对任何事情都应该“刨根问底”,要把一切都搞清楚才能罢休—并将这种态度当作不可放弃的真理一般对待。正因如此,他们全然无法忍受任何“未知”的存在,所以要“冥思苦想”、“问个不休”,用尽全部精力,以至没有意识到另外一个显而易见的事实:他们和其他人一样,从来没有在任何一个问题上全知全晓。
大部分人都多少有钻牛角尖的习惯,只是程度不同—因为对未知的恐惧早已根植在人类的基因中。人们害怕未知,一切未知的、不可知的因素都会严重威胁人们的安全感。
未知因素给人们带来的心理压力远远超出一般人的想象。假设有一个未知因素X存在,它可能导致A、B两种情况,这时“可能这样、可能那样”的犹豫或许已经造成了巨大的心理压力。如若有第二个未知因素Y,它也可能导致两种情况,即C、D。那么,X和Y共同作用的结果可能有AC、AD、BC、BD这4种情况。如果再有第三个未知因素Z,又可能导致E、F两种情况,这时就有8种(23)结果……也就是说,随着未知因素数量的增加,这些因素所引发的结果的数量将以几何级数的方式飞速增加—这就是未知如此可怕的根源。
在进入任何一个新领域时,这种压力都能使新手窒息。而已经在那个领域里“浸泡”过一段时间的人,往往早已忘记了曾经面对的恐惧和压力,懒得(抑或不屑)开导新手、帮助新手。其实,更多的时候,一些老手实际上并不是“懒得”或者“不屑”,而是“没想到竟然连这个也需要解释”。这就像我们每个人小时候要挣扎很久才学会系鞋带,可成年之后却早已忘记它竟然是一件需要挣扎才能学会的事情一样。而另外一些老手是因为“很快就学会”所以没想到“竟然有人连这个都不会”。
例如,自学编程的人可能会在教程编纂者全然没想到的地方卡壳。当Google API的文档编纂者穷尽力气去写一个“想让任何人都看得懂”的文档的时候,他们不知道有些新手一看到以下的代码,就会先被“foo”、“bar”这两个词卡住。这些新手会不由自主地问:它们是什么意思?为什么要取这样的名字?
代码中的“foo”、“bar”类似于中文里的“张三”、“李四”,是一个无特别含义的名字。参见维基百科goo.gl/jaq70。
事实上,许多“入门读物”之中充斥这两个“怪词”,却几乎从来没有人针对这样的疑问提供充分的解释。
再如,很多人都不明白为什么循环代码块里的起始变量名称是“i”。事实上,谁都不是很确定。据猜测,“i”可能是“index”这个单词的首字母。在循环嵌套的时候,第二层循环的起始变量名称通常是“j”,但这不是某个单词的首字母,只是因为“j”在英文字母表中排在“i”之后。循环:Loop。
在其他领域也是如此—学英语的时候,很多初学者都有过这个疑惑:“为什么‘John’这个名字会被翻译成‘约翰’?就算是音译,也差得太远了吧?”
可尝试到GoogIe上搜索一下“为什么 John 约翰”(goo.gl/D1Z3O),看返回的结果数就知道究竟有多少人曾为此疑惑了。
这只是几个常见的例子而已。自学过任何一项技能的人,都能理解这种“牛角尖陷阱”几乎无处不在的事实。
然而,为了进步,我们必须忍受一定的未知。
流程控制:Control Flow。
顺序:Sequence。
分支:Branch。
循环:Loop。
可参考Böhm和Jacopini于1966年发表的相关论文:Flow Diagrams,Turing Machines And Languages With Only Two Formation Rules。参见goo.gl/LR7d2。
首先,我们要承认自己不可能全知全晓。有些时候,有些问题没有答案,就好像“先有鸡还是先有蛋”一样。而有些时候,即便有了答案,其原因也不见得是我们能够搞懂的。例如,学编程学到流程控制的时候,会知道这样一个知识:除了“顺序”外,只用“分支”和“循环”就能够完成任何流程—初学者大都会好奇,这是如何证明的呢?这个结论当然是经过严谨的证明才被广泛接受的,但究竟有多少初学者可以看懂证明过程呢?在这种时候,不是“反对问为什么”,而是“暂时不去问为什么”可能更划算。
其次,我们要了解未知分为两种:一种是永远不能解决的,另一种是在可预见的未来也许能够解决的。对一个人来说,超过100年就可以算“永远”了,所以,第一种未知对个人来说意义不大,第二种未知却是我们必须面对的,学习的难度也在于此。“第一章的内容需要在掌握后面某一章的知识之后才能深入了解”,这几乎是所有高难知识体系的普遍特征。也就是说,在第一章,我们会有无数疑问,可这些疑问以当时的知识是无法全部解答的,需要我们继续学习,用接下来获得的知识解答现在的疑问。这就是那些爱钻牛角尖的人最终常常吃亏的重要原因—他们总是想“马上解决当时不可能解决的问题”。
事实上,“做人难”也是一样的道理。我们从小时候开始就要做一些事情,而为什么要做,只有长大之后才会明白。记得在小学三年级的时候,父亲“威逼利诱”让我做了件事—手抄《新华字典》。刚开始抵触,后来习惯,再后来因为认识很多别人不认识的字而洋洋自得。甚至后来在课堂上讲“词频”这个概念时,我还常用“鬯”这个字举例,而它就是那时候我学会的“怪”字之一。抄字典这项任务我断断续续花了差不多一年半的时间才完成。现在想来,当年“学”过的那些怪字异词大部分早就还给《新华字典》了,而期间所获得的好处却享用至今—不怕枯燥,那么枯燥的事情都做过了,还有什么枯燥承受不了?
词频:参见第022页。
鬯:chàng①始见之于商代的一种香酒。是用鬯(一种香草)与秬(黑黍)酿制而成的高级酒。用于祭祀、宴饮。②同“畅”。
再强调一次,我们必须接受这个现实—未知永远存在。而后,我们只能不断尝试着适应“在未知中不断前行”。
如果不能接受这个现实,就无法忍受未知的存在,也会平添无数的焦虑。焦虑是导致时间浪费、效率低下的根源之一。当人处于焦虑状态的时候,甚至可能出现一切理智都被清空的情况。另外,焦虑的情绪会让人觉得“必须要做点什么”,但是,在缺乏理智状态下的任何决定和行为都可能带来灾难性的后果。
一个相对有效的策略是:当有问题解决不了时,可以先把它记下来,然后继续前行。注意,一定要把问题记下来。很多人没有记录的习惯,以至出现曾经因为思考(疑问就是思考的起点)后“忘了”而失去获得答案机会的情况。继续前行,并不意味着忽略这些问题—它们已被记录在案,也由此获得了被重新审视的机会。不一定当什么时候、在什么地方、因什么由头,它们之中的一部分就突然有了明确的解决方案。当然,可能性最大的原因只有一个—你一直在前行,你一直在积累,你一直在成长。所以,到有了答案的那一刻,你不再是当初无能为力的你,你已经重生。