学习C语言的教材
日期:?2011年9月18日
我的C語言是自學的,這些年看過不少教材。
下面,我對其中一些教材做個點評。
1. How to Think Like a Computer Scientist: C version
這是我讀過最易懂的C語言教材。
雖然它只講解最基本的語法,但是寫得特別好懂,深入淺出,讀起來不覺得累,而且它還允許免費下載。我認為,這是C語言的首選入門教材。
下載網址:http://prof.beuth-hochschule.de/scheffler/lehre/programmieren-in-c/
2. C Primer Plus和C Programming: A Modern Approach
上面這兩本,都是著名的C語言初級教材,都是厚厚的大部頭。
我通讀過它們,感覺都寫得不錯,都值得推薦。但是因為這兩本書定位類似,內容重復,相比之下,我覺得C Primer Plus可能更適合中國讀者的思維,更易讀一些。
3. C Programming Language (2nd Edition)
這是最著名的C語言書籍。
但是,它不是寫給初學者看的,更偏重C語言的編程技巧和算法思維。我讀過兩遍,還是覺得很多地方沒讀懂。
4. 國產教材
通常來說,國產教材質量不高,不值得推薦。但是有兩本,我想特別提一下。
《零基礎學C語言》,康莉等著,機械工業出版社,2009。
這本是我在圖書館里偶然撿起來的,翻了幾頁,發現是原創的,而且寫得比較認真,代碼解釋詳盡,行文錯誤少,就把它讀完了。我認為,在國產教材中,這本書的質量很高,值得推薦。
《Linux C編程一站式學習》
這本書在國產書籍中罕見地采用了GFDL許可證,http://learn.akae.cn有在線閱讀,可以免費下載。這一點值得高度肯定。
但是,正如前言所說,它的主要資料來源是兩本英語教材《How To Think Like A Computer Scientist: Learning with C++》和《Programming from the Ground Up》,以及一些教師的上課講義,然后拼在一起,做成一本書。所以,造成它的體系比較生硬,缺乏整體感,銜接得不好,很多地方沒有做到由潛入深、循序漸進。所以,我覺得這本書不適合初學者,可以當做手冊查資料。
5. Beginning Linux Programming
這是我現在正在閱讀的書。我看它在Amazon上排名Linux C編程的第一位,就選了它。
它主要講解如何用C語言調用Linux的系統API,偏重基本概念的解釋,我已經讀了兩章,感覺還不錯。
=================================
下面想聽聽大家的意見。
我現在的C語言,到了這樣一個水平:語法已經基本掌握了,可以獨立開發一些小程序。下一步,我想進一步提高C語言水平,主要用于Linux開發。
大家能不能推薦一些C語言的中級教材?
(完)
文檔信息
- 版權聲明:自由轉載-非商用-非衍生-保持署名(創意共享3.0許可證)
- 發表日期:?2011年9月18日
- 更多內容:?檔案???開發者手冊
- 博客文集:《尋找思想之路》,《未來世界的幸存者》
- 社交媒體:?twitter,?weibo
- Feed訂閱:?
相關文章
- 2017.04.05:?CSS in JS 簡介 1、 以前,網頁開發有一個原則,叫做"關注點分離"(separation of concerns)。
- 2017.03.03:?技術的熱門度曲線 全球最大的 IT 咨詢公司高德納(Gartner),有一個"技術熱門度曲線"模型(Gartner Hype Cycle)。
- 2017.02.22:?函數式編程入門教程 你可能聽說過函數式編程(Functional programming),甚至已經使用了一段時間。
- 2017.02.10:?為什么文件名要小寫? 上周,《中文技術文檔寫作規范》加入了文件的命名規則。
廣告(購買廣告位)
留言(95條)
直接上系統編程,停留在語言層面沒什么意思。
《unix環境高級編程》
2011年9月18日 15:53?|?#?|?引用
語言就像窗戶,可以讓你看到不同的世界
2011年9月18日 16:00?|?#?|?引用
沒看過K&R也敢說你會C?
2011年9月18日 16:13?|?#?|?引用
這位說話很不客氣啊,為什么沒看過你說的那個就不能會C了?你很牛逼唄?
2011年9月18日 16:25?|?#?|?引用
K&R必看, 如果你要學linux編程, 直接買《unix環境高級編程》. 然后開始在寫自己需要的程序, 有什么不會再看書. 在初學階段是要看書沒錯, 但是過了那個階段, 要提高就只能多寫程序, 遇到不會再來查.
還有, 其實C語言很簡單, 完全沒必要看那么多這類入門書. 有精力就看 這類書比較好.
2011年9月18日 16:45?|?#?|?引用
C是一個比較小的語言,明面上的語法特性您上面看的那些書已經足夠。進階主要在一些技法和陷阱方面。這些書我覺得比較好:C Traps and Pitfalls、Pointers on C、Expert C Programming。其中最后那本涉及到挺多底層細節,如果您覺得看K&R有點吃力,那可能Expert C Programming也比較有難度。還有一本國內沒有上市:C Programming FAQs,不過在網上可以找到內容:http://c-faq.com/。
關鍵還是要多讀多寫代碼。讀的方面可以看看The Standard C Library,學習C標準庫是怎么實現的。還有本可能不太出名但其實非常好的書是Linux Programming by Example: The Fundamentals,它的一個特點是很多例子基于真實的GNU或UNIX代碼講解。
2011年9月18日 16:55?|?#?|?引用
國內的《c程序設計》譚浩強,好像是最經典的一個。
2011年9月18日 16:56?|?#?|?引用
國產教材的話裘宗燕老師的《從問題到程序》也挺不錯,很適合編程的初學者。
2011年9月18日 16:59?|?#?|?引用
The C Book
http://publications.gbdirect.co.uk/c_book/
2011年9月18日 17:18?|?#?|?引用
Unix環境高級編程,+1。10年Linux C編程,看完和沒看完的也有幾百本了,手頭留下的開發用的實體書只有Unix環境高級編程,TCP/IP詳解,和Unix網絡編程,都是Richard Stevens的。好些書看過了就再也不需要了,接口的東西網上有的是,而這幾本書講的是機制,是Unix C開發的生態環境。面試的時候經常聽人說熟悉C開發,了解Haskell,精通Java,熟練Python,可是什么叫精通,熟練一門語言呢,還是生態系統。編譯器,編譯環境,運行環境,測試工具,性能評測,解釋器擴展,GUI等各種支持庫的框架。至于語法和標準庫,這些只是用來入門的。
2011年9月18日 17:23?|?#?|?引用
C語言四書五經:
《C和指針》
《C語言陷阱與缺陷》
《C專家編程》
《C語言接口與實現》
2011年9月18日 19:11?|?#?|?引用
SICP,看看語言設計背后的東西你就會知道,c語言有現在這樣簡潔的面貌是設計上的自覺,它把理論性的東西和工程上的臟東西處理的很好,好到大部分人甚至都不知道有這事情,一切都是那么自然。
然后就是UNIX高級編程之類都工具書啦,當然,這個和c語言本身沒什么關系,離體了,不過要拿c語言干活倒是必須知道這些
如果相當語言專家都話,直接看c99標準吧。
2011年9月18日 19:31?|?#?|?引用
C Programming Language可以當工具書用,很薄,但是很多細節的小東西不確定了都可以查到。Beginning Linux Programming國內英文版的要170多,據說中文版翻譯巨爛,我現在看英文電子書呢,很好。千萬別看譚浩強的書,錯誤很多,坑人,還不如哈工大出的那本教材用來入門。接下來可以看看Unix網絡編程,還有C專家編程什么的吧,我也還在看。
2011年9月18日 19:49?|?#?|?引用
關于C語言的教材,我推薦The GNU C Programming Tutorial。
據說Richard Stallman有一次遇到了作者,要求他將這本書開源,他就照辦了。
這本書也許深度有所不及,但是作為入門的教材是相當的好。章節安排合理,結構清晰,很短時間內就可以讀完。
2011年9月18日 20:14?|?#?|?引用
我認為看書對于補充理論來說很有意義,現階段阮一峰可以多讀下C的經典代碼吧,這個對于提升能力非常快。
2011年9月18日 20:25?|?#?|?引用
KK都還有很多地方沒懂不應該,先把KK弄個底朝天再說
2011年9月18日 20:25?|?#?|?引用
峰哥推薦,值得信賴。
其實現在不是缺少資料,是缺少耐心。
2011年9月18日 20:49?|?#?|?引用
恩,我是不懂。
那再說一句:沒看過CC也敢說你是程序猿?
2011年9月18日 20:54?|?#?|?引用
你說你看不太懂K&R,這樣應該不是語言層面的問題,而是對計算機硬件和OS的理解不足導致的。我覺得,要理解C語言,需要理解計算機原理和匯編,才能明白C語言為啥設計成那個樣子。
從這個角度,推薦《深入理解計算機系統》,能讓你更好的理解計算機和OS,同時這書也是很好的linux下的C語言開發入門教材。
2011年9月18日 21:22?|?#?|?引用
http://sunxiunan.com/?p=1661
漫談C語言及如何學習C語言
2011年9月18日 21:23?|?#?|?引用
嗯...c專家編程
http://book.douban.com/subject/2377310/
2011年9月18日 21:25?|?#?|?引用
感謝推薦!我一直想找一本入門的書,您推薦的第一本看了幾頁,覺得作者的確是很有針對性的給初學者寫的!百度知道那些求助都不適合我,哈哈。
2011年9月18日 21:48?|?#?|?引用
引用土木壇子@比利時的發言:
峰哥推薦,值得信賴。
其實現在不是缺少資料,是缺少耐心。
土木君!沒想到在這里遇到了~~~非常贊同你的說法~~缺的就是耐心啊……而且現在信息量大反而不能夠很好的汲取。
2011年9月18日 22:27?|?#?|?引用
其實國產的入門教材有一本值得一推,裘宗燕老師著作,比起他的譯作來籍籍無名。
實際上寫得很好,深入淺出。我通讀過。
從問題到程序:程序設計與C語言引論(第2版)
http://images.china-pub.com/ebook195001-200000/198062/zcover.jpg
http://product.china-pub.com/198062
2011年9月18日 22:40?|?#?|?引用
引用yanng的發言:
國內的《c程序設計》譚浩強,好像是最經典的一個。
這本恰恰是C入門比較糟糕的一本書。如果不是高校壟斷使用也不可能有這么高的發行量。
2011年9月18日 23:08?|?#?|?引用
推薦《Computer Systems: A Programmer's Perspective》 2ed,建議可以參考一下CMU的課程的online Notes。 CMU系統編程的三門課:15123 15213 15410。 上面本書是15213的課本。
2011年9月18日 23:46?|?#?|?引用
可以推薦fortran方面的嗎?支持峰哥。
2011年9月18日 23:58?|?#?|?引用
http://book.douban.com/subject/3012360/
人民郵電出版社《c和指針》,Kenneth A.Reek著,徐波譯。
在經歷了譚浩強等國內的爛教材的蹂躪之后,我對c語言倍感迷茫,借由此書,才終于在某些地方豁然開朗,從此走上真正的C學習之路。
2011年9月19日 00:16?|?#?|?引用
Expert C programming
強烈建議看看中文版, 我見過的翻譯書中, 最正點的中文翻譯了!
2011年9月19日 00:57?|?#?|?引用
C語言是個比較小的語言。樓上Neutralevil的意見靠譜。
K&R講的是C語言的語法和語義,是針對編程老手的,不是準備來教新手如何編程的。這本書,最好是買本英文本備查。新手學C,最好用把語言和基本編程方法結合在一起教的教材。
C語言與機器結合比較緊密,所以,很多概念最好是懂點匯編語言,才容易理解,最好是知道C語言中的某個特性在對應的匯編中是怎么樣的。
2011年9月19日 05:49?|?#?|?引用
學語言,《C專家編程》
學Linux編程,《Unix環境高級編程》
2011年9月19日 08:04?|?#?|?引用
http://prof.beuth-hochschule.de/fileadmin/user/scheffler/lehre/think-c_v1.05_g.pdf
峰哥推薦的第一本在網站上下不下來呀
2011年9月19日 08:16?|?#?|?引用
用c做整個軟件的構架設計是最難的。
2011年9月19日 09:09?|?#?|?引用
我覺得你看的已經夠了,開始做具體的項目吧.
有不清楚的就上網查,查查就會知道還缺少哪方面的知識需要去學習,很可能并不是C語言本身的知識.
c,linux的很多資料我都是直接去查linux man page的,比如:?http://www.linuxmanpages.com/
2011年9月19日 09:57?|?#?|?引用
編程語言不是用來學的,是用來用的(少數語言例如lisp除外)。K&R是C作者寫的東西,當然值得讀,就如同說你學C++必須要讀BS的書一樣,通常只有讀發明者的書才能更深刻的理解這個語言,不過一般而言,發明者的書不適合初學者。
我想象不出有什么語言需要看5本書之多,以我二十多年的編程經驗來說,似乎沒有什么語言有必要看超過兩本書。直接上手開始做,才能真正掌握,而這些是看100本書都無法得到的。
對于每個語言來說,入門書有一本就夠了,至于提高書,當你有了一定的編程經驗后有一本也就夠了。這就是我認為不需要超過兩本書的原因。
至于工具書,我個人認為意義不大,因為絕大多數用于查API和基本概念的東西都有電子版,也都可以直接在網上搜到,沒有必要收藏一本書(收藏一個頁面或者一個google關鍵字要比收藏一本書方便得多)
2011年9月19日 10:01?|?#?|?引用
《Unix環境高級編程》,現在linux作C開發,這本是必看的。C的語法其實很簡單,看幾本語法書就行了,主要是要多實踐。現在c主要用在效率要求的比較高的地方和嵌入式方面,這本書主要是用于學習c跟系統的交互。
2011年9月19日 10:09?|?#?|?引用
恩,最主要的是要去寫。我們老板就是說,不要把東西都學會了再去干。
2011年9月19日 10:20?|?#?|?引用
有個錯別字:"由潛入深"
2011年9月19日 11:39?|?#?|?引用
好多搞C的大拿啊。
有兩個事希望大家或者博主介紹一下:
1.國內目前做C開發的都做哪些應用?
2.能夠做一個類似的C++的推介?
謝啦
2011年9月19日 13:08?|?#?|?引用
問下各位大大,如果是在校的非計算機專業的本科生,能怎么找到寫C代碼的機會呢?
我唯一想到的就是看STL,然后自己寫下基本的lib。
請指教。
2011年9月19日 14:15?|?#?|?引用
引用kk的發言:
沒看過K&R也敢說你會C?
老兄,就你這水平也敢在這里丟人現眼。還不趕緊查查 K&R C 到底說的是那本書。 The C Programming Language[1] (aka "K&R") is the seminal book on C.2011年9月19日 14:42?|?#?|?引用
一們語言的繁榮往往得益于它所寄生的平臺的繁榮。C語言生于Unix,介紹Unix的經典書籍也就那些,如上面有人提到過的“Unix環境高級編程,TCP/IP詳解,和Unix網絡編程,都是Richard Stevens的”。要往深處了解一們語言,就要掌握這們語言的平臺和生態系統。
其實我覺得你對C語言本身的掌握到了這個程度已經足夠了,那些介紹所謂C語言的各種奇技贏巧的書大可不必看,浪費時間好處又不是很多。目前我覺得另一本書更適合你《Computer Systems: A Programmer's perspective》,目前已經出了第二版了。我覺得這本書可以彌補C語言本身以及Linux編程之間的知識空缺。
2011年9月19日 14:49?|?#?|?引用
學匯編,尤其是AT&T語法的匯編,學鏈接與裝載,學習c標準庫,每一個的學習難度都比C上不止一個臺階,但如果拿下了,你的C,或者說你的計算機功底,能讓你輕松勝任很多工作,對計算機或者說語言的理解層次上幾層臺階。我覺得這是學習一門語言的要義,我個人認為不能把語言純當作一門工具,用它來工作在我看來是在有深刻理解后一種自然而然順帶的事。歡迎一起學習.
2011年9月19日 16:08?|?#?|?引用
同推薦Richard Stevens系列,字字珠璣,Unix/Linux必備。
2011年9月19日 16:11?|?#?|?引用
經典書籍上面都有列出了,,,(共三卷),K&R C作者既是C語言的創立者,是難得的一本好書.其他教材入門即可以扔掉.c primer plus可以作手冊用,里面寫的很詳細..
2011年9月19日 20:51?|?#?|?引用
不用教材,寫程序就好。
2011年9月19日 21:52?|?#?|?引用
博主推薦的那本藍色的零基礎學C,這個系列的書都很不錯的,比如學習PHP,JAVA,MYSQL等等,都有,而且寫的都挺好。不過我們學校用的是清華大學出版社的一本書,譚浩強寫的,綠色封皮的,忘了叫啥名了,感覺也沒啥特色。
2011年9月20日 09:31?|?#?|?引用
這里的評論真是個寶庫,就像樓上幾位高手說的,阮兄書看多了。K&R的開篇就說了:the best to learn a language is using it.(大意如此)。我也覺得一兩本書就夠了,然后就是看代碼,寫代碼。有一些*nix上的小工具代碼據說挺適合閱讀一下,比如coreutils的代碼。
2011年9月20日 09:52?|?#?|?引用
唉。。。今天遇到個女計算機碩士 只會寫printf.........
2011年9月20日 11:09?|?#?|?引用
認真看完了所有評論,評論意義大于文章,受教了。
2011年9月20日 20:40?|?#?|?引用
《C專家編程》
《linux程序設計》
C就這兩本就夠了...基本熟悉linux下面的文件,網絡,線程,信號量...
基礎就有了,再選一個UI(隨便),就可以開發小工具了...
其實吧,你把這兩本書看完,練習做完,就很不錯了...
我反正現在對語言都沒概念了,學哪個都是coding...
木激情,
2011年9月21日 12:42?|?#?|?引用
該推薦的樓上諸位都說了~
不過我覺得博主看第三本還有許多沒讀懂,說明基礎仍然不扎實,需要的是更多思考揣摩。
2011年9月21日 21:58?|?#?|?引用
哈哈,鋒哥,我剛整理完一個C語言速查,就看見你整理C語的書。。
https://ganquan.info/standard-c/
C語言算法比較難,其他還好。現代的語言很多語法都跟它類似的。
2011年9月22日 10:31?|?#?|?引用
我感覺如果想用C語言開發程序,《C語言詳解第六版》十分精彩,它的特別之處就是在于能夠用軟件工程的思想來介紹C語言,而且難得可貴之處就是其中很多例子舉得十分其當,看的時候都會十分的敬佩作者怎么會想的如此得體,后來想想也是,已經出了六版了,而且它其中會涉及到項目,項目都是實戰型的,還有代碼解析,每個例子都是以實踐為基礎的,所以也讓人看起來津津有味。
從剛開始學習C語言就被很多人告訴它屬于中級語言(介于匯編與高級語言之間),特長在于底層開發,尤其它的精髓在于指針,后來隨著學習的深入才發現這話的確是太對了,《C與指針》這本書也適合強化指針,如果已經有了許多基礎在看就會如魚得水一般,會對自己的指針能力得到強化,全書都是貫穿指針來講解的。《C陷阱與缺陷》應該說是咱們的枕邊書了,該書是為數不多的這么多年了,都維持原版原貌,沒再版而又一直經典的書籍呀,書中介紹的許多編程技巧都太值得思考了,比如說開篇就介紹的 ==技巧,幾乎好像所有人都犯過這個毛病(將=寫到條件里),一個簡單的變換 1==i ,就解決了,網上對譚浩強老師的書籍攻擊,有很大一部分都是因為編程風格,養成一種好的編程風格確實好處太多,尤其是在編寫大程序的時候。我感覺如果可以嘗試編寫1000行代碼的程序,就盡量寫的大一些,寫小程序和大程序的感覺是不一樣的,1000行代碼的程序和10個100行的感覺可真是沒法比的,樂趣當然也沒法比較,也許是階乘的關系吧。有些很有趣的算法書也可以嘗試,但是初期最好看源碼的,雖然很多人說源碼影響理解算法精髓,當剛開始個人感覺最好還是從源碼入手。數據結構也可以有效強化C語言。
非常感謝您的博客,一直在訂閱,說實話,您的好多文章都對我幫助許多,給我了莫大的啟示,您的好多話語也在影響我——讓一名普通的大學生不斷的得到成長與反思,一直都不知道怎么感謝您,也借助這個機會,想和您說句:謝謝。大學時間我一直熱衷C語言編程和底層編程,希望這些文字可以給您一些參考。
2011年9月22日 21:17?|?#?|?引用
看了那些書,c語言層面的東西就足夠了,下一步就是牛逼加班敲代碼,api調用看系統文檔,程序結構看軟件設計書,這階段跟具體語言關系不大。
2011年9月23日 13:09?|?#?|?引用
《C Programming Language (2nd Edition)》 這本不就是 K&R C的了嗎?怎么還有評論者說沒有K&R?
2011年9月24日 14:26?|?#?|?引用
在補上一本,“微軟C編程精粹”,關于C設計的書。
2011年9月25日 11:59?|?#?|?引用
K&R 作為入門是必須要看完的,其他的都不需要。有的例子不太好理解,但是書很薄,完全能啃完。習慣了你就會發現看這本書的樂趣。不懂的可以發郵件問我:)
2011年9月26日 18:02?|?#?|?引用
其實我也是想推薦《深入理解計算機系統》(最近出第三版了)。這本書一共有三部分,第一部分以C語言為例介紹了一些計算機系統里面的基本問題,對理解C語言和計算機系統特別有啟發性,雖然不難,但很細致,肯定能滿足你這階段學習的需要。后面兩部分基本上都是系統編程的東西,也都是以UNIX為例講的,整個大流程的東西都講到了,個人感覺看完后兩部分就能開始動手在 UNIX上面用C做一些小東西了。
這本書整體都講的都很清楚,中文版譯的也很好,而且書中習題設計的也很好,如果遇到比較難懂而且不太容易動手做的部分(比如鏈接那部分,對于新手來說基本沒有省時省力的動手實踐的方法),還可以通過做題增加感性認識。還想深入學習或者對更具體的問題有疑問的話看參考文獻就成了。
2011年9月26日 22:07?|?#?|?引用
推薦了很多好教材, 萬分感謝
2011年9月28日 09:04?|?#?|?引用
來過好多次了,今天發現博主要學C,本人是程序員,自己主要用C++,說說體會供你參考。
個人感覺,教材有一兩本好的就夠了,你前邊列的應該都夠用了。我是好多都沒看過,C語言的我主要就一本教材,是上面3號的中文版,說實話,初學者一兩遍看懂倒是不正常了。
我當初入門的時候也是不懂,現在想想,其實開始不清楚的地方可以放一陣再看,一些相關的知識只看一點是很難理解的,要聯系起來理解。
《Programming from the Ground Up》看過前面一點,理解內存結構對C很有幫助,后面就沒怎么看了,本人英文水平也不太好,匯編也用不到。
比較重要的是要實踐,多寫多練。
建議你寫自己用得著的小程序,少寫那種寫完就扔的(初學實驗代碼除外)練習,可以持續改進,不斷完善。遇到問題查查書上的解釋,直接Google一下也挺方便的。這個過程中,許多知識慢慢就掌握了。
那時候再看相關的書,就不全是“哦,原來如此”了,而是經常要“這個我也知道”呵;以博主的水平,以后可以考慮自己寫一本入門書啊。
2011年9月30日 23:46?|?#?|?引用
很遺憾,我是那種和C語言結婚的人。
如果你打算只是用C寫一些小工具,或者沒什么過高的需求,從樓上各位的回復也基本能推敲出來:看上一兩本書,然后就是寫代碼實踐之。
如果你也想成為和C語言結婚的人,除了上面大家已列出來的經典書籍必讀外(國內的書我始終不推薦),我建議嘗試寫一些代碼練練手,慢慢地寫一些基本的庫,然后自己實現整個標準庫。
最后我想說的是,掌握匯編,至少要很輕松地讀懂匯編語言寫的代碼(那種格式的無所謂)。
2011年10月 3日 20:47?|?#?|?引用
在amazon上搜“linux programming”,出來的第一條是The Linux Programming Interface: A Linux and UNIX System Programming Handbook。作者是linux man-page的maintainer。此書無論從權威性到可讀性都堪稱一流。另外推薦同樣是nostarch出版的autotools一書。這倆本書算包括了在source tarball里能夠看到的全部內容。
2011年10月 7日 15:45?|?#?|?引用
留言的都是牛人!
我學生一個,目前自學計算機,主要編程語言也是C。
大一時學過譚浩強的,帶我入門。雖然網上罵的很多,但畢竟這本書對我來說還是帶來了價值。幸虧當時學的不太好,后來看K&R相當于重新學習C。接下來看了《C專家編程》和《C陷阱與缺陷》。個人覺得學C語言上的東西這么多已經足夠了。學C一定要學Linux,前面人都推薦過了,《深入理解計算機系統》(CSAPP),《UNIX環境高級編程》(APUE),兩本書非常推薦。還有Richard Steven其他的《TCP/IP詳解》,《UNIX網絡編程》都是很好的書。《UNIX編程藝術》,《編程珠璣》也值得一看。
2011年10月 8日 20:46?|?#?|?引用
《你必須知道的495個C語言問題》。關注于編寫代碼時語法等相關細節問題的小書。很多人推薦的都是大部頭,我表示不能理解,實際寫代碼時,書都是拿來翻的,不是拿來看的。
2011年10月15日 23:05?|?#?|?引用
勸阮兄別深入學C語言了。C語言是個泥潭,陷進去了出不來。雖然阮兄很好學,但也不必樣樣精通。就算你很精通,也敵不過一個三年C語言編程的程序員。
我覺得您的價值還是多思考,而不是都去實踐一番。人的精力畢竟有限。要做什么事情說一聲,程序員一大把。
這是一個興趣太廣范的人的心聲:)
2011年10月25日 14:32?|?#?|?引用
C語言其實是最難的一門編程語言,難再它靈活的應用,它的底層結構。如果對硬件,計算機系統等等不是很了解的話是很難學好C的。如果僅僅需要編寫一些電腦上的應用的話。建議可以嘗試其他的語言
2011年11月 9日 15:23?|?#?|?引用
《如何學好C語言》 :?http://coolshell.cn/articles/4102.html
阮一峰先生,您可以看看這個,最好訂閱這個博客,會有些幫助。不知道您是出于何種目的學習 C 語言,應該根據自己的目的選擇教材。在這里留言的人,包括本人,往往是有自己的專職工作,被經驗限制住了自己的看法,并不一定可靠。
C 語言最權威的文檔是上面網友說的 C99 標準,該文檔可以在下面的地址下載:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
這個文檔適合編譯出錯的時候查詢。
學習使用 C 語言,要養成良好的習慣,就要選擇好編程環境,還要有氛圍良好的交流空間。尤其是對于您這樣的自學者,可能會缺少一些系統性的基礎知識,才產生了障礙。上面也有網友指出, K&R 是入門的書,吃透這本書不是必要的,但是可以減小以后產生基礎盲點的可能性。
我的建議是,您先設計一個有一定難度的項目,并完成它。根據您的興趣,設計一個桌面程序或網絡服務,然后搜索類似的項目的源代碼,在其基礎上修改,完成自己的項目。這個過程中,發現什么不知道的,再去查對應的文檔。查文檔,看手冊,要比看些教程更實用。
2011年11月 9日 17:59?|?#?|?引用
Next:
《C語言程序設計:現代方法(第2版)》(可選)
《C專家編程》
《C陷阱與缺陷》
Next:
《UNIX環境高級編程》
2011年11月13日 03:25?|?#?|?引用
Expert C Programming
2011年11月15日 22:16?|?#?|?引用
1.學計算機語言和學英語一樣,可以分成兩個層次。第一個層次是未入門的層次,表現為:不知道哪本書對自己有用;學了不少,感覺好像進步不大;感覺好像掌握了不少知識,但是碰到實際問題,需要真刀真槍地上,感覺還是不行;如果一段時間不用,感覺忘得很快。。。
第二個層次是入門的層次,表現在:能對各種資料自由取舍,為我所用;碰到實際問題,雖然不一定立刻就知道解決辦法,但是心里有底,適當查些資料,很快就能適應;不容易遺忘,即使很長時間不搞,需要的時候,稍微熱熱身,就能重新撿起來。
所以,阮兄的C語言,應該還是未入門的水平。入門未入門,不是用寫了多少行程序來衡量的。不要以為能看懂所謂的中級或者高級教程,就以為自己的水平就是中級或者高級了。其實中級和高級的差距,遠遠沒有未入門和已入門的差距大。
2.學計算機語言,一定要自己動手寫代碼,才能真正理解。樓上幾位說得很多了。
3.C語言的難度,我的理解,其實未必是語言本身。純從語言來講,可能Prolog還更難一些。因為C語言主要用于系統編程,所以難度主要在于理解系統的實現細節。
2011年12月18日 08:49?|?#?|?引用
我時時關注你的blog,也買了兩本實體書:)
這里對你學習c的目標有些疑問。我本人是DBA,工作中基本沒有用c寫程序的需求。在這里談談我學習使用c的一些感想,希望對你有些幫助。
1)通過c,逐漸了解OS。
2)利用對c的熟悉,閱讀一些程序源碼,進而學習到一些設計方法。
3)三不五時用c寫一些小程序,熱熱身,將很多os的知識點溫習。
4)偶爾用c寫一些算法關聯的小程序。
大概有這么幾條。
之前項目中用c寫過一批設備驅動(應用層)的移植(windows->linux),開發的感想是必需在工作中將程序所經歷的各個知識點(包括語言層面、OS層面)都需要盡量的掌握。這樣就會越做越熟。能把遭遇的每個知識點講清楚其實不簡單。
樓上的許多朋友開了很多書單,不少我都有。有一部分作了細讀。很多經典書我都在淘寶上賣了盜版:)論斤買:)手上有實體書,偶爾翻一翻,都有收獲。特別是2、3本書對同一個知識點用不同的角度闡述,收獲較多。
最后作個總結:)
c就像打開os的一把鑰匙、一個電筒,沒這個,很難成為系統程序員。
2011年12月31日 10:04?|?#?|?引用
我覺得Accelerated C++很不錯,學了那個,再學習C的內存管理(指針之類的)會有快速入門的效果!
2012年1月13日 15:46?|?#?|?引用
博豬就是傳說中的豬腦了吧,看什么也沒用。這些書都是相當基礎的了,這些也看不懂還搞什么C
2012年1月26日 14:39?|?#?|?引用
我現在想學習網絡攻防的東西 但是我的c語言太差了我想從頭開始學習,請問那本書比較全面的講解c 譚浩強的入門書籍我看過
2012年1月28日 13:52?|?#?|?引用
引用Vix的發言:
土木君!沒想到在這里遇到了~~~非常贊同你的說法~~缺的就是耐心啊……而且現在信息量大反而不能夠很好的汲取。
很贊同
2012年2月 1日 17:05?|?#?|?引用
博主看的都是英文版的,這說明博主已經是一個高手了,《Unix環境高級編程》不錯,我之前看過一段時間,看得很吃力,不過書的確不錯,現在因為其它事情就停下來了
2012年4月 7日 18:48?|?#?|?引用
引用cndj的發言:
其實C語言很簡單, 完全沒必要看那么多這類入門書. 有精力就看 這類書比較好.
這位兄弟說的我贊同,停留在語言層面沒什么意思,也沒有意義,用它來做東西才是意義所在,我是計劃學完第一遍《Unix環境高級編程》后就開始參考Apache或Nginx寫Http服務器的,但是因為其它一些事情就停下來
2012年4月 7日 19:09?|?#?|?引用
引用ning的發言:
Unix環境高級編程,+1。10年Linux C編程,看完和沒看完的也有幾百本了,手頭留下的開發用的實體書只有Unix環境高級編程,TCP/IP詳解,和Unix網絡編程,都是Richard Stevens的。
這位前輩是高手啊,已經有10年Linux C編程經驗了
2012年4月 7日 19:12?|?#?|?引用
引用hqs的發言:
用c做整個軟件的構架設計是最難的。
非常贊同你的說法,看過一些大型程序的源代碼,架構設計的確是最難和最有最有創造性的
2012年5月 8日 20:03?|?#?|?引用
unix/linux 編程實踐 這本不知名的書籍要強烈推薦。?
其它就是著名的 unix環境編程 unix網絡編程
如果都會了,我覺得可以再來學pyhon, python+python庫具備c+ c各種庫的所有功能,好用易懂優雅,是快速開發的良好選擇,因為有了C 和 unix 的基礎, 對python各種庫也能很輕松掌握。
2013年4月17日 23:45?|?#?|?引用
引用YetAnother無證程序員的發言:
其實我覺得你對C語言本身的掌握到了這個程度已經足夠了,那些介紹所謂C語言的各種奇技贏巧的書大可不必看,浪費時間好處又不是很多。目前我覺得另一本書更適合你《Computer Systems: A Programmer's perspective》,目前已經出了第二版了。我覺得這本書可以彌補C語言本身以及Linux編程之間的知識空缺。
支持,實踐才是最好的證明。
2013年4月23日 21:19?|?#?|?引用
之前在圖書館看過兩本書《C語言的科學和藝術》(《The Art and Science of C》),《C程序設計的抽象思維》(《Programming Abstractions in C》),都是羅伯茨寫的,是斯坦福大學的教材,非常不錯,尤其是第二本,這兩本不能算是語法書,總結了程序設計的思想,各種數據結構的實現,通過頭文件作為接口,幾乎實現了面向對象,代碼也很規范,命名很地道,讀起來很舒服,兩本書我都買來珍藏了。
PS:相比之下,譚浩強的那本簡直弱爆了,純粹誤人子弟啊。
2013年8月 1日 11:12?|?#?|?引用
C Programming Language
這本蠻好的,我在網上下的PDF看了中文以后...去買了一本英文實體書...
2013年9月 4日 09:34?|?#?|?引用
引用K&R的發言:
博豬就是傳說中的豬腦了吧,看什么也沒用。這些書都是相當基礎的了,這些也看不懂還搞什么C
您這么說,我等都是石頭腦子了,當然也不曾想望您項背。本來一個討論式的回帖,竟招來如此噴子。
2013年10月20日 14:01?|?#?|?引用
引用風吟的發言:
哈哈,鋒哥,我剛整理完一個C語言速查,就看見你整理C語的書。。
https://ganquan.info/standard-c/
C語言算法比較難,其他還好。現代的語言很多語法都跟它類似的。
已經加入收藏夾,非常感謝!
2013年10月20日 14:04?|?#?|?引用
引用Neutralevil的發言:
還有一本國內沒有上市:C Programming FAQs,不過在網上可以找到內容:http://c-faq.com/。
這書圖靈出過,中文版的名字是《你必須知道的495個C語言問題》:http://book.douban.com/subject/3422332/
引用Neutralevil的發言: 關鍵還是要多讀多寫代碼。讀的方面可以看看The Standard C Library,學習C標準庫是怎么實現的。圖靈的中文版《C標準庫》:http://www.ituring.com.cn/book/317
2013年12月12日 07:12?|?#?|?引用
引用kk的發言:
沒看過K&R也敢說你會C?
C Programming Language 這個不就是么
2013年12月31日 15:18?|?#?|?引用
看《黑客與畫家》里面作者格雷厄姆就說過C語言的教材"The C Programming Language"是寫得非常好的,語法用示例闡述得很明白。我看過兩遍,覺得有它就夠打基礎的了。精力有限,沒有必有看那么多書
2013年12月31日 17:49?|?#?|?引用
語言僅僅是個工具,重要的還是原理吧?
看了你的文章,認為你提的這個應該不是一個能困惑到你的問題了。
2014年1月20日 01:45?|?#?|?引用
范磊老師的《零起點學通C語言》這本不錯
2015年6月29日 00:00?|?#?|?引用
非常強烈推薦地你看看這本《C語言其實很簡單》,新出版的書。確實很接地氣,很好玩,很另類的書。漫畫順口溜還一大堆,還有很獨特的學習方法。看了指針那章,那些方法簡直從未聽說過(我也讀了不少書都沒有),沒費什么勁指針我感覺指針就掌握到高手的境界了,簡直是一絕!
2015年9月26日 21:18?|?#?|?引用
最近買了一本《C語言其實很簡單》,讀了幾章,那叫眼前一亮的說,講的太好了!學習方法很獨特,看過這么多C語言教材是我從未見過的,可謂經典的一本!這樣的方法和敘述風格初學者學起來會很輕松。這是剛剛新出版的書,你應該吧這本也加上介紹或評論
2015年10月 1日 15:27?|?#?|?引用
樓上的也看過這本?英雄所見略同的說,握手:)
2015年10月 1日 15:29?|?#?|?引用
引用kk的發言:
沒看過K&R也敢說你會C?
那本C Programming Language (2nd Edition)不就是K&R嗎?這哥們是不是不懂裝懂呀?
大家推薦的確實有不少相當經典。不過,譚浩強的那本真是不敢恭維,舉例子都用數據庫那方面的,干脆講office得了。
總結
- 上一篇: 华为手机连电脑_手机、电脑无网高速互传!
- 下一篇: 开源oa_圈子哥推荐一款基于 Sprin