計算機思維班缰,是現(xiàn)在比較流行的一種思維方式贤壁。原谷歌科學家,著名投資人吳軍在他的《谷歌方法論》上埠忘,援引清華全球創(chuàng)新學院院長脾拆,計算機專家,教授史元春關(guān)于計算機思維的解釋莹妒,回答了聽眾的問題名船。他把計算機思維整理成三點,分享如下旨怠。
第一點包帚,宏觀層。把現(xiàn)實問題轉(zhuǎn)變成可以通過計算來完成的問題运吓。比如阿爾法狗戰(zhàn)勝李世石這件事渴邦。關(guān)于這一點,就是一種把現(xiàn)實問題建立成模型的能力拘哨,說得通俗一點谋梭,就是解決問題的套路。舉一個簡單的例子倦青,比如用excel做一個可以計算的表格瓮床,來簡單計算你的財務問題。如果擴展一下呢产镐,比如你想要做時間管理隘庄。可以用計算機做一個模型來統(tǒng)計你的時間使用情況癣亚,你可以根據(jù)你自己的需要進行不同方向的統(tǒng)計輸出丑掺。比如可以統(tǒng)計某一個時間占總時間的比例,也可以統(tǒng)計某一個項目的計劃用時間和實際用的時間的相差百分比述雾,進而調(diào)整你的時間使用方式街州。計算機看視頻兼丰,就是把視覺信號轉(zhuǎn)換成數(shù)字信號進行傳送,然后到了你的電腦上唆缴,再把數(shù)字信號還原成色彩信號鳍征,讓你的眼睛能夠看得到。各種音頻也是如此面徽,是音頻到數(shù)字再到音頻的變化過程艳丛。只要能夠計算的,計算機就可以去做趟紊。
電腦游戲也是通過建立一個模型氮双,把這個模型做成程序,你下載這個程序织阳,安裝到你的電腦或手機里眶蕉,然后你敲鍵盤或者按鼠標,或者在手機觸屏上的操作唧躲,吧動作傳輸給電腦或手機造挽,電腦或手機再轉(zhuǎn)換成數(shù)字信號,傳送給電腦或手機已經(jīng)建立好的模型弄痹,也就是游戲程序饭入。這樣,你操作的人物就有了各種動作肛真,可以打怪升級了谐丢。
現(xiàn)實生活中,我們遇到的事情可能會更復雜蚓让。如果想要建立計算機模型乾忱,就要把復雜的問題進行簡單化。把可能不相關(guān)的干擾問題省略历极,只把最相關(guān)的問題挑出來建立模型窄瘟,然后便于計算機進行計算。當然有時候我們建立的模型如果太簡單趟卸,也容易讓計算機做出不靠譜的運算來蹄葱。比如你去某飯店吃飯,吃飯之前锄列,可能會有免費的小菜图云,比如花生米。你把花生米吃掉了邻邮,計算機就會判斷你很喜歡花生米竣况,服務員根據(jù)計算機得出的結(jié)論,不斷給你送花生米饶囚。還比如你在網(wǎng)上瀏覽某一個頁面帕翻,看到了電飯鍋鸠补。你在電飯鍋頁面逗留了幾分鐘萝风,不太靠譜的大數(shù)據(jù)就以為你對電飯鍋感興趣嘀掸,你打開網(wǎng)絡,會不斷收到各種電飯鍋的頁面规惰,搞得你不勝煩惱睬塌。這是失敗的模型的例子。成功的模型歇万,比如谷歌電腦下圍棋戰(zhàn)勝人類棋手這件事揩晴。雖然計算量很大,但是計算相對簡單并且有邏輯贪磺。我們?nèi)祟惖拇竽X有時候?qū)σ患虑榈呐袛喾浅kS機硫兰,就像前面說的飯店的花生米問題,也許就是那天餓了寒锚,早飯沒吃劫映,所以就多吃了幾粒花生刹前。計算機就誤以為你特別喜歡花生泳赋。
第二點,是中觀層喇喉。這個詞是史元春教授發(fā)明的祖今,針對宏觀,和微觀兩個層面拣技,介于這兩個層面之間的一個區(qū)域千诬,史教授定義成“中觀層”這是什么區(qū)域呢?就是計算機的處理不同任務的整體優(yōu)化膏斤。我們在生活中徐绑,有時候是來什么任務,就去處理什么任務掸绞。而計算機的方式泵三,是進行優(yōu)化。優(yōu)化的好處衔掸,就是合理利用計算機的資源烫幕。什么是優(yōu)化呢?就是讓處理任務的順序敞映,以及處理什么任務更加合理较曼。什么是合理利用資源呢?通過調(diào)整順序振愿,可以讓計算過程更加合理捷犹。比如燉牛肉的時候弛饭,先燉肉,后放土豆萍歉,否則土豆可能就太爛了侣颂。這就是合理調(diào)配資源。
在中觀層枪孩,史教授還提到了計算機的遞歸原理憔晒。這種方式,是從上到下的分解一個任務蔑舞,在自下而上地一步步完成拒担。整體結(jié)構(gòu)就像一個金字塔。著名的麥肯錫的金字塔原理攻询,我們翻譯成結(jié)構(gòu)化思維从撼,就是這樣一種思維方式。在我們論述一個問題的時候钧栖,層層遞進低零,自上而下,每一級桐经,都是對下一級的總結(jié)毁兆,自下而上,而每一個下級阴挣,就是對上一級的說明气堕。
第三點,是微觀層畔咧。微觀層茎芭,首先是檢索,所有的資源誓沸,可以用最快的方法訪問梅桩,或者說找到。在生活中拜隧,我們經(jīng)常有找不到一件衣服宿百,或者一樣東西的情況,這就是沒有用計算機思維去管理自己的物品洪添。大腦反復想這些同樣的問題垦页,是對大腦資源的極大浪費。比如一個女孩子衣服很多的時候不知道穿哪一件干奢。如果幾十件痊焊,翻一翻的時間還算可以接受。如果是幾百件上千件的時候,麻煩就來了薄啥。計算機思維辕羽,就能夠解決這樣雖然很多,但是計算起來有邏輯可遵循的問題垄惧。
前一段時間刁愿,在知乎上有一個非常有意思的問題,問赘艳,李白都喝過什么酒酌毡?我們通常的思維方式克握,是買一套李白全集蕾管,然后一頁一頁的翻找關(guān)于酒相關(guān)的頁面。省錢一點的方法菩暗,是去圖書館查閱藏書掰曾。這種方法雖然省錢,但是會費時間停团。去圖書館來回的路程旷坦,加上找到書架上的書,然后再一頁一頁的翻佑稠。都需要時間秒梅。
如果用計算機思維,怎么解決這個問題呢舌胶?計算機思維捆蜀,思考的是能不能讓跟酒有關(guān)的頁面自動的跳出來。如果從網(wǎng)上搜索的話幔嫂,也很不經(jīng)濟辆它,頁面太多,而且履恩,我們也不知道能不能窮盡锰茉。就是說,就是無法判斷搜到的頁面是不是涵蓋了所有跟李白和酒相關(guān)的頁面切心。那么飒筑,有沒有專門的唐詩的電子書呢?如果有绽昏,就可以通過電子書里面的檢索來搜索协屡。于是去亞馬遜,發(fā)現(xiàn)有全唐詩而涉。才0.98元著瓶。買來以后可以搜李白和酒了。但是這種搜索還是太麻煩啼县,電子書不支持模糊搜索材原,就是不支持搜兩個關(guān)鍵詞沸久。那么再進一步思考,有沒有專門是李白詩集的電子書呢余蟹?又是在亞馬遜卷胯,找到了李白全集電子版,也才0.98元威酒。到此窑睁,就差不多解決了李白喝過什么酒的基本問題了。在電子書李白全集里輸入酒葵孤,然后數(shù)就可以了担钮。當然有些詩沒說什么酒,只是提到了酒尤仍,這些頁面可以略過箫津。提到就的名字的,有些酒的說法宰啦,跟現(xiàn)代可能有所不同苏遥。比如白酒,據(jù)說在唐朝還沒出現(xiàn)赡模,那么李白詩歌中的白酒田炭,指的就不是我們現(xiàn)在所說的白酒了。 這是題外話漓柑。
微觀層的第二方面就是緩存教硫。凡事留有余地,便于快速反應欺缘。很多使用手機的用戶會發(fā)現(xiàn)栋豫,打開一個程序以后,不完全關(guān)閉谚殊,只是把界面關(guān)掉丧鸯,這樣重新調(diào)用這個程序會很快。但是如果徹底關(guān)閉手機的app嫩絮,再想打開使用丛肢,會發(fā)現(xiàn)需要的時間更長。之所以能夠快速打開剿干,就是緩存在起作用蜂怎。
越是大的復雜的程序,就越需要大的內(nèi)存來支持置尔。所以杠步,讓緩存留有余地,是以備不時之需。
在工作中幽歼,我們出差或者辦事朵锣,最好是預留一些時間,避免路上出現(xiàn)其他情況甸私,導致趕不上飛機诚些。這也是計算機思維。所謂凡事留有余地皇型。
總結(jié)一下計算機思維處理問題的方法诬烹,有宏觀、中觀弃鸦、微觀三個方面:
宏觀绞吁,就是把現(xiàn)實中的問題轉(zhuǎn)換成計算問題,把問題轉(zhuǎn)換成計算機模型寡键。
中觀掀泳,就是把轉(zhuǎn)換成的計算問題進行優(yōu)化,并用遞歸原理西轩,把問題分解成小問題,從上到下脑沿,層層分解藕畔,在從下到上,層層解決問題庄拇。
微觀注服,就是建立檢索,高效運行措近。通過建立緩存溶弟,留有一定的余地。