C/C++程式員必讀的書

來源:互聯網
上載者:User

先前看到一篇文章“C/C++程式員必讀的十本書”,大家都覺得這篇文章寫得很棒,我根據自己學習的情況寫為自己版本的書,供更多朋友交流、學習。

C/C++程式員必讀的書

這個題目大的有些離譜,實話說,只是想推薦一下自己覺得很好、值得收藏的一些技術方面的圖書。如果不是程式員,或者關心的方向是網頁開發、資料庫開發,或者只是想瞭解一下開發流程,這些書不都是適合你,但也很值得收藏了。

這篇文字的針對目標是,微軟平台下的c/c++程式員,學過電腦基礎學科,有一定的英語閱讀能力。建議購買的順序也是從上至下。

(1)建議大家閱讀的第一本書是《編碼的奧秘》(英文名《code》)(本書由機械工業出版社華章公司出版),這本書中文版應該已經絕版了,但好像有英文影印版,購不到了。好在還有電子版的。這本書沒有講該如何編程,如何寫一個hello world。它深入淺出的介紹了電腦是如何組成的,比如二進位,比如邏輯門電路的實現,都是很淺顯的。看了這本書,會對電腦有個知其所以然的瞭解,也就是機器如何?的一加一等於二,如何能執行程式。《編碼的奧秘》是電腦專業或者是初中高中對電腦感興趣學生,應該一上學就讀的一本書。

(2)第二本也是建議大家看到了立刻買下來,保證物有所值,就是《程式設計實踐》(英文名The Practice of Programming)本書由機械工業出版社華章公司出版)。有了這本書,基本上《代碼大全》、《程式員修鍊之道》這幾本後面推薦的書可以不買了,因為精華基本上都濃縮到這本書裡面,當然,不同的作者寫出來的還是不一樣,如果有錢,還是都買了最好。《程式設計實踐》的兩位作者Brian W.Kernigham / Rob Pike,在電腦領域,就是大師級的人物,高山仰止,寫出如此通俗易懂的電腦工程實踐書,讓我還能說什麼仰慕的話啊。你不知道他們是誰?去搜wiki 吧。裡面每一章節都非常經典,甚至每章後面推薦延伸閱讀的書籍,都是經典中的經典。一定要慢慢讀反覆讀,如果這本書看完了以後,基本上就是一個電腦中級編程水平了。

(3)第三本書比較難選擇一些,還是推薦這本好了《C程式設計語言,第2版》,也就是傳說中的K&R,如果你是一個電腦專業的學生,還沒有這本書,那你在學校裡學了什麼就很值得懷疑。這本書272頁,每頁都很經典,基本上你碰到的所有c語言問題在這本薄薄的小書裡都有涉及,但是限於篇幅,有些會簡單帶過。裡面代碼例子不多,但還是包含了一個相當完整的文法分析器程式。不多說了,如果沒有這本書,趕快去買吧。

(4)現在大部分企業使用的是c++而不是c(比如google),除非是嵌入式或者作業系統核心級的程式,c++的效能與強大文法基本上可以滿足各方面的需求,c++的入門書很多,選擇也比較容易,推薦大家買奧萊理O‘Reilly的或者是c和c++經典著作這個系列的。第四本要推薦的不是c++編程方面的,而是一般類似於八卦c++曆史的書《c語言的設計與演化》,編程工作其實就是一個在不同的方案中進行選擇權衡的一個過程,是該選擇vector還是list,是該使用多線程還是多進程,是該使用xmlrpc還是dcom,是使用資料庫還是註冊表,有心的人會研究不同選擇背後的深層技術問題,有些人基本上就是一套方案打天下。這本書就介紹了c++之父設計c++語言時選擇的一些考量,為什麼不用GC,為什麼沒有這個那個特性,為何不內建某某keyword。在我看來,這些考量的過程,對於一個編程人員來說要比如何使用c++更有價值。

<(5) 是《c++編程思想》,本書的內容、講授方法,選用例子和跟隨的練習,別具特色。作者Bruce Eckel不是按傳統的方法講解C++的概念和編程方法,而是根據他自己過去學習C++的親身體會,根據他在多年教學實踐中發現的問題,用一些非常簡單的例子和簡練的敘述,闡明了在學習C++中特別容易混淆的概念。特別是,他經常通過例子引導讀者從C++編譯實現的彙編代碼的角度反向審視C++的文法和語義,常常使讀者有‘心有靈犀一點通’的奇特效果。
  作為譯者,我有幸組織翻譯了《C++編程思想》第1版。在這之前,我僅僅耳聞這是一本別具特色的暢銷書,至於如何別具特色,如何得以暢銷,並不十分清楚。在第1版的翻譯過程中,我逐漸領悟了Eckel編寫技巧的真諦。在第1版中文版的譯者序中,我曾這樣總結他的技巧:“其內容、講授方法、選用例子和跟隨的練習,別具特色。原書作者不是按傳統的方法講解C++的概念和編程方法,而是根據他自己過去學習C++的親身體會,根據他多年教學中從他的學生們的學習中發現的問題,用一些非常簡單的例子和簡練的敘述,闡明了在學習C++中特別容易混淆的概念。

(6)我選擇了《unix編程藝術》,它擊敗了《代碼大全》《c專家編程》等諸多經典佔據了這個位置,主要也是佔了unix作業系統的光。之所以選擇這本書,是因為對於一個windows平台上的程式員來說,盡量開闊眼界是非常必須的事情。我們經常說混血或者說雜交會讓基因更加優秀,編程也是如此,windows平台的程式員,如果只懂mfc,只會註冊表儲存配置,只知道COM或者DotNet,是一件非常悲哀的事情,用成語來說就是井底之蛙坐井觀天,只認為天就是這麼大一片,編程就應該用這些東西。

      unix作業系統雖然不像windows佔據了案頭平台,但是在其他方面,使用非常廣泛,比如蘋果的mac osx系統,比如sun的solaris,比如繼承了unix精神的linux。尤其在當今案頭系統網路化的潮流下,unix系統天生的網路特性、多使用者管理特性、安全特性,更是體現了超越時代的傑出思想。讀一讀這本書,體驗一下不同的設計理念和不同的作業系統哲學,對於日常的編程工作都有非常大的協助。 Windows程式員尤其要學習的是:unix系統上script的使用,使用純文字作為資料格式,使用管道,最最重要的一點就是,Keep it simple and stupid,一個程式只做一件事,只需要把這件事做到完美。這與windows的大而全思想有著本質上的不同。

(7)應是《C專家編程》這本書很有意思,裡面不少內容被不少企業作為面試內容出現,比如我常看到的這個“如何不使用臨時變數確定鏈表中存在重複”,還有“數組和
指標有什麼區別,什麼時候相同”等等,不過最後一章關於c++的論述因為時代關係,可以跳過不看。對於走出校門要找工作的大學生來書,應多看看此書。

(8)應是《C陷阱與缺陷》作者以自己1985年在Bell實驗室時發表的一篇論文為基礎,結合自己的工作經驗擴充成為這本對C程式員具有珍貴价值的經典著作。寫作本書的出發點不是要批判C語言,而是要協助C程式員繞過編程過程中的陷阱和障礙。
  全書分為 8章,分別從詞法分析、文法語義、串連、庫函數、前置處理器、可移植性缺陷等幾個方面分析了C編程中可能遇到的問題。最後,作者用一章的篇幅給出了若干具有實用價值的建議。
  本書適合有一定經驗的C程式員閱讀學習,即便你是C編程高手,本書也應該成為你的案頭必備書籍。

(9)《C標準程式庫自修教程與參考手冊 》,這本書可以作為案頭書使用,對於c++中的template,介紹的那是恰到好處,沒有任何炫技之處,整體風格就是德國人典型的認
真、樸實、實用,如果想在項目中使用模板技術,這本書一定要放在手邊。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.