分享

【干货】| C++如何进阶

 氢协作 2017-11-21

C++入门最推荐的书是C++ Primer (注意,不是C++ Primer Plus) ,或者The C++ Programming Language,二者选一即可。读之前最好已经有一点编程的基础,不管什么语言。这些书内容很多,应该侧重于理解概念,而非单纯记忆。重要的概念理解后自然会记住,一些不是很重要的概念一时记不住也没有关系。C++的概念和规则很多,就算是有经验的C++程序员有时也需要google一些语言规则。。在这个阶段应该掌握重要的概念。这个路线侧重于语言本身。

进阶A:

《Effective C++》简称EC。《The PragmaticProgrammer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买ScottMayer的《Effective C++》,可能还要《More Effective C++》”。

《C++ Coding Standards: 101 Rules, Guidelines, and BestPractices》/《C++ 编程规范》

个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系列都在这里得到了总结。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。我的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。

进阶B:

这个路线侧重于程序库。

《The C++ Standard Library》/《C++标准程序库—自修教程与参考手册》

听说过STL吗?这本书会教你最基本的,也是最重要的STL的使用。

《Effective STL》会使用STL还不够,还必须知道什么时候选择什么STL组件,这是STL使用的必读书。

《Generic Programming and the STL: Using and Extending the C++Standard Template Library》/《泛型编程与STL》。这本书理论性较强,但是真的很严谨,而且并不是非常难懂。理解其中对于Concept的解释,将是非常重要的。

《C++ STL》这不是讲述使用程序库的,而是讲述程序库实现原理的。肠胃不好的,需要慢慢吸收。

这个路线的书,仍然是建议按顺序阅读。

进阶A、进阶B两个路线应该是可以并行的。

其他进阶参考书

提出这些参考书,只是避免争议,也为开阔视野,笔者并不曾完全读过所有的。

《The Design and Evolution of C++》/《C++语方的设计和演化》简称D&E,内容并不艰深,Bjarne的书,仅此,就值得一读。《Inside The C++ Object Model》/《深度探索C++对象模型》C程序员读后一定会觉得C++原来并不神秘。

《C++ Template》在阅读STL、Boost或者Loki的源代码之前,请仔细阅读本书,它可以减轻一些阅读的烦恼。这本书是讨论C++模版的权威。

《Modern C++ Design Generic Programming and Design PatternsApplied》/《C++设计新思维——泛型编程与设计模式之应用》简称MCD。在阅读MCD之前,建议先阅读一下《C++ Template》。

《对象揭秘:Java、Eiffel和C++》你对C++不满吗?这本书可以部分地帮你完成抱怨的目标。也许它还可以让你不迷信C++。

最后,一份C++标准文档也是应该加以咀嚼的。还有一些书籍,并不能简单的归于C++,也难以在纯粹的书本学习中加以掌握。

《DesignPatterns》/《设计模式》一书就归于此类。

所有上述的书籍,要么谈论C++语言本身,要么谈论STL的,要么兼而有之(当然严格讲STL也是C++语言非常重要的一部分)。偶尔,某些书中条目也会涉及实际工程。这些书并不是C++软件开发的全部,但是他们很重要。阅读这些书,未必需要化费太多的精力,有时候是会困难,但也有时候会很快速。

最后,编程语言并非计算机科学技术的全部,打好基础、开阔视野都非常重要。

更多干货请关注微信公众号:四保在思考

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多