計(jì)算機(jī)思維,是現(xiàn)在比較流行的一種思維方式。原谷歌科學(xué)家,著名投資人吳軍在他的《谷歌方法論》上,援引清華全球創(chuàng)新學(xué)院院長(zhǎng),計(jì)算機(jī)專家,教授史元春關(guān)于計(jì)算機(jī)思維的解釋,回答了聽(tīng)眾的問(wèn)題。他把計(jì)算機(jī)思維整理成三點(diǎn),分享如下。
第一點(diǎn),宏觀層。把現(xiàn)實(shí)問(wèn)題轉(zhuǎn)變成可以通過(guò)計(jì)算來(lái)完成的問(wèn)題。比如阿爾法狗戰(zhàn)勝李世石這件事。關(guān)于這一點(diǎn),就是一種把現(xiàn)實(shí)問(wèn)題建立成模型的能力,說(shuō)得通俗一點(diǎn),就是解決問(wèn)題的套路。舉一個(gè)簡(jiǎn)單的例子,比如用excel做一個(gè)可以計(jì)算的表格,來(lái)簡(jiǎn)單計(jì)算你的財(cái)務(wù)問(wèn)題。如果擴(kuò)展一下呢,比如你想要做時(shí)間管理??梢杂糜?jì)算機(jī)做一個(gè)模型來(lái)統(tǒng)計(jì)你的時(shí)間使用情況,你可以根據(jù)你自己的需要進(jìn)行不同方向的統(tǒng)計(jì)輸出。比如可以統(tǒng)計(jì)某一個(gè)時(shí)間占總時(shí)間的比例,也可以統(tǒng)計(jì)某一個(gè)項(xiàng)目的計(jì)劃用時(shí)間和實(shí)際用的時(shí)間的相差百分比,進(jìn)而調(diào)整你的時(shí)間使用方式。計(jì)算機(jī)看視頻,就是把視覺(jué)信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)進(jìn)行傳送,然后到了你的電腦上,再把數(shù)字信號(hào)還原成色彩信號(hào),讓你的眼睛能夠看得到。各種音頻也是如此,是音頻到數(shù)字再到音頻的變化過(guò)程。只要能夠計(jì)算的,計(jì)算機(jī)就可以去做。
電腦游戲也是通過(guò)建立一個(gè)模型,把這個(gè)模型做成程序,你下載這個(gè)程序,安裝到你的電腦或手機(jī)里,然后你敲鍵盤或者按鼠標(biāo),或者在手機(jī)觸屏上的操作,吧動(dòng)作傳輸給電腦或手機(jī),電腦或手機(jī)再轉(zhuǎn)換成數(shù)字信號(hào),傳送給電腦或手機(jī)已經(jīng)建立好的模型,也就是游戲程序。這樣,你操作的人物就有了各種動(dòng)作,可以打怪升級(jí)了。
現(xiàn)實(shí)生活中,我們遇到的事情可能會(huì)更復(fù)雜。如果想要建立計(jì)算機(jī)模型,就要把復(fù)雜的問(wèn)題進(jìn)行簡(jiǎn)單化。把可能不相關(guān)的干擾問(wèn)題省略,只把最相關(guān)的問(wèn)題挑出來(lái)建立模型,然后便于計(jì)算機(jī)進(jìn)行計(jì)算。當(dāng)然有時(shí)候我們建立的模型如果太簡(jiǎn)單,也容易讓計(jì)算機(jī)做出不靠譜的運(yùn)算來(lái)。比如你去某飯店吃飯,吃飯之前,可能會(huì)有免費(fèi)的小菜,比如花生米。你把花生米吃掉了,計(jì)算機(jī)就會(huì)判斷你很喜歡花生米,服務(wù)員根據(jù)計(jì)算機(jī)得出的結(jié)論,不斷給你送花生米。還比如你在網(wǎng)上瀏覽某一個(gè)頁(yè)面,看到了電飯鍋。你在電飯鍋?lái)?yè)面逗留了幾分鐘,不太靠譜的大數(shù)據(jù)就以為你對(duì)電飯鍋感興趣,你打開(kāi)網(wǎng)絡(luò),會(huì)不斷收到各種電飯鍋的頁(yè)面,搞得你不勝煩惱。這是失敗的模型的例子。成功的模型,比如谷歌電腦下圍棋戰(zhàn)勝人類棋手這件事。雖然計(jì)算量很大,但是計(jì)算相對(duì)簡(jiǎn)單并且有邏輯。我們?nèi)祟惖拇竽X有時(shí)候?qū)σ患虑榈呐袛喾浅kS機(jī),就像前面說(shuō)的飯店的花生米問(wèn)題,也許就是那天餓了,早飯沒(méi)吃,所以就多吃了幾?;ㄉ?。計(jì)算機(jī)就誤以為你特別喜歡花生。
第二點(diǎn),是中觀層。這個(gè)詞是史元春教授發(fā)明的,針對(duì)宏觀,和微觀兩個(gè)層面,介于這兩個(gè)層面之間的一個(gè)區(qū)域,史教授定義成“中觀層”這是什么區(qū)域呢?就是計(jì)算機(jī)的處理不同任務(wù)的整體優(yōu)化。我們?cè)谏钪?,有時(shí)候是來(lái)什么任務(wù),就去處理什么任務(wù)。而計(jì)算機(jī)的方式,是進(jìn)行優(yōu)化。優(yōu)化的好處,就是合理利用計(jì)算機(jī)的資源。什么是優(yōu)化呢?就是讓處理任務(wù)的順序,以及處理什么任務(wù)更加合理。什么是合理利用資源呢?通過(guò)調(diào)整順序,可以讓計(jì)算過(guò)程更加合理。比如燉牛肉的時(shí)候,先燉肉,后放土豆,否則土豆可能就太爛了。這就是合理調(diào)配資源。
在中觀層,史教授還提到了計(jì)算機(jī)的遞歸原理。這種方式,是從上到下的分解一個(gè)任務(wù),在自下而上地一步步完成。整體結(jié)構(gòu)就像一個(gè)金字塔。著名的麥肯錫的金字塔原理,我們翻譯成結(jié)構(gòu)化思維,就是這樣一種思維方式。在我們論述一個(gè)問(wèn)題的時(shí)候,層層遞進(jìn),自上而下,每一級(jí),都是對(duì)下一級(jí)的總結(jié),自下而上,而每一個(gè)下級(jí),就是對(duì)上一級(jí)的說(shuō)明。
第三點(diǎn),是微觀層。微觀層,首先是檢索,所有的資源,可以用最快的方法訪問(wèn),或者說(shuō)找到。在生活中,我們經(jīng)常有找不到一件衣服,或者一樣?xùn)|西的情況,這就是沒(méi)有用計(jì)算機(jī)思維去管理自己的物品。大腦反復(fù)想這些同樣的問(wèn)題,是對(duì)大腦資源的極大浪費(fèi)。比如一個(gè)女孩子衣服很多的時(shí)候不知道穿哪一件。如果幾十件,翻一翻的時(shí)間還算可以接受。如果是幾百件上千件的時(shí)候,麻煩就來(lái)了。計(jì)算機(jī)思維,就能夠解決這樣雖然很多,但是計(jì)算起來(lái)有邏輯可遵循的問(wèn)題。
前一段時(shí)間,在知乎上有一個(gè)非常有意思的問(wèn)題,問(wèn),李白都喝過(guò)什么酒?我們通常的思維方式,是買一套李白全集,然后一頁(yè)一頁(yè)的翻找關(guān)于酒相關(guān)的頁(yè)面。省錢一點(diǎn)的方法,是去圖書(shū)館查閱藏書(shū)。這種方法雖然省錢,但是會(huì)費(fèi)時(shí)間。去圖書(shū)館來(lái)回的路程,加上找到書(shū)架上的書(shū),然后再一頁(yè)一頁(yè)的翻。都需要時(shí)間。
如果用計(jì)算機(jī)思維,怎么解決這個(gè)問(wèn)題呢?計(jì)算機(jī)思維,思考的是能不能讓跟酒有關(guān)的頁(yè)面自動(dòng)的跳出來(lái)。如果從網(wǎng)上搜索的話,也很不經(jīng)濟(jì),頁(yè)面太多,而且,我們也不知道能不能窮盡。就是說(shuō),就是無(wú)法判斷搜到的頁(yè)面是不是涵蓋了所有跟李白和酒相關(guān)的頁(yè)面。那么,有沒(méi)有專門的唐詩(shī)的電子書(shū)呢?如果有,就可以通過(guò)電子書(shū)里面的檢索來(lái)搜索。于是去亞馬遜,發(fā)現(xiàn)有全唐詩(shī)。才0.98元。買來(lái)以后可以搜李白和酒了。但是這種搜索還是太麻煩,電子書(shū)不支持模糊搜索,就是不支持搜兩個(gè)關(guān)鍵詞。那么再進(jìn)一步思考,有沒(méi)有專門是李白詩(shī)集的電子書(shū)呢?又是在亞馬遜,找到了李白全集電子版,也才0.98元。到此,就差不多解決了李白喝過(guò)什么酒的基本問(wèn)題了。在電子書(shū)李白全集里輸入酒,然后數(shù)就可以了。當(dāng)然有些詩(shī)沒(méi)說(shuō)什么酒,只是提到了酒,這些頁(yè)面可以略過(guò)。提到就的名字的,有些酒的說(shuō)法,跟現(xiàn)代可能有所不同。比如白酒,據(jù)說(shuō)在唐朝還沒(méi)出現(xiàn),那么李白詩(shī)歌中的白酒,指的就不是我們現(xiàn)在所說(shuō)的白酒了。 這是題外話。
微觀層的第二方面就是緩存。凡事留有余地,便于快速反應(yīng)。很多使用手機(jī)的用戶會(huì)發(fā)現(xiàn),打開(kāi)一個(gè)程序以后,不完全關(guān)閉,只是把界面關(guān)掉,這樣重新調(diào)用這個(gè)程序會(huì)很快。但是如果徹底關(guān)閉手機(jī)的app,再想打開(kāi)使用,會(huì)發(fā)現(xiàn)需要的時(shí)間更長(zhǎng)。之所以能夠快速打開(kāi),就是緩存在起作用。
越是大的復(fù)雜的程序,就越需要大的內(nèi)存來(lái)支持。所以,讓緩存留有余地,是以備不時(shí)之需。
在工作中,我們出差或者辦事,最好是預(yù)留一些時(shí)間,避免路上出現(xiàn)其他情況,導(dǎo)致趕不上飛機(jī)。這也是計(jì)算機(jī)思維。所謂凡事留有余地。
總結(jié)一下計(jì)算機(jī)思維處理問(wèn)題的方法,有宏觀、中觀、微觀三個(gè)方面:
宏觀,就是把現(xiàn)實(shí)中的問(wèn)題轉(zhuǎn)換成計(jì)算問(wèn)題,把問(wèn)題轉(zhuǎn)換成計(jì)算機(jī)模型。
中觀,就是把轉(zhuǎn)換成的計(jì)算問(wèn)題進(jìn)行優(yōu)化,并用遞歸原理,把問(wèn)題分解成小問(wèn)題,從上到下,層層分解,在從下到上,層層解決問(wèn)題。
微觀,就是建立檢索,高效運(yùn)行。通過(guò)建立緩存,留有一定的余地。