正文

轉載: 如何提高思維能力(不止針對程序猿)

(2019-03-25 19:22:05) 下一個

轉載: 如何提高思維能力(不止針對程序猿)

https://segmentfault.com/a/1190000015434013

最近公司有小夥伴向我反饋,說自己好像跟不上,感覺拖後腿了。希望我能夠幫忙指點下迷津。他的問題是主管交給他的任務,他都能理解。但是就是自己動手寫程序的時候,發現很多問題解決不了,很慢。
針對他這種情況,我指出了他的可能存在的一些問題。其中比較主要的一點,是思維能力還比較欠缺。當然思維能力是一個寬泛的概念,具體到某個行業,它的要求會不一樣。但是,基本的規律還是有些通用的地方。

基礎知識是思維能力的基礎

不管如何,工作中涉及到的基本知識,是思維能力不可缺少的遠程來。基礎掌握的紮實程度,會影響到你的思考能力。這個基礎知識包括基本的技術知識,一些開發經驗。如果是項目,也包括對於項目需求的理解程度。 
這些沒有捷徑,隻能靠自己多學習。學習學習在學習。 不要幻想自己有天賦,不用學,不存在的。

養成多思考的習慣

所謂學而不思則罔,思而不學則殆。平時在工作中,需要養成多思考的習慣。而且要多多深入的思考,在工作、編程的過程中,對於需求、代碼的簡單架構、相關的技術做更多的思考。思考很多時候,是讓人感覺沒有成就的事情,相比之下寫幾行代碼,更讓人覺得有成效。但是,養成多思考的習慣,對於解決問題的能力有長足的推進作用。
另外在學習知識技能的時候,也需要多思考。不要知其然不知其所以然。最好的方式是多問幾個為什麽,並主動踐行。慵懶的淺層麵的學習沒有任何價值。

複盤與反思

圍棋大師們,都有複盤的習慣。就是在和人對弈的之後,不管輸贏,都會把對弈的過程重新複演一遍,並思考總結哪些地方做的好,哪些地方做的不好,應該如何改進。複盤是一個很好的鍛煉思維能力的方式。對於程序員來說,你可以把自己成功完成的代碼進行複盤,思考哪些地方做的好哪些地方可以改進,都是一個很好的鍛煉方式。而另外一種複盤,就是讀別人代碼,思考別人的思路。 特別重要的是,一個問題,如果你不知道如何解決;而你的主管或者其他同事解決了,這是你一個極好的鍛煉思維的機會。你應該好好的複盤一下他人的解決方案,為什麽用這種解決方案,技術支撐是啥。不僅僅要學習解決方案的本身,還要思考為什麽自己沒有思考到,而人家思考到了,自己需要如何改進自己的思考方式才能思考到,人家用了什麽樣的思考方式和思考方法,是我沒有的,這些都值得好好總結下。
複盤的過程,其實就是反思的過程,沒有反思就沒有進步。
比如,有時候給小夥伴指導一些問題的時候,我會自己親自上去在小夥伴的工位上寫代碼。在這個過程中,我就會把解決問題的思路,以及我是如何思考,如何調試、如何查找資料的思路告訴對方,並最終寫出解決方案的代碼。但是,最終我都會刪除我自己寫的代碼。其實這個時候,我就是給小夥伴一個複盤的機會,好好思考下。

解決問題前先整理思路,分解問題

在遇到實際的問題的時候,可以先思考。而不是先動手。比如可以用思維導圖(或者你喜歡的工具,文檔也可以,用筆在紙上畫也可以)先把思路整理出來。 庖丁解牛,把一個問題分解成很多個問題。這個過程,本身也會幫助你思考。同時,在你把思路整理清晰之後,做的東西也就比較清晰了。 比如我寫代碼的習慣,就是先把相關的類寫好,然後把類裏麵的相關函數寫好。然後就是開始一個一個的填寫了。其實類和函數的整理,也是一種思路的整理。當你有了這種好的思路之後,你也方便和其他人交流和請教問題。這種情況下,你也很明白自己什麽地方不懂,也方便別人了解你哪些地方不懂。

進行一些思維的練習

在網上會有一些思維訓練的問題。可以自己多嚐試練習。其中發散思維、邏輯思維和想象力是需要重點訓練的。發散思維可以培養你的思維的開闊度,在遇到問題的時候,可以想到更多的方法。而邏輯思維可以增加你的判斷力。

多讀書

多讀書刻意開闊自己的視野,並間接影響自己的思維能力。

寫筆記

所謂 好記性不如爛筆頭。我一直強調,要自己多總結,多寫點筆記,記錄下自己的一些訓練,思考的東西。 這個記錄的過程,也是整理你自己思路的過程。多寫寫,不會有壞處。

分享和討論

同時,還可以把自己寫的筆記分享出來,可以找人多討論交流,碰撞思路。吸收更多人的想法和思維。

總結自己的方法體係

說說我學數學的經曆。我小學,初中,高中,數學都是我的最好的一門學科。為什麽特別好,就是自己對此很有興趣。前麵說到的一些方麵:

  • 比如深入思考,我會對於一個問題尋找多個解方法,並看這個問題是否可以引申,擴展,並尋找規律。 比如高中的時候我就發現了海倫公式的引申:圓內接四邊形的求和公式和海倫公式及其類似。另外我還發現任意奇數階幻方的快速填寫規律。還有就是完全數的一個數學規律,具體啥規律我其實忘記了,當時的筆記本也丟了。(完全數是啥?完全數,又稱完美數或完備數,是一些特殊的自然數:它所有的真因子(即除了自身以外的約數)的和,恰好等於它本身,比如6 = 3 + 2 + 1,28 = 14 + 7 + 4 + 2 + 1)。 另外,我自己把所有的三角形函數公式全部自己推導了一遍,而不是死記硬背。等等

當然我當時的性格屬於比較封閉,這些東西並沒有發表。 不然我想怎麽著也可以上一個中學生數理化的雜誌吧。

  • 比如複盤,如果一道題我沒有做出來,老師給了答案,我就一定要把這道題的解答想清楚。不隻是想清楚這道題本身的解答方案,因為以我當時的數學能力,老師一提點,我基本就想清楚了解答方案。但是,我思考的是,為什麽我沒有想到,我欠缺了哪些東西,基礎知識,還是思維角度等等。如果是思維角度的問題,我就會豐富自己的思維角度。
  • 比如說總結歸納以及發散思維,其實在深入思考的部分,本身也是一個總結的過程,還涉及到就是把思考的東西筆記記錄下來。另外也涉及到發散思維,因為沒有發散,就沒有延伸和規律的發現。

說這個,不是顯得自己多厲害。其實主要是自己有興趣去做這樣的事情,自然就能夠達到不錯的效果。我不是有什麽天賦,也算不上特別聰明。隻是喜歡鍛煉自己的思維能力。而在這個數學的學習過程中,我鍛煉了自己的歸納,抽象,發散等等各方麵的思維能力。
而且也形成了一套自己的方法體係:
比如數學歸納法,邊界判斷法,排除法,見微知著法,枚舉法,差異法等等。
這些方法都是自己在不斷學習 錘煉數學思維過程中總結出來的。可能現在想想那個時候學的數學,好像沒有多少用。但是這種思維能力其實一直到現在對我都還有幫助。當然,當時數學學習鍛煉的思維能力和總結的方法體係,對於我學習其他課程,也起到了積極作用。
解決問題的方法體係,其實是很有作用的。比如歸納法。我記得中學的時候一個同學有了一個諾基亞的手機,當時手機裏麵有一個遊戲(現在知道:其實就是漢諾塔,但是當時是不知道的,具體細節不解釋了,不知道的自己去搜索吧)。很多同學都玩不出來,我看了一下,幾分鍾完成了。其實並不是我多聰明,而正是運用了數學歸納法。另外一道題,我在大學剛畢業的時候,在武漢找工作,看到了一份醫院雜誌,全部都是 X科 和Y科的廣告(你懂的)。最後一頁,有一些智力題,其中一道題是這樣的,我當時也是運用歸納法秒解出來。

有個島上住著一群人,有一天來了個遊客,定了一條奇怪的規矩:所有藍眼睛的人都必須盡快離開這個島。每晚8點會有一個航班離島。每個人都看得見別人眼睛的顏色,但不知道自己的(別人也不可以告知)。此外,他們不知道島上到底有多少人是藍眼睛的,隻知道至少有一個人的眼睛是藍色的。所有藍眼睛的人要花幾天才能離開這個島?假定所有人都很聰明,並且每個人都知道別人很聰明。

噓,到公司麵試過的人都知道,這是一道麵試題。

所以,在工作過程中,如果你發現自己的思維能力不夠,就需要運用各種方法來錘煉自己的思維,並總結自己的解決問題的方法體係,不斷積累豐富自己解決問題的方法體係,當然有的人並沒有刻意的總結,但是他們其實在不自覺間總結了,自己不知道而已。

最後還的說堅持。

提高思維能力這種事情,需要刻意練習,也是一個長期的過程。 但凡需要刻意練習的事情,一般都比較枯燥。就像跑步健身一樣,誰都知道跑步有益身心健康,能堅持下來的沒幾個。由於是一個長期的過程,所以也並不能再短期獲得好的成效,所以往往難堅持下去。
這其實和人腦喜歡及時回饋有關係。人腦喜歡讓自己快樂的東西,不喜歡讓自己痛苦的東西。而付出腦力和體力都不是人腦的喜歡。但是如果一定要付出,那麽人腦喜歡及時回饋的東西。

[ 打印 ]
閱讀 ()評論 (0)
評論
博主已隱藏評論
博主已關閉評論