碰到問題時(shí),曾試圖站在機(jī)器的角度去處理,可是卻感覺無從下手,請(qǐng)問如何用計(jì)算機(jī)思維來解決問題?
正確的理解計(jì)算機(jī)思維,可以回答該問題。計(jì)算機(jī)思維是在學(xué)習(xí)和應(yīng)用計(jì)算機(jī)學(xué)科理論和技能的過程中,所體驗(yàn)和獲得的思想方法和做事方法。它分為三個(gè)層次:
首先是宏觀層面,包括對(duì)“可計(jì)算”這個(gè)思想的理解,也就是如何使用計(jì)算機(jī)這個(gè)工具,將虛擬世界處理問題的方法變成解決現(xiàn)實(shí)生活中的各種實(shí)際問題的方法。換句話說,計(jì)算機(jī)思維需要你針對(duì)現(xiàn)實(shí)生活中的問題找到計(jì)算機(jī)的解決策略。
無論是 Google 讓計(jì)算機(jī)下圍棋,還是實(shí)現(xiàn)計(jì)算機(jī)開車,都首先要將現(xiàn)實(shí)生活中的問題和虛擬世界的問題對(duì)應(yīng)。
接下來是“中觀”層面。要理解中觀,一個(gè)很好的例子就是計(jì)算機(jī)的操作系統(tǒng)。任何操作系統(tǒng)都要求按照各項(xiàng)任務(wù)的優(yōu)先級(jí)和可使用的資源,設(shè)計(jì)出調(diào)配資源、讓計(jì)算機(jī)各部分協(xié)同工作的方法,并且對(duì)于各種任務(wù)進(jìn)行整體優(yōu)化。一個(gè)好的操作系統(tǒng),不是做某一件事特別好,而是在資源有限的情況下整體上讓人感覺特別流暢,比如蘋果的操作系統(tǒng)就是如此。
接下來,一個(gè)比較學(xué)術(shù)化的例子,就是計(jì)算機(jī)科學(xué)中的遞歸原理。它將大事分解、從小事做起,步步干凈利落、自頂向下設(shè)計(jì),再自下而上回歸,非常具有美感。
為了便于你理解遞歸,我不妨舉這樣一個(gè)例子。如果想管理好一個(gè)公司該怎么做?這家公司的 CEO 只要管理好手下幾個(gè)副總裁就可以了。那么副總裁該怎么做?只要用同樣的方法管理好自己事業(yè)部下面幾個(gè)總監(jiān)就可以了,類似地,總監(jiān)管理好經(jīng)理,經(jīng)理管理好一線員工。CEO 不必操心怎樣管每一個(gè)員工。我個(gè)人也覺得,遞歸是計(jì)算機(jī)科學(xué)的精髓所在。
第三個(gè)層面是微觀。這才涉及到具體技能,但還不是簡(jiǎn)單的編程等技能,而是這樣幾個(gè)方面:
1、設(shè)計(jì)出計(jì)算機(jī)內(nèi)部整理和查找信息的技能(addressing)。計(jì)算機(jī)內(nèi)外的各種資源都要合理地編號(hào)存儲(chǔ),然后根據(jù)編號(hào)來訪問,要有合理的編號(hào)方案,以及與其配合的高效率訪問算法,這是實(shí)現(xiàn)計(jì)算機(jī)各種應(yīng)用好壞的關(guān)鍵。在生活中,它等同于我們處理各種事情的條理性。
2、緩存。凡事要留有余量,很多時(shí)候要預(yù)先準(zhǔn)備好數(shù)據(jù)和程序,這就是緩存。這樣當(dāng)大事當(dāng)前時(shí),能有所準(zhǔn)備,有空間回旋。
所以,如何用計(jì)算機(jī)思維解決問題?用計(jì)算機(jī)思維的觀點(diǎn)總結(jié)一下:
1、宏觀:找到現(xiàn)實(shí)世界和虛擬世界的對(duì)應(yīng);
2、中觀:在有限資源的情況下做到全局最優(yōu);
3、微觀:合理組織和利用資源,凡事留有余地。
節(jié)選至《吳軍的谷歌方法論》