首先,學(xué)習(xí)是要有順序。語言和數(shù)學(xué)可以在一起學(xué),一方面它能夠鍛煉邏輯思維,另一方面她能把數(shù)學(xué)運用在語言的學(xué)習(xí)上;數(shù)據(jù)結(jié)構(gòu)、算法可一起學(xué);軟件工程可以最后學(xué),如有時間,學(xué)學(xué)軟件工程,它會教給你怎樣“生產(chǎn)”軟件。
學(xué)C語言肯定有用,學(xué)完C語言還應(yīng)繼續(xù)學(xué)C++ 和C#, 它們是基于C的更新的語言。JAVA也是不錯的,是當代程序員最喜歡的語言,將來應(yīng)用平臺也比較多,市場大。
在學(xué)習(xí)數(shù)學(xué)的時候,應(yīng)該學(xué)學(xué)離散數(shù)學(xué),比如布爾代數(shù)、集合論、數(shù)理邏輯,因為這些是計算機理論和工程的基礎(chǔ)。這些知識并不難,但它對我們的工作幫助很大。數(shù)學(xué)方法,它是指導(dǎo)你學(xué)習(xí)的一個重要的助手。比如你要實現(xiàn)一個看似很復(fù)雜的函數(shù),而且你編寫了一大堆代碼,什么結(jié)構(gòu)和類型都用上了,可是還是實現(xiàn)不了。這時候,你仔細思考,看看有什么數(shù)學(xué)上學(xué)習(xí)的特別公式能夠?qū)崿F(xiàn)這個問題。所以在設(shè)計算法時,一定要仔細思考有沒有更好的數(shù)學(xué)公式或思想與之相關(guān)聯(lián),這樣往往會收到意想不到的好效果。
其次,學(xué)會了語言也不見得能成為優(yōu)秀的程序員。要做好的程序員,你還要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、算法分析和程序設(shè)計方法。程序設(shè)計就像蓋房子,數(shù)據(jù)結(jié)構(gòu)就像磚、瓦,而算法就是設(shè)計圖紙。你若想蓋房子首先必須有原料(數(shù)據(jù)結(jié)構(gòu)),但是這些原料不能自動地蓋起了你想要的房子;你必須按照設(shè)計圖紙(算法)上的說明一磚一瓦地去砌。
再次,就是多練習(xí)寫程序。畢業(yè)時如果還沒有寫到總量高達幾萬行程序肯定是不行的。必須明白的是:好程序員是寫出來的,不是學(xué)出來的。再強調(diào)一次:好程序員是寫出來的,不是學(xué)出來的。要時刻告訴自己:多寫!多寫!多寫!一定要邊學(xué)邊練,時刻尋找機會練。
最后,學(xué)習(xí)編程心態(tài)要放低,雖然你可能夢想要打倒微軟帝國,可是你不要以為自己真的就有實力把Bill PK掉,一定要從最簡單的開始做起,不要眼高手低,荒于練習(xí)。否則你可能給他打工他都不要哦!例如,學(xué)數(shù)據(jù)結(jié)構(gòu),要寫很多小程序試各種結(jié)構(gòu),光讀書不寫沒用。有時間就要編程序解題試試,即使老師不做要求。任何時候,自己想到什么有意思的題目——包括小游戲,就可以花個周末來編編。
總而言之呢,要把編程序熟練到像作家寫文章,想清了便可信手寫下,只需偶爾查查字典。微軟的程序員就是這樣做的。無論是新手還是大蝦,要的就是勤學(xué)苦練,只有這樣,你才能熟練運用任何一種編程技術(shù),你才能走上通向程序設(shè)計金殿的成功之路。祝你成功!