转知乎,感觉非常棒,适合普通人c++学习路线图

作者:刘凯新
链接:https://www.zhihu.com/question/23447320/answer/39322848
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在这里以一个非计算机专业学生的角度从C++书籍的角度补充一下现在排名第一的答案。

我是一名自动化专业的学生,可是迷恋C++编程再加上购书癖,目前大约将国外经典C++书籍全部买完了,没有全部详细读完,但是对各本书的内容及所处的层次都比较了解。

这里单纯讲【看书】方面的总结,不包含项目实践方面。

这里先补充一下第一名回答中没有直接提及的,但也是学习过程中很重要的,一个关于C++学习的分类,两个大方向:面向对象编程(OOP)和泛型编程(GP)。这是两个最基础的方向,不过如果单纯抱着一本国内常见的C++入门书籍看的话,很容易将后者忽略(国内入门书籍过重得介绍C和C++中共有的部分和OO部分,极端忽视GP部分,这可能和GP更多地用于函数库的编程而OO更贴近大部分人实际工作的原因有关吧(>__ 手机码字,英文书名因为方便辨识,书名号不写了哦(>_

那就先从OO方面开始吧。
入门书:首先是两本如同《辞海》般详细的神书:The C++ Programming Language & C++ Primer,这是两本几乎完全涵盖了C++所有特性的书籍,就不做过多介绍了;另外一本同样超赞的Essensial C++,可以看做是一本C++的《新华字典》,也就是上述两本的的简化版;以上3本适合所有同学看,不管是有还是没有C基础的同学,尤其是Primer第五版,随着Moo大神的加入,将Accelerate C++的写作风格带入,呈现出了一种跟第四版完全不同的风格,另外就是C++11标准在第五版被涵盖并放在了醒目的位置,也是超赞的(>_

进阶书:那就不得不提主席大人和他的好基友Meyers的两个著名系列:Excptional 和 Effective系列了,前者包含3本:Excptional C++, More Excptional C++和Excptional C++ Style(中文版叫C++编程剖析),难度逐渐加深。主要是谈工程方面的细节和经验;在这个开始读这个系列之前,有必要将Effective 系列中的两本Effective C++和More Effective C++读一下,尤其是前者,可谓"C++ 程序员必读的第二本书",这个系列是讲述编程风格的。这两个系列读完后可以看看(也可以不用看)《C++编程规范》,这可以说是上面两个系列书的总结。

其实到此,偏OO方向的书也差不多介绍到这里了,之所以到进阶就结束,因为这方面确实是一些很实在的技术,在结合模板比较少的情况下,很少有所谓的"奇淫技巧"。不过在此要专门推荐一本OO方面更高层次的书 Inside the C++ Object Model,详细地讨论了对象的构造、生存、释放等问题,不过对编译器不熟悉的同学看的话可能就比较吃力了(>_

接下来就介绍GP方向的书籍。
大部分GP的书籍都是以C++最核心的库STL作为载体来编写的。
入其实从学习GP开始,就不能算作是C++学习的入门了。不过因为分得比较细,还是按照三个层次来介绍吧。

入门书:个人认为没有入门书(>_
进阶书:C++ Templates,模板学习的圣经,全面地介绍了模板的各个方面;Effective STL ,meyers的Effective系列的第三本,讲述了STL方面编程风格,也介绍了实际编程中STL库中一些容器和算法的用法和误区;Generic Programming and the STL,讲述了泛型编程的核心思想和各种泛型组件(以STL组件为例)。

深入书:《STL源码剖析》,从源代码的角度分析STL中各种容器和算法的实现,【强烈推荐以这本书代替其余任何一本C++数据结构书的学习(前提是如果有信心有毅力学透的话),因为侯捷老师说任何一个C++学生写出来的程序在SIG STL面前只能算三流程序,不妨多看看STL源码】;最后一本则是Modern C++ Design,这是一本充满了"奇淫技巧"的书,用泛型的思想结合模板写出足以让任何人都吃惊的代码——原来还可以这样写。不过这本书中内容的价值则可能是仁者见仁了——一般工作中基本用不到(>_

除开GP和OO这两个方面,另外还有两本书推荐给大家。一本是API Design for C++,顾名思义讲述如何编写高质量的API接口;另一本是《提高C++性能的编程技术》,讲述一些提高程序效率的技巧,让你知道C++同C一样高效。Ps.这本书结合Effective系列和Excptional系列一起看有奇效哦。

好吧,关于C++书籍的介绍就差不多到这里了(boost,loki库我了解甚少,就不敢妄作推荐了)~祝各位同学在书海中遨游(>_


/*************************************2015.2.13添加******************************************/
这里推荐两本比较难以区分偏重于OO还是GP的书。

C++ strategies and tactics(中文名《C++编程惯用法》):这本书的副标题叫“高级程序员常用方法和技巧”,其实别被这个副标题吓住了:) 何谓高级程序员?不同的标准有不同的看法,在学习阶段看看又何妨呢~这本书可以说是总结了在OO、GP、异常、重用等几个方面的诸多知识,可以看做是增加了更多模板和重用知识的Effective C++,不过写作风格则是与之迥异了~

Ruminations on C++(大名鼎鼎的《C++沉思录》),C++界著名的技术伉俪Andrew Koenig &Barbara Moo 倾力著作,PS.这本书最后还有孟岩老师和两位作者的访谈录哦~~(正好这个寒假又重读了这本书,感觉这些技术经典真是让人在不同的时期领悟不同的感悟)。这本书的风格和之前推荐的 Accelerate C++很像,也是以大量实际小工程、“课后作业”这类引人入胜的形式,避开讲述C++繁杂的语法(也因为这本书本来就不是入门书),而直接罗列出C++中常用的技巧,诸如handle类,智能指针,函数对象等,不仅阐述了这些技术产生的原因、设计的思想,更是从源码层次分析了这些技术的实现。个人认为,这本书配合前面提及的More Effective C++一书中后面那些动不动一个就有20页之多的item一起看,将会有很大的收获哦~
  • 20
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以前下载的一些书, 放在这里备份。打包一起上传。懒得弄了。 C.Plus.Plus.for.Engineers.and.Scientists,.Bronson,.3ed,..Course,.2010,.Source.Codes,.0324786433_233683-.exe │ Objective-C.Recipes.A.Problem-Solution.Approach,.Matthew.Campbell,.Apress,.2012-.epub │ Professional.C.Plus.Plus,.Marc.Gregoire,.Nicholas.A..Solter,.Scott.J..Kleper,.2ed,.Wiley,.2011-.epub │ TDDownload.rar │ The.Standard.C.Library,.Plauger.-.(Prentice.Hall,.1992)-.djvu │ Wright.C..1001.Microsoft.Visual.C.Plus.Plus.Programming.Tips.(Prima,.2001)(ISBN.0761527613)(600dpi)(1422s)_CsPl_-.djvu │ XLib.exe │ [300dpi高清版]Cpp.Cookbook.中文版_HD-.pdf │ [Access.2013:The.Missing.Manual(2013.4)].Matthew.MacDonald.文字版..epub │ [Active.Directory(5th,2013.4)].Brian.Desmond.文字版..epub │ [AngularJS(2013.4)].Brad.Green.文字版..epub │ [Building.a.DevOps.Culture(2013.4)].Mandi.Walls.文字版..epub │ [C.游戏编程].邹吉滔等.扫描版-.pdf │ [C.编程习题与解答(全美经典学习指导系列)].(美)Hubbard.扫描版-.pdf │ [Computer.Science.Programming.Basics.in.Ruby(2013.4)].Ophir.Frieder.文字版..epub │ [C安全编码标准].(美)塞克德.扫描版-.pdf │ [Dynamic.HTML权威指南].(Dynamic.HTML权威指南).Danny.Goodman.扫描版-.pdf │ [Excel.2013:The.Missing.Manual(2013.4)].Matthew.MacDonald.文字版..epub │ [HTML5.Canvas(2nd,2013.4)].Steve.Fulton.文字版..epub │ [JavaScript.for.PHP.Developers(2013.4)].Stoyan.Stefanov.文字版..epub │ [Kindle.Fire.HD:The.Missing.Manual(2nd,2013.1)].Peter.Meyers.文字版..epub │ [Kindle.Fire.HD:The.Missing.Manual(2nd,2013.1)].Peter.Meyers.文字版..pdf │ [Managing.Startups:Best.Blog.Posts(2013.5)].Thomas.Eisenmann.文字版..epub │ [Microinteractions(2013.4)].Dan.Saffer.文字版..epub │ [Microinteractions(2013.4)].Dan.Saffer.文字版..pdf │ [Microsoft.Project.2013:The.Missing.Manual(2013.4)].Bonnie.Biafore.文字版..epub │ [NOOK.HD:The.Missing.Manual(2nd,2013.2)].Preston.Gralla.文字版..epub │ [OPENGL编程指南].(美)Dave.Shreiner.扫描版-.pdf │ [PHP.Web.Services(2013.4)].Lorna.Jane.Mitchell.文字版..epub │ [Physics.for.Game.Developers(2nd,2013.4)].David.M.Bourg.文字版..epub │ [PowerBuilder基础类库技术详解].杨志鸿.扫描版-.pdf │ [Professional.C.(2nd.2011)].Marc.Gregoire.文字版-.epub

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值