作者:乾坤一笑
摘要:作者學習C的心得,并推薦了基本學c的好書
來源:乾坤一笑的blog,一笑聊齋
談談偶的學習方法,拋磚引玉!:)
學習不論講不講方法,最終都能學會。但是別人1個月學會了,而你卻100年才學會,這不就晚了么?:)所以說,學習還是要講究方法的。學習方法正確,事半功倍;學習方法不正確,事倍而功半。
什么才是學習C語言的捷徑?我的答案是看書。書中所寫,是前人數十年經驗所寫,看十本書,就相當于汲取了前人數十年的功力,那么你的內功也會迅速上升1甲子。:)書當然要看好書,只有好書才營養(yǎng)豐富。假如你花了1天時間看了一本破書,而該書介紹的知識雖然對于你來說是全新的知識,但是由于書中組織不當、或者深度不夠,使你獲取的營養(yǎng)很少,還不如自己研究一天來的快,這種書就不值當看了。學習C語言要看那些好書?我認為首先要把基礎書給看扎實了,比如拙著《C語言之四書五經》中介紹的4本。(雖然這些書很多已經絕版了,但我相信電子版也是很有益處。況且,如果你真的想看,我相信你一定有辦法搞的到。)這些書你會在很短的時間內看完(比如一兩個月),這取決于你的基礎和悟性。之后要看那些書呢?我不妨再列幾本。Bjarne Stroustrup的《C++程序設計語言》(The C++ Programming Language)一定要看,這本書里面對于C的一些基礎概念的定義,比我見過的其他任何C語言書都要全,都要仔細;Bjarne Stroustrup的《C++語言的設計與演化》(The Design and Evolution of C++)和David R.Hanson 的《C語言接口與實現 創(chuàng)建可重用軟件的技術》(C Interfaces and Implaementations Techniques for Creating Reusable Software)一定要看,這兩本書講述了如何用C來實現異常處理、實現類型的封裝和擴展等一些大的項目中經常用到的高級技術。其他的書,操作系統(tǒng)的要看,編譯原理的要看,算法的要看,模式的也要看。讀書破萬卷,coding如有神。總而言之,就如《傳》中云:“生而知之者,上也;學而知之者,次也;困而學之又其次也?!蔽覀儾荒芸偸且蚶Ф鴮W之,而要做到兵馬未動,糧草先行。
看書是學習的導向,書中能一一介紹清楚概念,但書卻不能把應用的細節(jié)一一介紹給你,因為應用總是招數繁復,變化多端。因此我們要想熟悉招數,懂得書中所講怎么使用,還要多讀源碼。Linus給別人解答問題的時候,常說Read the fucking source code;候捷也在其文中提到“源碼之前,了無秘密。”這就是大師的箴言呀。源碼就像是動畫、就像是幻燈片,把書中的招式一一演練給你看??梢哉f高手的經驗大都是源自代碼。源碼和書一樣,也是要看好的,不要看差的。在此,我推薦看Linux kernel source code 和 Linux tcp/ip source code。這兩套代碼都是開源的,垂手可得。此外,還可以配合著Andrew S.Tanenbaum的《操作系統(tǒng)的設計與實現》(Operating Systems:Design and Implementation)、毛德操 胡希明的《Linux內核 源代碼情景分析》、Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman合著的《Linux設備驅動程序》(Linux Device Driver,3e)、W.Richard Stevens《TCP/IP詳解(3部)》 (TCP/IP Illustracted )、W.Richard Stevens《UNIX環(huán)境高級編程》(Advanced Programming in the UNIX Environment,新版增加了Linux kernel的內容)等書來看,方便的很。
當然程序不是看出來的,是寫出來的。我高中的時候每天堅持寫6個小時程序,《數據結構》和排列組合、圖論方面的習題反復做了N遍。到現在雖然已經時隔五六年,很多內容早已淡忘掉,但卻培養(yǎng)了我很強的編碼能力和調試能力,直到現在還對我的工作有很大的幫助。
學習忌貪多、忌浮躁、忌急功近利、忌目中無人。把學習計劃放的長一些,培養(yǎng)一個好的學習方法,一步一步慢慢走,終能成為高手。
另附C語言四書五經:
1.
C程序設計語言(第2版·新版)
原出版社: Prentice Hall PTR
作者: [美]Brian W.Kernighan,Dennis M.Ritchie
譯者: 徐寶文 李志
書號: 7-111-12806-0
頁碼: 258
開本: 16開 版次:2-1
叢書名: 計算機科學叢書
出版社: 機械工業(yè)出版社
出版日期: 2004-1-1
定價: ¥30.00
二、Pointers on C
C和指針
原出版社: Pearson Education
作者: Kenneth A.Reek
譯者: 徐波
書號: 7-115-11456-0
頁碼: 450
開本: 16開 版次:1-1
叢書名: C和C++實務精選
出版社: 人民郵電出版社
出版日期: 2003-9-1
定價: ¥55.00
三、Expert C Programming
C專家編程
原出版社: PH PTR
作者: Perter Van Der LinDen
譯者: 徐波
書號: 7-115-10627-4
頁碼: 291
開本: 16開 版次:1-1
叢書名: C和C++實務精選
出版社: 人民郵電出版社
出版日期: 2002-12-1
定價: ¥40.00
四、C Traps and Pitfalls
C陷阱與缺陷
原出版社: Addison Wesley
作者: Andrew Koenig
譯者: 高巍
書號: 7-115-10623-1
頁碼: 172
開本: 16開 版次:1-1
叢書名: C和C++實務精選
出版社: 人民郵電出版社
出版日期: 2002-11-1
定價: ¥30.00