不少人對學習C語言感到無從下手,常常問我同一個問題:究竟怎樣學習C語言?我是一個教師,已經開發了不少年的程序,和不少剛剛起步的人同樣,學習的第一個計算機語言就是C語言。程序員
通過這些年的開發,我深深的體會到C語言對於一個程序設計人員多麼的重要,若是不懂C語言,你想寫底層程序這幾乎聽起來很好笑,不懂C語言,你想寫出優秀高效的程庌輌這簡直就是天方夜譚。爲何C語言如此重要呢?算法
第一:C語言語法結構很簡潔精妙,寫出的程序也很高效,很便於描述算法,大多數的程序員願意使用C語言去描述算法自己,因此,若是你想在程序設計方面有所建樹,就必須去學它。編程
第二:C語言可以讓你深刻系統底層,你知道的操做系統,哪個不是C語言寫的?全部的windows,Unix,Linux,Mac,os/2,沒有一個裏外的,若是你不懂C語言,怎麼可能深刻到這些操做系統當中去呢?更不要說你去寫它們的內核程序了。windows
第三:不少新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪一個不是呢?掌握了C語言,能夠說你就掌握了不少門語言,通過簡單的學習,你就能夠用這些新型的語言去開發了,這個再一次驗證了C語言是程序設計的重要基礎。還有啊,多說一點:即便如今招聘程序員,考試都是考C語言,你想加入it行業,那麼就必定要掌握好C語言。數據結構
一、工欲善其事,必先利其器數據結構和算法
這裏介紹幾個學習C語言必備的東東:函數
一個開發環境,例如turbo C 2.0,這個曾經佔據了DOS時代開發程序的大半個江山。可是如今windows時代,用turbo C有感受不方面,編輯程序起來很吃力,而且拖放,更沒有函數變量自動感應功能,查詢參考資料也不方便。建議使用Visual C++,這個東西雖然比較大塊頭,可是一旦安裝好了,用起來很方便。學習
一本學習教程,如今C語言教材多如牛毛,但推薦你們使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,而且內容也很精到。動畫
除此之外,如今有不少輔助學習的軟件,畢竟如今是Window時代了,學習軟件多如牛毛,不象咱們當初學習,只有讀書作題這麼老套。操作系統
二、葵花寶典
學習計算機語言最好的方法是什麼?答曰:讀程序。
沒錯,讀程序是學習C語言入門最快,也是最好的方法。如同我,如今學習新的J#,C#等其餘語言,再也不是抱着書本逐行啃,而是學習它們的例程。
固然,對於沒有學過任何計算機語言的初學者,最好仍是先閱讀教程,學習完每一章,都要認真體會這一章的全部概念,而後不放過這一章中提到的全部例程,而後仔細研讀程序,直到每一行都理解了,而後找幾個編程題目,最好是和例程相似的或同樣的,本身試圖寫出這段已經讀懂的程序;
千萬不要覺得例程你已經讀懂了,你就能夠寫出和它同樣的程序,絕對不必定,不相信你就試一試吧,若是寫不出來,也不要着急,回過頭來再繼續研究例程,想一想本身爲何寫不出來,而後再去寫這段程序,反反覆覆,直到你手到擒來爲止,祝賀你,你快入門了。
三、登峯造極
寫程序的最高境界其實就是掌握各類解決問題的手段(數據結構)和解決問題的方法(算法)。
是否是寫出底層程序就是程序設計高手呢?非也,寫底層程序,無非是掌握了硬件的結構,何況硬件和硬件還不同,要給一個芯片寫驅動程序,無非就是掌握這塊芯片的各類寄存器及其組合,而後寫值讀值,僅此而已。
這不過是熟悉一些io函數罷了。那麼怎樣纔算精通程序設計呢?怎樣才能精通程序設計呢?
舉個例子:你面前有10我的,找出一個叫「張三」的人,你該怎麼辦?
第一種方法:直接對這10我的問:「誰叫張三」。
第二種方法:你挨個去問「你是否是張三?」,直到問到的這我的就是張三。第三種方法:你去挨個問一我的「你認不認識張三,指給我看」。
不要小看這個問題,你說固然會選第一種方法,沒錯恭喜你答對了,由於這個方法最快,效率最高,可是在程序設計中找到解決問題的最優方法和你用的手段倒是考驗一個程序員程序設計水平的重要標誌,並且是不容易達到的。
剛纔這個問題相似於數據結構和算法中的:Map數據結構,窮舉查找和折半查找。因此掌握好數據結構和一些經常使用算法,是登峯造極的必然之路。
談談偶的學習方法,拋磚引玉!
學習不論講不講方法,最終都能學會。可是別人1個月學會了,而你卻100年才學會,這不就晚了麼?:)因此說,學習仍是要講究方法的。學習方法正確,事半功倍;學習方法不正確,事倍而功半。
什麼纔是學習C語言的捷徑?個人答案是看書。
書中所寫,是前人數十年經驗所寫,看十本書,就至關於汲取了前人數十年的功力,那麼你的內功也會迅速上升1甲子。:)
書固然要看好書,只有好書才養分豐富。假如你花了1天時間看了一本破書,而該書介紹的知識雖然對於你來講是全新的知識,可是因爲書中組織不當、或者深度不夠,使你獲取的養分不多,還不如本身研究一天來的快,這種書就不值當看了。學習C語言要看那些好書?我認爲首先要把基礎書給看紮實了~
看書是學習的導向,書中能一一介紹清楚概念,但書卻不能把應用的細節一一介紹給你,由於應用老是招數繁複,變化無窮。
所以咱們要想熟悉招數,懂得書中所講怎麼使用,還要多讀源碼。Linus給別人解答問題的時候,常說Read the fucking source code;候捷也在其文中提到「源碼以前,了無祕密。」這就是大師的箴言呀。源碼就像是動畫、就像是幻燈片,把書中的招式一一演練給你看。
學習忌貪多、忌浮躁、忌急功近利、忌目中無人。把學習計劃放的長一些,培養一個好的學習方法,一步一步慢慢走,終能成爲高手。
若是你想快速掌握C/C++編程,小編推薦個人C語言/C++編程學習基地【點擊進入】!
都是學編程小夥伴們,帶你入個門仍是簡簡單單啦,一塊兒學習,一塊兒加油~
涉及:編程入門、遊戲編程、windows編程、Linux編程、Qt、黑客等等......