应该如何学c++
近来打算好好学一下c++。
这里列出了很多c++牛人的博客,国内为人们熟悉的有刘未鹏、陈皓、陈硕。
刘未鹏在2007年有两篇文章:
这里引用如下,加入一些超链接:
C++中众多的细节虽然在库设计者手里面有其用武之地,但普通程序员则根本无需过多关注,尤其是没有实际动机的关注。一般性(《Code Complete》,2004)的编码实践准则(《C++ Coding Standards》,2004),以及基本的编程能力和基本功(《Computer Systems》,2002,中文版为《深入理解计算机系统(原书第2版)》,2011),乃至基本的程序设计理论(《Instructor’s Manual t/a Structure and Interpretation of Computer Programs》,1998)以及算法设计(《Introduction to Algorithms, 3rd Edition》,2009,中文:《算法导论(原书第3版)》,2012)。才是真正需要花时间掌握的东西。
C++的书,Bjarne的圣经(《The C++ Programming Language》,2000)是高屋建瓴的。(《大规模C++程序设计》,2003)是挺务实的。(《Accelerated C++》,2000,中文版)是最佳入门的。《C++ Templates,2004,中文,2008》是仅作参考的。《C++ Template Metaprogramming》是精力过剩者可以玩一玩的,普通程序员碰都别碰的。《ISO.IEC C++ Standard 14882》不是拿来读的。Bjarne最近在做C++的教育,新书是绝对可以期待的。
第一本
从程序员(而不是电子工程师)的角度去介绍底层知识的书会非常有帮助——这就是推荐《Computer Systems:A Programmers Perspective》(以下简称CSAPP,下载)(中译本《深入理解计算机系统》1rd,2rd,3rd)的原因。
第三本(是的,第三本)
将C++当作一门不同于C的新语言来学习《Accelerated C++》
第二本
有时候C的确能够提供简洁高效的解决方案,理解C语言的精神不仅有助于更好地理解C++,更理性地使用C++。《The C Programming Language》(简称TCPL)。建议在阅读《Accelerated C++》之前先阅读《The C Programming Language》。因为,一,《The C Programming Language》非常薄。二,如果你带着比较的眼光去看问题,看完《The C Programming Language》再看《Accelerated C++》,你便会更深刻的理解C++语言引入抽象机制的意义和实际作用。
第四本
《Accelerated C++》太薄了。全面但又不钻语言牛角尖,从“语言是如何支持抽象设计”的角度而不是“为了讲语言特性而讲语言特性”的角度来介绍一门语言的书便至关重要,《The C++ Programming Language》(简称TC++PL,3th, 4th)(下载:4th)
建议4:实践驱动地学习
《C缺陷和陷阱》
实践+查文档。实践属于那“80%”最有用的。哪些“文档”是非常重要的呢?
第二本
《C++ Coding Standard》。
第一本
《The Pragmatic Programmer》然不是一本C++的书,但其介绍的实践理念却是所有程序员都需要的。
第三本
《Code Complete, 2nd Edition》
建议5:思考。
从手边的问题分析出应该到什么地方去查资料,这里,分析问题的能力很重要,因此:
《你的灯亮着吗?》
陈皓在coolshell的文章:
程序员技术练级攻略这里面说的比较多,是一个比较全的程序员学习路线,其中有关于c++的,通过“C++学习信心图” 和“21天学好C++”应该就知道c++不能在短时间内熟练掌握。
如何学好C++语言中给了一些书单:
《c++ primer 5th》-万里长征第一步
《Effective C++》,《More Effective C++》
《C++沉思录》这里教的不是编程,而是思考的方法。
《Exceptional C++》、《More Exceptional C++》各种问题的解决方法和一些常见的经典错误。
《Advanced C++》、《Modern C++ Design》让你知道C++各种神奇的用法。
《泛型编程与STL》是把C++实践到了极致的东西。很强大。STL——神一样的模板库(容器,算法和函数对象),不得不服。
《深度探索C++对象模型》让你了解编译器下的C++是什么样的,让你了解C++的性能并不差。这个对于C++的程序员太关键了。
陈硕在从《C++ Primer 第四版》入手学习 C++ (我:尽管c++ primer 5已经有了,c++ 17标准也有,还是看看牛人说的吧)说:
第一本书,《c++ primer》学习语法,《Effective C++ 》高效地运用这门语言,足以应付日常应用程序开发。
第二本书,如果读者还是在校学生,已经学过数据结构课程[46],可以考虑读一读《泛型编程与STL》[47];如果已经工作,学完《C++ Primer》立刻就要参加C++项目开发,那么我推荐阅读《C++编程规范》[48]。
再补充。。。
本文来自博客园,作者:ssh_alitheia,转载请注明原文链接:https://www.cnblogs.com/shanchuan/p/8150265.html