在知乎看到過這樣一個(gè)問題:為什么我們“聽過很多道理,卻依然過不好這一生”空盼?高票回答只有8個(gè)字:“理可頓悟书幕,事須漸修±恐海”評(píng)論里有人更簡化說:“知易行難”台汇。
好像都對(duì),但總感覺不是那么通透篱瞎。從程序員的角度苟呐,老黃也琢磨了一個(gè)模型來說明這個(gè)問題。
如果把一個(gè)人比作一臺(tái)計(jì)算機(jī)的話俐筋,那每個(gè)人的“我”這個(gè)自我意識(shí)和思維牵素,是什么呢?第一反應(yīng)大概是操作系統(tǒng)吧澄者,管理身體的軟硬件資源嘛笆呆。老黃開始也這么想,直到若干個(gè)胃疼的深夜之后粱挡,被迫思考一個(gè)靈與肉的和諧問題赠幕。如果“我”是操作系統(tǒng),我為什么不能把胃疼的信號(hào)關(guān)閉询筏?
你有沒有一看書就想上床的情況榕堰?不是黃書……我是說那些但凡理解起來需要費(fèi)點(diǎn)力的書,看一會(huì)兒就困意襲來屈留,想爬到床上休息局冰。我是操作系統(tǒng),怎么控制自己這么費(fèi)勁灌危?
我是操作系統(tǒng)的話康二,晚上做的夢(mèng)是……屏保?屏保顯示什么勇蝙,是操作系統(tǒng)設(shè)置的呀沫勿。我怎么完全不能預(yù)測(cè)自己做什么夢(mèng),甚至大多數(shù)時(shí)候味混,都記不住自己夢(mèng)到了什么产雹?
樁樁件件,終于擊碎我虛妄的自大翁锡。“我”不是自己的操作系統(tǒng)馆衔,所以才會(huì)有“知易”而“行難”怨绣。因?yàn)椴僮飨到y(tǒng)能辦的事太多了拷获,軟件硬件都聽它的篮撑,它如果明白一個(gè)道理,吩咐下去辦就是了匆瓜,又哪里會(huì)難赢笨?
在老黃的模型里驮吱,我們的自我意識(shí),遠(yuǎn)不是我們身體的主宰左冬,而只是我們身體這臺(tái)計(jì)算機(jī)里的一個(gè)普通的程序嘶伟。只不過在我們睡眠以外的時(shí)間里,這個(gè)程序一直在前臺(tái)運(yùn)行而已又碌。它對(duì)外處理輸入和交互,對(duì)內(nèi)通過接口調(diào)用身體的各種機(jī)制毕匀。
第一次聽到這個(gè)觀點(diǎn)的時(shí)候癌别,你可能和老黃一開始一樣,有點(diǎn)不服展姐,不愿意承認(rèn)自己只是個(gè)程序,也沒覺得自己調(diào)用過什么接口教馆。沒關(guān)系,待我再甩幾個(gè)栗子土铺。(服的在旁邊稍坐一會(huì)兒~)
胃疼的時(shí)候板鬓,為什么不能指揮身體關(guān)閉這個(gè)疼痛信號(hào)?因?yàn)椤拔摇敝皇莻€(gè)程序俭令,根本沒有權(quán)限去直接訪問和控制這么底層的機(jī)制!
為什么不能控制自己做夢(mèng)瓢湃?因?yàn)椤拔摇敝皇莻€(gè)程序,而屏保是另一個(gè)單獨(dú)的程序箱季,技術(shù)上和“我”這個(gè)程序是對(duì)等的,我根本沒有控制權(quán)拷况。有人說我有時(shí)能記住自己做的夢(mèng)掘殴,這是不是說明夢(mèng)境其實(shí)和“我”在同一個(gè)進(jìn)程呢赚瘦?不奏寨,能記住夢(mèng)是進(jìn)程間通信的結(jié)果。
為什么會(huì)遺忘揽咕,比如昨天背的單詞套菜,或者前天剛認(rèn)識(shí)的人的長相?因?yàn)椤拔摇敝皇莻€(gè)程序逗柴,我們占用的存儲(chǔ)空間因?yàn)橘Y源的關(guān)系,會(huì)被操作系統(tǒng)不定期釋放戏溺。
我們?yōu)槭裁床荒芡瑫r(shí)專注地做兩件事,比如一邊看書一邊打電話耕拷?因?yàn)椤拔摇敝皇莻€(gè)程序托享,系統(tǒng)只給我們開了一個(gè)進(jìn)程。
我們?yōu)槭裁疵髅鞫煤芏嗟览硐臃停瑓s沒有變成更出色的人?因?yàn)椤拔摇敝皇且粋€(gè)程序辫诅,我們懂得的道理,只是程序收到的一組數(shù)據(jù)么夫,比如……一個(gè)Word文檔吧。我們?cè)趺茨苤竿慌_(tái)計(jì)算機(jī)因?yàn)槭盏搅艘黄臋n档痪,就變成了一臺(tái)更好的計(jì)算機(jī)?
那腐螟,我們?cè)趺床拍茏兂筛玫挠?jì)算機(jī)?(好奇怪的追求……)
好消息是衬廷,“我”不是一個(gè)普通的程序汽绢,我們是會(huì)自我編程的(就是一個(gè)程序還能給自己寫程序)。從這個(gè)角度講宁昭,人人都是程序員。從小到大秩冈,我們不斷地給自己增加功能、修正bug斥扛、優(yōu)化算法丹锹、增強(qiáng)體驗(yàn)、適配平臺(tái)等匾灶,從而變成更出色的自己租漂。
一個(gè)程序能給自己不斷優(yōu)化,這個(gè)情景即便對(duì)于程序員來說也不太多見哩治,畢竟這是人類自我意識(shí)的看家本領(lǐng),目前的IT技術(shù)還遠(yuǎn)遠(yuǎn)沒有完全學(xué)會(huì)憔杨。但最近很火的深度學(xué)習(xí)技術(shù)其實(shí)有點(diǎn)像了蒜胖。比如下圍棋的AlphaGo抛蚤,它不就是自己跟自己下棋寻狂,然后自己改進(jìn)自己的算法么?這么說來蛇券,深度學(xué)習(xí)可能還真是人工智能的正確方向。因?yàn)槿祟愖陨硪彩沁@樣诉位,從來不是通過輸入一個(gè)思維直接起作用菜枷,而是通過不斷的學(xué)習(xí)、實(shí)踐啤誊、修正,自己構(gòu)建出自己的思維模型瞳筏。
我們剛出生的時(shí)候牡昆,系統(tǒng)只給我們的程序預(yù)置了非常有限的幾個(gè)功能,主要就是吃哭拉撒吧柱宦。絕大多數(shù)功能播瞳,小到穿衣掸刊、走路赢乓,大到上學(xué)、工作蚓炬,都得靠自己通過實(shí)踐開發(fā)出來躺屁。爹媽、老師、老板烛恤,都只是社會(huì)配給我們的老程序員余耽,可以提供一些指導(dǎo),但不可能替我們寫哪怕一行程序币喧。這些功能的開發(fā)和升級(jí)袱耽,我們?cè)?jīng)付出的努力不小≈炀蓿可能是付出努力的過程太辛苦了,很多人到了一定階段就不再寫程序琼讽,然后說程序員是青春飯洪唐!問題是,既不改bug凭需,又不加功能,這程序……它還能好用嗎顺献?
現(xiàn)在回看開頭的問題薪伏,就簡單到荒謬的程度了……為什么我們“聽過很多道理粗仓,卻依然過不好這一生”,就好像在問借浊,設(shè)計(jì)文檔有了,程序怎么不好用存捺?因?yàn)榇a你還一點(diǎn)兒沒寫呢啊大哥!
寫代碼就是把道理固化為一個(gè)流程的過程岗钩。在流程內(nèi)把外部輸入處理和內(nèi)部接口調(diào)用形成一個(gè)合理的序列肖油。一旦這個(gè)流程穩(wěn)定成型,你就多了一個(gè)功能森枪。擁有很多功能,才能過好這一生浑娜,而不是聽過很多道理式散。
那這種程序代碼該怎么寫呢?簡單說就一個(gè)字杂数,做;三個(gè)字次和,重復(fù)做那伐。
當(dāng)然,這種太過于簡練的總結(jié)其實(shí)給我們提供不了任何幫助罕邀。事實(shí)上,所有“做”的過程中是有很多共通的背景信息和道理的日熬∩隹瑁可以肯定的是,計(jì)算機(jī)技術(shù)的很多思想敬肚,值得我們學(xué)習(xí)。計(jì)算機(jī)這個(gè)東西本來就是人類歷史上頂尖的聰明人發(fā)明出來并不斷改進(jìn)憎亚,用來幫我們解決問題的。這些聰明又勤奮的家伙第美,把電腦相對(duì)于人腦的優(yōu)勢(shì)發(fā)展到人腦根本無法望其項(xiàng)背的地步斋日,同時(shí)把電腦相對(duì)于人腦的弱勢(shì)也不斷補(bǔ)強(qiáng),不斷跌破人們的眼鏡恶守。李開復(fù)說人工智能很快會(huì)搶掉50%人類的工作,比爾蓋茨和霍金都表達(dá)過人工智能的發(fā)展會(huì)威脅到人類本身的擔(dān)憂庸毫。在計(jì)算機(jī)已經(jīng)強(qiáng)大到這個(gè)地步的今天衫樊,絕大多數(shù)人卻還沒想起來,要借用計(jì)算機(jī)的方法優(yōu)化一下自己科侈!
作為一個(gè)愛琢磨的計(jì)算機(jī)從業(yè)人員,老黃我會(huì)在后續(xù)文章里針對(duì)這個(gè)話題慢慢道來蔫慧。
PS:本文不是研究論文权薯。對(duì)于人腦的真實(shí)機(jī)制,在腦科學(xué)發(fā)展的今天黍析,相對(duì)于大腦的復(fù)雜度來說屎开,人類的研究和認(rèn)知仍然處在非常粗淺的層面。和柏拉圖的戰(zhàn)車比喻奄抽,以及弗洛伊德的本我自我超我理論一樣,老黃的模型也是幫助我們認(rèn)知宪哩、思考和精進(jìn)的手段第晰,只不過是更好用一點(diǎn)而已,不要盲目崇拜茁瘦。