如何提高编程的思维逻辑能力
首先,建議要精讀或者精學(xué)三門課程:《離散數(shù)學(xué) 數(shù)據(jù)結(jié)構(gòu) 編譯原理》。所謂的精讀或者精學(xué),不是說簡簡單單為了應(yīng)付考試的學(xué)習(xí),而是對每個細節(jié)每項內(nèi)容都窮究其理,融匯貫通。精學(xué)這3門課程的本身就是邏輯思維和抽象思維能力的很好鍛煉。其中前兩門課程,其知識本身在未來也有大用,編譯原理本身作為一般程序員用到的機會可能不多,但是學(xué)編譯原理真的很鍛煉邏輯思維和抽象思維能力。
其次,可以多玩一些抽象類,數(shù)字類的游戲,例如數(shù)獨。
再次,多精讀一些好書,尤其是設(shè)計類的書,推薦《設(shè)計模式》,邊讀要邊思考,不是灌輸式的讀書,是思辨式得讀書
再再次,花大量時間去優(yōu)化代碼,不管是自己的還是別人的。用不同的方式,不同的思路,不同的算法,不同的結(jié)構(gòu)去改寫和優(yōu)化代碼。尤其是算法類的代碼,系統(tǒng)控制類的代碼。
很少有人能單單通過所謂“邏輯思維”從復(fù)雜問題快速找到抽象的,如果有這樣的人,他的經(jīng)驗,工具,方法和直覺通常起到比邏輯思維更重要的作用。寫代碼需要邏輯思維,但解決復(fù)雜問題更需要理解分析,寫代碼只是解決問題比較靠后的步驟。所以不急著寫代碼,也不急著找抽象,先試著理解問題本身,而不是下意識地想把問題套進已知的,熟悉或不熟悉的工具,那樣是本末倒置的。
多數(shù)情況下,只要有一點耐心,理解問題并不難,這個時候既是邏輯推演,更是探索發(fā)現(xiàn)。
比如交通燈控制,是一個不那么簡單的問題,不急著找模型,也不急著編程,想一想一個交通燈有幾種狀態(tài),一組交通燈有幾種狀態(tài),不同的路口的交通燈有幾種狀態(tài),把具體的例子列出來,你大概會有一個概念:那就是你要寫交通燈管理程序本質(zhì)就是一個狀態(tài)管理的過程。這個時候還沒有得到適合編程的抽象,但你已經(jīng)積累了對輸入和輸出的認識,接下來可以寫一點簡單代碼或者偽代碼,把各種case的邏輯都單獨實現(xiàn)一遍,把各種狀態(tài)之間的轉(zhuǎn)換的條件和過程勾勒出來,從這里觀察他們在數(shù)據(jù)和流程上有沒有共性,有沒有可以優(yōu)化的余地,這樣你就慢慢地找到你要的抽象,然后看看你熟悉的工具(比如編程語言)提供了什么樣的數(shù)據(jù)結(jié)構(gòu)和編程范式最適合去實現(xiàn)這樣的抽象。
把問題具體化,尋找具體的輸入和輸出,具體的狀態(tài)變化。具體化了的問題更容易分解,分解以后的問題更容易分析;先分析再歸納比不分析直接歸納更有操作性,你的“邏輯思維”才能派上用場
總結(jié)
以上是生活随笔為你收集整理的如何提高编程的思维逻辑能力的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dobbo和SpringCloud的区别
- 下一篇: HDU 2520 JAVA