像程序員一樣思考到底意味著什么?怎樣才能做到?
從本質(zhì)上講,它是一種更有效的解決問題的方法。在這篇文章中,我的目標(biāo)是用這種方式教你。后,你就會知道怎樣才能更好的解決問題。
我們每天都有遇到很多問題,無論大的小的。我們處理這些問題的方式有時候都是隨機的,比如:1、試著解決方案2、如果不行,再試一次3、如果沒有效果,重復(fù)第二步直到運氣好的時候。這樣的方法,在你運氣不好的時候,就傻了??傊@種方法時候解決問題的糟糕的方法!也是非常浪費時間的。
“計算思維或分解大型復(fù)雜問題的能力,與工作所需要的基本技術(shù)能力一樣有價值”。那么,當(dāng)你遇到新的問題時,你應(yīng)該怎么做呢?
步驟如下:
1、理解
非常確切的知道自己被問的是什么問題。大多數(shù)難題之所以難,是因為你不理解它們,所以這個是步。
如何知道什么時候你理解了一個問題呢?——當(dāng)你能用簡單的、用自己的語言解釋它的時候。
你可能會記得,當(dāng)你被困在一個問題上,一旦開始解釋它,你就立刻看到邏輯上的漏洞,而且漏洞很可能也是你以前沒有看到的。
2、計劃
不要在沒有計劃的情況下,一頭扎進(jìn)解決問題的過程中,計劃你的解決方案吧!如果你不能寫下計劃確切的步驟,什么也都不幫不了你。為了得到一個好計劃,回答這個問題: 給定輸入 X,返回輸入Y所需要的步驟什么? 程序員的世界里面,有一個偉大的工具 來幫助他們實現(xiàn)這個,那就是注釋!
3、拆分
這是重要的一步。
不要試圖一次就解決一個大問題,不然你可能會哭的。相反,當(dāng)你把這個問題進(jìn)行拆分成一個一個子問題,這些子問題就更加容易解決了。然后,逐個解決每個子問題,從簡單的開始。另外簡單的方法意味著子問題的解決并不依賴與其他問題的解決。一旦你解決了每個子問題,再把這些點連接起來,連接所有“子解決方案” ,將為你提供的原始問題的解決方法!
4、卡住了呢?
現(xiàn)在,你可能正坐在那里想,這幾個步驟看起來還不錯嘛,但如果我卡住了,遇到了不能解決子問題該怎么辦?
調(diào)試:逐步檢查你的解決方案,試圖找出哪里出錯了。即調(diào)試程序。
重新評估:后退一步,從另個一角度來看這個問題,有什么可以抽象成更加一般的方法嗎?
上網(wǎng)搜:你沒看錯,不管你有什么問題,可能有人已經(jīng)解決了。找到那個人/解決方案。
5、實踐
不要期望僅僅一個星期就能變的很厲害,如果你想成為一個好的問題的解決者,就應(yīng)該去解決很多問題!
6、結(jié)論
現(xiàn)在,你知道“像程序員一樣思考” 是什么意思了。你也知道解決問題是一種難以置信的元技能。如果這還不夠,你肯定也知道了如何練習(xí)解決問題的技巧。