C++ 程序員必讀書目清單
多讀一些優秀的書籍,對于開發者穩固編程基礎、提高編程技能有很大幫助。但是,大多時候,初學者不知道應該讀什么書入門,有一定基礎的開發者不知道如何進階。
本文總結了一個 C++ 優秀書籍清單,希望能夠為你帶來一定的幫助。這些書大多數都有中文版,并且可以很容易在網上找到。
階段 1
《Essential C++》
這是一本內容不多但很實用的 C++ 入門書籍,強調快速上手與理解 C++ 編程。本書主要圍繞一系列逐漸復雜的程序問題,以及用以解決這些問題的語言特性展開講解。你不只學到 C++ 的函數和結構,也會學習到它們的設計目的和基本原理。
《C++ Primer》
本書對 C++ 基本概念、技術、以及現代 C++ 編程風格進行了全面而且權威的闡述,是 C++ 初學者的最佳指南;本書可以幫助你編寫實用的程序,而無需首先精通每個語言細節。對于中高級程序員,本書也是不可或缺的參考書。
階段 2
《Effective C++》和《More effective C++》
作者是 Scott Meyers。你應該熟讀它們,并清楚地理解每個項目。該書圍繞 55 條準則,每一條都介紹了一個可讓你寫出更好的 C++ 程序代碼的方法,并以特別設計過的例子詳加討論。
《Exceptional C++(C++編程剖析)》和《More exceptional C++》
這兩本書中都包含了 40 個 C++ 編程問題,這些問題會讓你磨練自己的技能,最終成為優秀的 C++ 程序員。這些問題是 Herb Sutter 精心挑選,與 ISO/ANSI C++ 官方標準相一致,幫助程序員在設計、架構和編碼過程中保持良好的風格,從而使編寫的 C++ 軟件更健壯、更高效。
階段 3
《Inside the C++ object model(深度探索 C++ 對象模型)》
本書專注于 C++ 面向對象程序設計的底層機制,包括結構式語意、臨時性對象的生成、封裝、繼承,以及虛擬——虛擬函數和虛擬繼承,幫助你理解程序的底層實現,以便寫出更高效的代碼。
《The design and evolution of C++(C++語言的設計與演化)》
本書作者也是 C++ 語言的設計者 Bjarne Stroustrup,作者在書中綜合性地介紹了 C++ 的發展歷史,C++中各種重要機制的本質意義和設計背景,這些機制的基本用途和使用方法,討論了 C++ 所適合的應用領域及其未來的發展前景,既沒有忽略關鍵性的詳情,又沒有過多地陷入技術細節。
階段 4
《The C++ standard library(C++標準程序庫)》
這是標準模板庫字典,你可以在本書中找到 STL 相關的一切知識。本書焦點放在標準模板庫、檢查容器、迭代器、函數對象和 STL 算法上。每一個元素都有深刻的呈現,包括其介紹、設計、運用實例、細節解說、陷阱、意想不到的危險,以及相關類別和函數等。
《Effective STL》
這是 Scott Meyers 的第三本 C++ 專著,也是學習 STL 最權威的書籍。作者對書中的 50 個指導方針都作了詳盡的分析,并配以示例。通過這些規則,C++開發者可以最大限度地使用 STL。
《Generic programming and the STL(泛型編程與 STL)》
本書闡述了泛型程序設計的核心理念:concepts(概念)、modeling(模型)和 refinement(改善),并為你展示這些觀念如何導出 STL 的基礎概念:iterators(迭代器)、containers(容器)和 function objects(函數對象)。按照本書所述,你可以把 STL 想象成一個由 concepts 組成的 library,你將學習到 STL 正式結構并理解其強大的優勢。
階段 5
《Exceptional C++ style》
作者為 Herb Sutter。本書同樣提出了 40 個 C++ 風格相關的問題,對一些至關重要的 C++ 細節和相互關系提出了新的見解,為當今的關鍵 C++ 編程技術(如泛型編程、STL、異常安全等)提供了新的策略,幫助開發者在開銷與功能之間、優雅與可維護性之間、靈活性與過分靈活之間尋找完美的平衡點。
《C++ template》
這是一本關于 C++ 模板的完整的參考手冊和教程,它強調模板的使用實踐,包含了現實世界中的例子。每個 C++ 程序員都應該好好讀一讀這本書。
《Modern C++ design(現代 C++ 設計)》
作者 Andrei Alexandrescu 為 C++ 程序員打開了一個新的局面。本書提供了一些針對軟件設計的前沿方法,如聯合設計模式、泛型編程,使程序員可以編寫有表現力的、靈活的、高度可重用的代碼。
《Thinking in C++(C++編程思想)》
C++ 領域權威著作,介紹了 C++ 實用的編程技術和最佳的實踐方法。