很多人對學習C語言感到無從下手,經常問我同一個問題:究竟怎樣學習C語言,?我是一個教師,,已經開發(fā)了很多年的程序,和很多剛剛起步的人一樣,,學習的第一個計算機語言就是C語言,。經過這些年的開發(fā),我深深的體會到C語言對于一個程序設計人員多么的重要,,如果不懂C語言,,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,,你想寫出優(yōu)秀高效的程序,,這簡直就是天方夜譚。為什么C語言如此重要呢,? 第一:C語言語法結構很簡潔精妙,,寫出的程序也很高效,很便于描述算法,,大多數(shù)的程序員愿意使用C語言去描述算法本身,,所以,如果你想在程序設計方面有所建樹,,就必須去學它,。 第二:C語言能夠讓你深入系統(tǒng)底層,你知道的操作系統(tǒng),,哪一個不是C語言寫的,?所有的windows,Unix,Linux,Mac,os/2,沒有一個里外的,,如果你不懂C語言,,怎么可能深入到這些操作系統(tǒng)當中去呢?更不要說你去寫它們的內核程序了,。 第三:很多新型的語言都是衍生自C語言,,C++,Java,C#,J#,perl...哪個不是呢?掌握了C語言,,可以說你就掌握了很多門語言,,經過簡單的學習,你就可以用這些新型的語言去開發(fā)了,,這個再一次驗證了C語言是程序設計的重要基礎,。還有啊,多說一點:即使現(xiàn)在招聘程序員,,考試都是考C語言,,你想加入it行業(yè),,那么就一定要掌握好C語言。 那么究竟怎樣學習C語言呢,? 1:工欲善其事,,必先利其器 這里介紹幾個學習C語言必備的東東: 一個開發(fā)環(huán)境,例如turbo C 2.0,這個曾經占據(jù)了DOS時代開發(fā)程序的大半個江山,。但是現(xiàn)在windows時代,,用turbo C有感覺不方面,編輯程序起來很吃力,,并且拖放,,更沒有函數(shù)變量自動感應功能,查詢參考資料也不方便,。建議使用Visual C++,這個東西雖然比較大塊頭,,但是一旦安裝好了,用起來很方便,。 一本學習教程,現(xiàn)在C語言教材多如牛毛,,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,,并且內容也很精到,。 除此以外,現(xiàn)在有很多輔助學習的軟件,,畢竟現(xiàn)在是Window時代了,,學習軟件多如牛毛,不象我們當初學習,,只有讀書做題這么老套,。我向大家推薦一個“集成學習環(huán)境(C語言)”,里邊的知識點總結和例程講解都非常好,,還有題庫測試環(huán)境,,據(jù)說有好幾千題,甚至還有一個windows下的trubo C,,初學者甚至不用裝其它的編譯器,,就可以練習編程了,非常適合初學者。還有一個“C語言學習系統(tǒng)”軟件,,不過感覺只是一個題庫系統(tǒng),,如果你覺得題做的不夠,不妨也可以試試,。 2:葵花寶典 學習計算機語言最好的方法是什么,?答曰:讀程序。 沒錯,,讀程序是學習C語言入門最快,,也是最好的方法。如同我,,現(xiàn)在學習新的J#,C#等其他語言,,不再是抱著書本逐行啃,而是學習它們的例程,。當然,,對于沒有學過任何計算機語言的初學者,最好還是先閱讀教程,,學習完每一章,,都要認真體會這一章的所有概念,然后不放過這一章中提到的所有例程,,然后仔細研讀程序,,直到每一行都理解了,然后找?guī)讉€編程題目,,最好是和例程類似的或一樣的,,自己試圖寫出這段已經讀懂的程序,不要以為例程你已經讀懂了,,你就可以寫出和它一樣的程序,,絕對不一定,不相信你就試一試吧,,如果寫不出來,,也不要著急,回過頭來再繼續(xù)研究例程,,想想自己為什么寫不出來,,然后再去寫這段程序,反反復復,,直到你手到擒來為止,,祝賀你,你快入門了,。 3:登峰造極 寫程序的最高境界其實就是掌握各種解決問題的手段(數(shù)據(jù)結構)和解決問題的方法(算法),。 是不是寫出底層程序就是程序設計高手呢?非也,,寫底層程序,,無非是掌握了硬件的結構,況且硬件和硬件還不一樣,,要給一個芯片寫驅動程序,,無非就是掌握這塊芯片的各種寄存器及其組合,然后寫值讀值,僅此而已,。這不過是熟悉一些io函數(shù)罷了,。那么怎樣才算精通程序設計呢?怎樣才能精通程序設計呢,?舉個例子:你面前有10個人,,找出一個叫“張三”的人,你該怎么辦,?第一種方法:直接對這10個人問:“誰叫張三”,。第2種方法:你挨個去問“你是不是張三?”,,直到問到的這個人就是張三,。第三種方法:你去挨個問一個人“你認不認識張三,指給我看”,。不要小看這個問題,,你說當然會選第一種方法,沒錯恭喜你答對了,,因為這個方法最快,,效率最高,但是在程序設計中找到解決問題的最優(yōu)方法和你用的手段卻是考驗一個程序員程序設計水平的重要標志,,而且是不容易達到的,。剛才這個問題類似于數(shù)據(jù)結構和算法中的:Map數(shù)據(jù)結構,窮舉查找和折半查找,。所以掌握好數(shù)據(jù)結構和一些常用算法,,是登峰造極的必然之路。最后給大家推薦嚴尉敏的《數(shù)據(jù)結構》清華大學出版社,,希望每一個想成為程序設計高手的人研讀此書,。 再補充一些實際的: 學習c,有一定的基礎后,,要強化學習c的函數(shù)庫,,試問,你連c的系統(tǒng)函數(shù)都不知道幾個,,怎么編程呢,。 建議找本專門介紹c系統(tǒng)庫函數(shù)的書籍來讀讀,這類書一般都有每個函數(shù)的使用說明,,有些還有例子,,這樣可以參考學習,自己在試著用這些函數(shù)編寫一些小程序,。相信這樣就會有質的提高,。譚浩強的書《c程序設計》我們也學了,,真的是一本很好的入門書籍。但只滿足那上面的,,也不會有多高的水平,。那只是進階篇,你要找中級篇來讀,。我認為《turboc 2大全》就是一本很不錯的中級篇書籍,。這是我的實際
|