數(shù)據(jù)結(jié)構(gòu)必背算法 應(yīng)該如何學習數(shù)據(jù)結(jié)構(gòu)和算法?
應(yīng)該如何學習數(shù)據(jù)結(jié)構(gòu)和算法?作為一名工作多年的老程序員,讓我談?wù)勎覍幊趟季S的看法。許多初級程序員總是說他們無法建立自己的編程思維。他們總認為解決問題的方法太單一,很多問題解決不了。我總是遇到這樣的學
應(yīng)該如何學習數(shù)據(jù)結(jié)構(gòu)和算法?
作為一名工作多年的老程序員,讓我談?wù)勎覍幊趟季S的看法。
許多初級程序員總是說他們無法建立自己的編程思維。他們總認為解決問題的方法太單一,很多問題解決不了。我總是遇到這樣的學生。他們剛進入研究小組時很熱情。過了一段時間,他們越來越苦惱。他們覺得自己和同學之間的差距越來越大,總是無法建立自己的編程思維。
事實上,很多人都在談?wù)摼幊趟季S,那么什么是編程思維呢?在我看來,編程思維是解決問題的算法和代碼實現(xiàn)過程的集合。編程思想分為兩部分,一部分是算法設(shè)計,另一部分是代碼實現(xiàn)。
因此,要鍛煉編程思維,首先要鍛煉的是算法設(shè)計能力。所以我們常說軟件問題歸根結(jié)底是算法問題。算法設(shè)計的能力決定了程序員解決問題的能力。作為一個程序員,往往需要一個過程來了解不同算法的特點和相應(yīng)的應(yīng)用場景。
編程思維的另一個方面是代碼實現(xiàn)的過程。為了提高代碼的實現(xiàn)能力,往往需要代碼的積累。更多的代碼自然會積累一些經(jīng)驗,這些經(jīng)驗自然會成為將來解決問題的選擇。這些選項的積累會逐漸形成自己的編程思維。