喬布斯曾說過一句話:每個人都應(yīng)該學(xué)習(xí)編程,因為它會教你如何思考。美國一位APP開發(fā)員兼寫作者理查德·瑞斯(Richard Reis),在Medium平臺上發(fā)布了一篇文章《如何像程序員一樣思考——解決問題的方法論》,文中他分析了為何及如何像程序員一樣思考,從而成為一個解決問題的高手。
理查德提出,很多人都認為自己有一套解決問題的步驟。比如,遇到問題時,1.嘗試一種解決方案;2.失敗了,嘗試另一種;3.如果再次失敗,重復(fù)第二步,直到僥幸成功。理查德認為,即使偶爾成功了,這也是解決問題最糟糕的方式,而且非常浪費時間。最好的方式,就像優(yōu)秀的程序員練習(xí)編程一樣,建立一個思維框架,然后在這框架下反復(fù)練習(xí)。
理查德提出,可以用以下5個步驟,幫你建立解決問題的思維框架。
第一步,理解。遇到問題時,先搞清楚問題本身。如何確定自己真正理解一個問題?有效的方法是,嘗試用自己的語言說出它,看有沒有邏輯漏洞,當你能講清楚一個問題時,說明你理解了它。優(yōu)秀的程序員編程時,總會寫下自己遇到的問題,勾畫出序列圖,或同其它程序員一起討論。這個過程,就是在確定自己對問題的理解沒有偏差。
第二步,計劃。沒有明確的計劃時,不要輕易著手解決問題。制定計劃,就是制定解決問題的戰(zhàn)略步驟。當計劃不清晰時,暫停一下,給你的大腦一些分析問題和處理信息的時間。理查德建議,嘗試像程序員做思維導(dǎo)圖那樣,做出一個好的計劃,然后思考下面這個問題:如果你輸入X,采用哪些步驟可以得到結(jié)果Y?這樣可以訓(xùn)練你的思維計劃性。
第三,分解。這是思維框架中最重要的一步。不要嘗試一次解決一個復(fù)雜問題,而應(yīng)把復(fù)雜問題分解成若干簡單問題。從最簡單的開始,一個一個逐級解決,最后合并成原始問題的答案。這也是優(yōu)秀的程序員在編程中最常用到的算法,對于他們來說,解決問題的能力,要比編程語言的熟練度、系統(tǒng)設(shè)計等技術(shù)更重要。
第四,卡殼。當你理解了問題,做出了計劃,分解了復(fù)雜任務(wù)后,依然卡殼怎么辦?理查德說,首先,深吸一口氣;其次,告訴自己,這很正常。好的程序員和解決問題的高手,與普通人之間的差別在于,他們的注意力更多在如何解決棘手問題上,而不是為此惱火。卡殼時,可以試試這幾種方法:調(diào)試錯誤;重新評估問題;利用搜索引擎找到相似問題的解決者,向他們學(xué)習(xí)。
第五,也是最后一步,練習(xí)。以上四個步驟,或許已能讓你建立一套解決問題的思維框架,但距離成為一個解決問題的高手,還差一步,那就是:練習(xí),練習(xí),再練習(xí)。在問題中練習(xí),訓(xùn)練你的思維系統(tǒng)。