抽象模型
莊子說過吾生有崖,知無涯。以有限的生命去學習無盡的知識是很愚蠢的。所以,學習的終極目標一定不是知識本身,因為知識是表象的、不穩(wěn)定、會過時。
那么我們應該學什么,什么東西才是永恒的?也許我們會有很多見解,比如學習哲學,或者叫哲科;或者學習方法論;或者學習抽象模型等等…
這些抽象模型的完美體現(xiàn)就是我們經(jīng)??吹降臄?shù)學公式,公式好比萬能工具,通過它我們可以知道宇宙和自然是如何規(guī)律運轉(zhuǎn)的。
現(xiàn)實中,我們會發(fā)現(xiàn)各個學科都有自己的抽象模型,這些模型好比天上的繁星,有相似的,更多的是各不相同。
所以,認知結構的拓展其實就是對模型邊界的拓展,我們擁有的模型越多,我們的認知越豐富。
對于計算機來說,什么是那個不變的宗呢?
計算機模型
從物理角度看,晶體管的電容只有兩種狀態(tài):開和關;從光傳輸?shù)囊?guī)律看,電壓只有高低兩種電壓。
這對應了數(shù)字世界的0和1(量子計算除外)。這里多加一個或者多個電容,多加一條或者多個線,就有了2的4/8/16/64種狀態(tài)。
而且隨著納米技術的發(fā)展,多核CPU的增加,5G高帶寬的出現(xiàn),從物理層面可以表示和傳輸?shù)臓顟B(tài)會越來越多。
不管虛擬世界多么紛繁復雜,追溯原點,從物理角度,我們可以從電容開始;從數(shù)學層面我們從二進制開始;從哲學層面,我們從陰陽開始。
計算機通電的過程很像宇宙大爆炸,接下來就是比特之旅。比特在旅途過程,從磁盤->總線->內(nèi)存->CPU,不停的移動。一個比特經(jīng)過一個函數(shù)工廠,可能會產(chǎn)生80個比特,再繞地球一圈,可能又會增加了n次方的比特。
所以,這是一個由哲學構建的穩(wěn)定的底層邏輯的世界;這是一個由數(shù)學構建的有無窮狀態(tài)表示法的比特世界;這是一個以波粒為基礎的極致高效的世界。
馮-諾伊曼體系
比如,從組成計算機的金字塔來看,該體系到現(xiàn)在也是穩(wěn)定的,不管是PC還是移動還是正在發(fā)生的物聯(lián)網(wǎng)架構。計算機的核心部件還是這么幾樣東西:
運算器、存儲器、控制器,輸入輸出設備。不同的是在性能,功耗等變得更加強大。
編譯原理
如果你要了解各種計算機語言的底層原理,那么對語法分析,詞法分析,語義分析,正則表達式,有限狀態(tài)機的知識點是繞不開的話題,所以說編譯原理其實也沒有怎么變化過。
所以,不管是火熱的的go,rust,還是老牌的java、c/c++、python,或者是js、c#等語言,我們其實不應該去糾結千差萬別的語法,而是底層的編譯方法。
不管是以后的語言如何變化,是屬于腳本語言還是編譯語言,無論他們的語法如何奇怪,你應該知道他們都要構造語法樹,都要做詞法分析,語義解析,都要把語法樹翻譯成二進制語言。
分布式原理
分布式的存儲系統(tǒng)他們實現(xiàn)數(shù)據(jù)復制的方法是完全一樣的,該原理能查到的最早的出處是 1978 年 Lamport 的一篇論文《The Implementation of Reliable Distributed Multiprocess Systems》。
1978年啊,同志們,那時候我們都還沒出生呢!這么老的技術到今天仍然在被廣泛地應用!無論應用技術發(fā)展的多快,實際上解決問題的方法,或者說是理論基礎,一直是沒什么變化的。
所以,你在不斷學習新的應用技術的同時,還需要多思考、總結和沉淀,這樣會讓你學習新技術的時候更快更輕松。
不管在mysql,sqlserver關系型數(shù)據(jù)庫里面,還是在redis,mongo等非關系型存儲引擎里,他們都在用數(shù)據(jù)復制的狀態(tài)機原理。
再比如,許多搜索引擎(比如ES)和消息隊列(比如Kafka,RabbitMQ)也在互相抄作業(yè),而且以后的作業(yè)會隨著所謂的“新技術”這個偽概念的不斷出現(xiàn),會越抄越頻繁。
不可知論
愛因斯坦說宇宙就是一個懷表,里面是什么,我一無所知。不可知論的意思不應該是我們真的一無所知,而是假設Default我們一無所知,然后再重新梳理自己思想的真?zhèn)?。它是一種對基點真?zhèn)蔚淖穯枴?br style="margin:0px;padding:0px;outline:0px;max-width:100%;box-sizing:border-box !important;overflow-wrap:break-word !important;" />
因為世界是動態(tài)的,五官是不可靠的,固有的知識是有漏洞的,但是我們又喜歡用經(jīng)驗來衡量和決策。所以,如果能徹底懷疑過往的一切,假設我們的思想都是錯的,那么對真理的追求會更近一步。
我們可以舉個例子,隨著業(yè)務膨脹和并發(fā)的增加,我們通過修修補補的方式以及無法抵抗日益腐爛的代碼,那么唯有重新審視底層架構,甚至推倒重來才能暫時解決當前的業(yè)務需要。至于未來系統(tǒng)會如何演化,不可知。
不可知應該是站在不可知的角度去追求可知,是一種虔誠的學習態(tài)度。
普遍懷疑
這里的普遍懷疑不是為了懷疑而故作高深,因為宇宙是渾然一體的,是混沌的,分科命名不是永恒的名(名可名非常名)。所以,當分科作為一個角度,必然是橫看成嶺側成峰,你怎么可能是永恒的呢?
普遍懷疑把本我和思想進行脫鉤,對被思想占領的肉體和思想本身進行分別求真。
笛卡爾說肉體是無法被證明存在(bing),我們怎么能確定自己不是活在虛擬世界里呢,也就是說我們怎么能知道到底自己是夢里的蝴蝶變的還是我們變成夢里的蝴蝶呢?但是,這個夢卻是真實的,只有思想者是真實的,最后他提出了那句我思我在(i think,therefore i am)的名言。
普遍懷疑其實就是給自己的思想洗澡,把思想的蘋果全部倒出來,包括爛蘋果和好蘋果,然后重新梳理和歸類。愛因斯坦把牛頓的蘋果倒出來,發(fā)現(xiàn)萬有引力定律并不適應微觀世界,最后提出相對論??梢娖毡閼岩墒瞧平饧w信念和創(chuàng)新的重要工具。
思想≠我
當我們被批判的時候,我們會本能的情緒化,因為我們把自己和思想視為一體,對我們觀念的不認可就是對于自己的不認可,所以我不爽了!
試想,我就是思想嗎?李善長老師說:“不是我擁有思想,而是思想占有了我?!保业睦斫馐俏覀兊乃枷氩贿^是先人智慧的影子,我們長期使用后和身體融化一體罷了。
所以問題來了,我們到底要為自己辯護,還是為自己的思想辯護?如果是為自己的思想辯護,為什么要情緒化呢?如果自己的認知本身是有問題的,不應該“聞過則喜”嗎?
當我們因為別人的不認可而情緒化,其實很多時候就是把思想和我等同起來,這對于學習和進步是一種巨大的禁錮,因為思想不等于我們的肉體。
獨立思考
談到獨立思考,我們先從智人演化過程的從眾心態(tài)講起。在遠古社會,從眾的目的是為了安全感,剛開始可能是為了抵御猛獸,后面是為了族群的認同。
從眾的負面效應是一種非理性的無知,集體無意識的盲從。因為追求安全和族群的認可,會違背自我的思想扭曲,從而失去了獨立判斷的能力。
雖然這種后果是很可怕的,但直到現(xiàn)在,這種抱團盲從的現(xiàn)象還會隨處可見,因為對于安全感的需求在組織當中還是存在的。如果不能深刻得認識這種現(xiàn)象,那么自己的思考也是危險。
獨立思考是痛苦的。很多人寧可死也不愿意思考;王興說:很多人為了不去思考,可以做任何事情。
個人認為,這里的思考是指體系化、模型化、抽象化、理性化的邏輯思考,并不是指我們?nèi)粘5母行运季S或者形象思維。
代表計算機世界的思維方式,更切確的說應該是數(shù)學思維,是對萬事萬物進行數(shù)字建模后的一種面向產(chǎn)業(yè)和應用的計算,所以數(shù)感、數(shù)學思維是計算機學習的內(nèi)功,雖然當下并不明顯。
總結
所以,從學習目標來看,我們應該要學習的不是知識本身,而是抽象的知識模型,好比那把萬能鑰匙,模型可以打開各自知識的鎖頭;
從學習的方法來看,我們可以使用普遍懷疑、不可知論,思想和本我的脫鉤、去除盲從慣性來思考,對思想本身進沖洗,對邏輯思維本身進行審視和質(zhì)疑。
借用巴菲特的那句話:“如果哪一年我沒有破壞一個我以前特別相信的觀念,這一年我算白過了”。