編程中的思考技巧
作為一枚菜鳥程序猿,大部分時候都感覺舉步維艱。產品經理讓你做個功能或修個bug,你會發現有太多你沒見過的方法、語法、用法、、、。在編程的世界裡,未知如同汪洋大海,已知則不過滄海一粟。
焦頭爛額,絞盡腦汁,感覺大腦被掏空,就是我現在的日常。
在這個掙扎的過程中,我也部分有意、部分直覺地採用了一些思考方法。今天總結了一下,與大家分享,請隨意拍磚。
寫下來,是思維的有效輔助工具
如果一個功能你以前就做過,那麼你腦子裡早已有了清晰的模型,很清楚這個功能包括哪幾個方面,需要那幾塊代碼、、、,這時候你不需要進行很多邏輯思考,主要靠記憶、模仿即可。
但如果一個功能你從未做過,就需要進行大量的邏輯思考,還要進行大量的Google,再加上一點點的聯想、靈感,才可能做出來。這時候你會發現腦子裡一團亂麻,因為人腦的工作記憶是極為有限的。
我們從長期記憶中提取組塊放入到工作記憶,利用這些組塊來處理問題。由於容量有限,我們放入的組塊只能有4個。
所以,當你思考整體的時候,就很難同時去思考局部細節。當你去思考A方向的時候,就很難同時去思考B方向。用大白話說就是,腦子不夠用了。當然,也有可能只有我自己是這樣的,呵呵。
其實這時候最好的解決方法就是寫下來,寫出你腦子裡思考的內容。並且要在編程的過程中不斷地寫,不斷地修改:你已經想到了哪些解決方案,bug產生的可能性有哪些,你已經確定了哪些東西,還有哪些有疑問、、、。我現在做一個複雜一點的功能,可能要寫兩三頁的東西,呵呵。
寫下來的另一個好處是,明確你現在需要解決的問題到底是什麼,這樣才能讓自己的大腦專註在這個真正需要解決的問題上去思考。
不斷地回到問題原點、本身,重新確認自己要解決的問題到底是什麼
《神探狄仁傑》中,狄仁傑除了「元芳,你怎麼看」之外,在系統地分析、推理案情時,還喜歡說「讓我們 排雜理陳,直奔主題」。
我們在向前思考、大量Google的過程中,常常會迷失,發現自己有三五個地方看不懂,有好幾個知識點有缺失又
難以快速搞懂。甚至突然發現不知道自己最初想解決的問題是什麼。
這時候應該做的是重新回顧自己寫下來的東西,回到問題的原點,再次確認自己要解決的問題究竟是什麼,通過已經做過的思考和Google,又確認了哪些東西,排除了哪些可能性。現在要想解決問題,需要突破的關鍵點是什麼。
在恰當的時間巧妙地休息
如果經過一兩個小時的思考、Google還是沒能解決一個問題,這時候最好先休息一下,把這個問題先放一放。但是,在休息之前,一定要再次明確一下需要解決的問題究竟是什麼,把它放在腦子裡,然後去做別的事。
為什麼在休息之前要再次明確一下要解決的問題究竟是什麼呢?因為被蘋果砸到過的人肯定不止有牛頓,但只有牛頓想到了萬有引力定律。最重要的其實不是被蘋果砸到,而是被蘋果砸到之前已經進行的思考。牛頓即使不被蘋果砸到,早晚也會從其他地方得到啟發,想出萬有引力定律。(根據現在的研究,牛頓被蘋果砸到這件事是存疑的。但這不重要,我們只要能用這個例子說明問題即可)
你會驚喜地發現,你在走路、洗澡、、、的時候,很可能會突然想到解決方案。
這是為什麼呢?根據我之前的知識積累,我能想到的原因如下:
以上原因我也沒有完全搞清楚其中的原理,並且以上列出的幾條原因可能相互會有重複、重疊。但無論如何,學會恰當的休息,是解決難題的一大技巧。


TAG:啟蒙運動 |