C++(珍藏)100+本吐血整理推荐书单从入门到进阶成神之路


以下是书单目录,清楚自己缺的是什么,就下定决心去补吧,一个好工作意味着高收入,投资自己的时间换来更宝贵的东西 零.手册类
1. 《C++程序设计语言(The C++ Programming Language)》作者:Bjarne Stroustrup(更新到C++11)
0.1.jpg C++之父写的经典C++书籍。内容覆盖C++的所有东西,从语言内核到标准库、编程范式和语言哲学(这使得最新版突破1千页)。2013年5月出版的第四版涵盖了C++11的内容。
2. 《C++标准程序库(C++ Standard Library Tutorial and Reference) 》作者:Nicolai Josuttis
0.2.jpg 这本书是C++标准库(STL)的引导和手册。 2012年4月发行的第二版涵盖了C++11。
3. 《The C++ IO Streams and Locales》
除了这本书,市面上基本没有讲解streams and locales的书。
4.《The C++ Standard (INCITS/ISO/IEC 14882-2011)》作者:C++标准委员会
这当然是C++最权威的标准。要注意的是,C++标准是提供给有足够精力和时间的专家级用户研究用的。国内估计很少有人看,在国外一般它的第一个发行版也非常贵($300+ US),国外有人会买现在价值$30US的电子发行版。
5. 《Overview of the New C++ (C++11/14) 》作者:Scott Meyers(更新到C++11/C++14)
这是Scott Meyers开设的一个为期3天的C++课程的教材。Scott Meyers是C++社区最受尊敬的作者之一。虽然内容比较简短,但质量极高。
6. 《The Standard C Library》
0.6.jpg
一.初级入门系列
简介:如果你是一个无编程经验的C++初学者,或者有其它语言经验的C++初学者,那强烈推荐下面的书籍。
1.《C++ Primer》 作者:Stanley Lippman, Josée Lajoie, and Barbara E. Moo (更新到C++11)
1.1.jpg 近1千页,本书透彻的介绍了C++,以浅显和详细的方式讲到C++语言差不多所有内容。2012年8月发行的第五版包含C++11的内容。
2.《Accelerated C++》作者:Andrew Koenig and Barbara Moo
1.2.jpg 这本书覆盖了和C++ Primer一样的内容,但厚度只有C++ Primer的四分之一。这主要是因为本书面向的不是编程的初学者,而是有其它语言经验的C++初学者。对于初学者,本书学习曲线稍显陡峭,但对于能克服这一点的学习者而言,它确实非常紧凑的介绍了C++这门语言。
3.《C++编程思想(Thinking in C++) 》作者:Bruce Eckel
1.3.jpg 共两卷,第二卷主要将标准库,但还是不错的。
4.《C++程序设计原理与实践 (Programming: Principles and Practice Using C++ )》作者:Bjarne Stroustrup
1.4.jpg C++之父写的C++入门书籍。本书面向没有编程经验的初学者,但相信有编程经验的人也能从本书中学到不少东西。
5.《C++初学者指南》作者:Herb Schildt
C++之父写的C++入门书籍。本书面向没有编程经验的初学者,但相信有编程经验的人也能从本书中学到不少东西。
6.《C++ Primer Plus》作者:Stehpen Prata
1.6.jpg 可以说是一本面向从未学习过C语言甚至是从未学习过编程的人的入门书籍,它的第一章从基础内容讲起,先介绍了传统编程的规则,后面才着重讲解有关面向对象——C++的精髓之一的有关内容。整个书的结构安排较为合理,难度爬升较慢。如果你是一个从未学过C语言(或者压根没学会C)的读者,那么,我相信这本书更适合你。
7.《Visual.C++.2008入门经典》
1.7.jpg
8.《面向对象程序设计—C++语言描述》
9.《数据结构(C++语言版)第三版_邓俊辉》
1.9.jpg
10.《Essential_C++》
1.10.jpg
11.《算法精解 C语言描述》
1.11.jpg 思路同样适用于C++
二.实用系列
1.《Effective C++ 》作者:Scott Meyers
2.1.jpg 本书以瞄准成为C++程序员必读的第二本书籍而写,Scott Meyers成功了。早期的版本面向从C语言转过来的程序员。第三版修改为面向从类似Jave等语言转来的程序员。内容覆盖了50多个很容易记住的条款,每个条款深入浅出(并且有趣)讲到了你可能没有考虑过的C++规则。
2.《Effective STL》 作者:Scott Meyers
2.2.jpg 讲解方式和Effective类似,但内容主要面向于STL。
3.《深入浅出设计模式》
2.3.jpg
4.《设计模式:可复用面向对象软件的基础》
2.4.jpg
5.《HeadFirst设计模式》
2.5.jpg
6.《大话设计模式》
2.6.jpg
三.中级进阶系列
1.《More Effective C++ 》作者:Scott Meyers
3.1.jpg 更多(深入)关于C++的规则。没有前一本Effective C++重要。但同样值得一读。
2.《Exceptional C++ 》作者:Herb Sutter
3.2.jpg 讲解方式为提出并解决一系列的C++难题。本书极其透彻的讲解了C++资源管理、异常安全和RAII。同时覆盖了一些较为深入的技术,比如:编译防火墙(pimpl idiom)、名字查找规则,、好的类设计和C++内存模型。
3.《More Exceptional C++》作者:Herb Sutter
3.3.jpg 讲到了Exceptional C++没有涉及到的更高级的异常安全技术, 同时讨论了高效的C++ OOP方式和如何正确的使用STL。
4.《Exceptional C++ Style》作者:Herb Sutter
3.4.jpg 讨论了泛型编程、最优化和资源管理。本书出彩之处在于谈到了如何用非成员函数和单职责原则编写模块化的C++代码。
5.《C++编程规范(C++ Coding Standards) 》作者:Herb Sutter and Andrei Alexandrescu
3.5.jpg “编程规范”这里并不是”代码缩进要用几个空格”。这本书包含了101个例子、惯用法、缺陷,通过这些可以帮助你编写正确、清晰高效的C++代码。
6.《C++ 模板完全指南(C++ Templates: The Complete Guide)》作者:David Vandevoorde and Nicolai M. Josuttis
3.6.jpg 本书是关于C++11之前的模板的。它覆盖了从非常基础到最高级的元编程知识,解释了模板工作原理的细节(概念和实现方式)。并且讨论了大量的缺陷。附录中包含关于ODR和重载的精彩总结。
7.《Beyond the C++ Standard Library(Boost)》作者: Björn Karlsson
3.7.jpg 他为中级至高级的C++开发者描述了所有58个Boost库的轮廓,并完整叙述了12个可能最有用的库。Karlsson的 主题范围从智能指针和类型转换,到容器和数据库结构,解释了如何正确地使用每一个库来改进你的代码。他详细论述了可以让你 写出更简明、清晰、易读的代码的高级函数对象。他还带你到Boost的”幕后”,看看那些对你创建自己的泛型库有益的工具和技术。
8.《C和C++安全编码》
3.8.jpg
9.《深入理解C++11》
3.9.jpg C++ Primer 第5版是从零讲C++,很厚很浪费时间,而这本是讲C++11新出来的特性,对于已经熟悉C++的人来说,很合适,能够快速了解C++11有哪些新特性,讲的也非常好,简洁而易懂
四.高级成神系列
1.《C++设计新思维-泛型编程与设计模式之应用(Modern C++ Design ) 》作者:Andrei Alexandrescu 泛型编程鼻祖级书籍。
4.1.jpg 本书先介绍了基于策略(policy-based)的设计、type lists 和泛型编程基础, 然后讲到了许多有用的设计模式(包括small object allocators, functors, factories, visitors, and multimethods) 如何被高效、模块化、清晰的泛型代码实现。
2.《C++模板元编程(C++ Template Metaprogramming)》作者:David Abrahams and Aleksey Gurtovoy
4.2.jpg 更多的是讲解boost::mpl,想要深入理解mpl的可以看一下。
3.《C++ Concurrency In Action》作者:Anthony Williams
4.3.jpg 这本书主要内容是C++11的并发支持,包括线程库、原子(atomics)库、内存模型、锁和互斥量。同时也讲解了开发和调试多线程程序的一些难题。
4.《Advanced c++ Programming Styles and Idioms 》作者:James O. Coplien
本书更侧重于工程实践。里面有大量的可能几乎无人知道但很实用的技术写成的代码。本书可能比Alexandrescu的书更值得读。对于资深的开发者来说,这是一个学习C++暗角技术的绝佳机会,通常这些技术要通过资深的编程经历才能获取。
5.《Real-Time C++ Efficient Object-Oriented and Template Microcontroller Programming》作者:Christopher Michael Kormanyos
6.《Advanced_Metaprogramming_in_Classic_C 》
五.经典古老系列
1.《C++的设计与演化(The Design and Evolution of C++ )》作者:Bjarne Stroustrup
如果你想知道为什么C++是今天这个样子,那么这本书将给你答案。本书覆盖C++标准化之前的一切东西。
2.《C++沉思录(Ruminations on C++) 》作者:Andrew Koenig and Barbara Moo
5.3.jpg 本书不是为了讲解具体的C++技术细节,而是如何通过C++编写出色的OO代码。
3.《大规模C++程序设计(Large Scale C++ Software Design)》作者:John Lakos
本书介绍了如何管理大规模C++软件项目的技术。很值得一读,除了有些过时以外。它是在C++98以前写的,缺少了好多对大规模项目重要的特性(比如名字空间)。假如你工作在一个大规模的C++项目中,你可能想要读它, 不过你需要注意那些不适用甚至错误的技术点。
4.《深度探索C++对象模型 (Inside the C++ Object Model )》作者:Stanley Lippman
如果你想知道虚函数是如何实现、多继承时基类是如何在内存中排布的和所有影响性能的东西,那么这本书会给你答案。不过这本书有好多低级的拼写排版错误,英文原版错误更多,侯捷翻译的版本中注明和纠正了很多,但本书绝对值得一读,你将明白编译器如何实现C++的对象模型。
六.计算机网络系列:
1.《TCP/IP卷一》
3539721_1535347386120_640.jpeg 这本其实我刚开始没看太懂,可能是当时太水的原因,但是一般是大牛力荐的书。
2.《计算机网络:自顶向下》
3539721_1535347386232_640.jpeg 这本从应用层讲到物理层,感觉这种方式学起来更轻松,我比较推荐小白看这本。
3.《图解HTTP和图解TCP/IP》
3539721_1535347386132_640.jpeg 相较于前两本大厚书,这两本书更加亲民,小白可以买来看看,还是很适合入门的。
4.《计算机网络》
3539721_1535347386071_640.jpeg 没错,就是这本教材,作为非科班选手自己看这本书,那叫一个欲仙欲死啊,看完就忘记了。
七.操作系统系列
1.《深入理解计算机系统》
048 3539721_1535347386224_640.jpeg 这本书不是严格意义上的操作系统书籍,而是对计算机基础和操作系统做了一个串联,可以解决你很多对于计算机的疑惑,并且对操作系统有一定理解。 其实这本书还是很厚的,有一定难度,建议有一些基础后再看。
2. 《现代操作系统》
046 3539721_1535347386338_640.jpeg 这本书其实我没怎么看,比较详细地讲解了操作系,但是也是大家都比较推崇的书,还是那句话,很厚,慎看。
3.《Linux内核设计与实现》
045 3539721_1535347386409_640.jpeg 当你对操作系统有一定理解以后,这本书将为你打开学习Linux内核的大门,当然在此之前你得有一定的c语言开发能力,以及对Linux的了解。反正,我现在还没开始准备好看这本书。
4.《Unix网络编程》
042 3539721_1535347386557_640.jpeg 这两本书的厚度绝对让你感到绝望,其实就是讲解了Unix内核是如何实现网络通信的,其中涉及到很多网络,操作系统的知识,并且你要熟悉c语言。总之,这是一本奉为网络编程神书的存在,不过我等新手还是拿他压压泡面就好了。网上有很多博客会参照该书的内容,可以去看看它们。
八.数据结构与算法系列
不瞒你说,由于我非科班,所以算法基础比较差,数据结构是考研时跟着天勤考研指南学的,学习算法也是一路坎坷,举步维艰。还是分享几本比较靠谱的书吧。
1.《算法导论》
041 3539721_1535347386572_640.jpeg 你问我是不是认真的,我就是说说而已,这本书我买来没看过。
2.《数据结构与算法(Java版)》
043 3539721_1535347386554_640.jpeg 这本书对于初学者来说还是比较友好的,当然学Java的看这本。
3.《算法图解》《啊哈算法》
1111.jpg 2222.jpg 这两部书籍非常适合学习算法的入门,前者主要用图解的形式覆盖了大部分常用算法,包括dp,贪心等等,可以作为入门书,后者则把很多常用算法都进行了实现,包括搜索,图,树等一些比较高级的常用算法。
4 .《剑指offer》
040 3539721_1535347386622_640.jpeg 这本书还是要强烈推荐的,毕竟是面试题经常参考的书籍,当然最好有前面基本的铺垫再看,可能收获更大,这本书在面试之前一般都要嚼烂。
5.LeetCode教科书式刷题网站
这不是一本书,是一个题库,算法么,终究还是要靠刷题来提升熟练度的。
九.数据库系列
1.《数据库原理》
3333.jpg 数据库原理应该是教材吧,这本书作为数据库入门来说还是可以的,毕竟不是专门做DB的,看大厚书用处不大,这本书把数据库的基本概念都讲完了。
2.《SQL必知必会》
025 3539721_1535347387238_640.jpeg 这本书主要是讲解sql语句怎么写,毕竟数据库最重要的一点就是要熟练地使用sql语句,当然这本书也可以当做工具书来使用。
3.《深入浅出MySQL》
023 3539721_1535347387285_640.jpeg 这本书适合作为MySQL的学习书籍,当你有了一定的MySQL使用经验后,可以看看它,该书从数据库的基础、开发、优化、管理维护和架构5个方面对MySQL进行了详细的介绍,讲的不算特别深,但是足够我们使用了。这本书我也只看了一部分。
4.《MySQL技术内幕:innodb存储引擎》
021 3539721_1535347387450_640.jpeg 看完上面那本书以后,对MySQL算是比较熟悉了,不过对于面试中常考的innodb引擎,还是推荐一下这本书把,专门讲解了innodb存储引擎的相关内容。我还没有细看,但是内容足够你学好innodb了。
5.《高性能Mysql》
022 3539721_1535347387428_640.jpeg 这本书可以说是很厚了,更适合DBA拜读,讲的太详细了,打扰了。
6.《Redis实战》
020 3539721_1535347387471_640.jpeg 和MySQL一样,学习Redis的第一步最好也是先实战一下,通过这本书就可以较好地掌握Redis的使用方法,以及相关数据结构了。
7.《Redis设计与实现》
018 3539721_1535347387523_640.jpeg 该书全面而完整地讲解了 Redis 的内部运行机制,对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍。这本书把Redis的基本原理讲的一清二楚,包括数据结构,持久化,集群等内容,有空应该看看。
十.分布式系列
1.《分布式Java应用》
017 3539721_1535347387546_640.jpeg 这本书是淘宝大牛写的书,主要讲的就是使用rpc来构建分布式的Java应用,讲了很多基础的东西,可以作为入门书籍,不过这本书我之前没有遇到,所以没看过。
2.《大型网站技术架构》
019 3539721_1535347387494_640.jpeg 这本淘宝系技术指南还是非常值得推崇的,可以说是把大型网站的现代架构进行了一次简单的总结,内容涵盖了各方面,主要讲的是概念,很适合没接触过架构的同学入门。看完以后你会觉得后端技术原来这么博大精深。
3.《大型分布式网站架构设计与实践》
016 3539721_1535347387653_640.jpeg 这本书与上面一书相比更倾向于实践,主要讲的是分布式架构的一些解决方案,但是如果你没有接触过相关的场景,可能会看的云里雾里。
4.《分布式服务框架原理与实践》
015 3539721_1535347387683_640.jpeg 上面那本书讲的是分布式架构的实践,而这本书更专注于分布式服务的原理讲解和对应实践,很好地讲述了分布式服务的基本概念,相关技术,以及解决方案等,对于想要学习分布式服务框架的同学来说是本好书。
5.《大型网站系统与Java中间件开发实践》
014 3539721_1535347387684_640.jpeg 话说这些书的名字真实够长的。这本书也是阿里系出品,主要讲的是大型网站系统以及使用的相关中间件,毕竟阿里是中间件大户,所以很多中间件对应用再网站系统中,对于想学习这方面技术的同学来说可以一看。
6.《从Paxos到Zookeeper分布式一致性原理与实践》
012 3539721_1535347387746_640.jpeg 说起分布式系统,我们需要了解它的原理,相关理论及技术,这本书也是从这个角度出发,讲解了分布式系统的一些常用概念,并且带出了分布式一哥zookeeper,可以说是想学分布式技术的同学必看的书籍。
7.《大规模分布式存储系统》
013 3539721_1535347387742_640.jpeg 这本书是阿里巴巴oceanbase核心开发大佬写的书,讲的是分布式存储相关的原理和解决方案,该书不是很厚,如果想做存储方向的同学可以看看。
十一.云计算系列
云计算方面的内容主要是我在实习阶段接触的,如果只是应用开发方向的话这块不懂也罢。主要还是看个人兴趣。
1.《OpenStack设计与实现》
010 3539721_1535347387899_640.jpeg OpenStack是基于KVM技术的一套私有云生态。这本书很好地讲解了OpenStack的一些基本原理,包括各个组件的设计与实现,比起另一本《OpenStack王者归来》简单易懂的多。当然,前提最好是你对Linux内核和网络有所了解。
2.《docker入门与实践》
011 3539721_1535347387887_640.jpeg docker是现在应用部署的主流方案了,所以了解一下还是挺有必要的,这本书作为入门书籍足够让你会使用docker了。
3.《Kubenetes权威指南》
009 3539721_1535347387926_640.jpeg kubenetes是docker的集群解决方案,也是一个微服务的解决方案,所以这本书涉及的内容非常多,需要有网络,操作系统以及docker相关的基础。我看这本书的时候可以说是非常晕的。
十二.大数据系列
和云计算一样,大数据方面的内容也不算是Java后端技术栈所需要的,但是这也能为你加分,并且让你跟大数据开发的岗位沾点边,何乐而不为。
1.《大数据技术原理与应用》
008 3539721_1535347387940_640.jpeg 作为大数据方面的一本教材,厦大教授写的这本书还是非常赞的,从最基础的原理方面讲解了Hadoop的生态系统,并且把每个组件的原理都讲得比较清楚,另外也加入了spark,storm等内容,可以说是大数据入门非常好的一本书了。
2.《Hadoop实战》
007 3539721_1535347387951_640.jpeg 这本书很厚,我买的时候大概看了一遍,一头雾水。所以建议先看上面那本书,再来看更加进阶的书籍,否则可能就是浪费时间了。
3.《Hadoop权威指南》
006 3539721_1535347387970_640.jpeg 这本书主要对Hadoop生态中组件进行详细讲解,有点太详细了,如果不是做大数据方向的话,可以不看。
十三.其他系列:
1.《Git权威指南》
005 3539721_1535347388061_640.jpeg Git是现在大公司主流的代码协同工具,如果你想要了解其底层原理,可以看看这本书。
2.《重构——改善既有代码的设计》
004 3539721_1535347388141_640.jpeg 这本书主要介绍的是代码重构的一些指导思想和最佳实践。有重构需求的同学可以看看。
3.其他的其他
其他方面的书籍就太多了,比如软件工程方面的,测试方面,Linux方面,以及讲一些程序员自我提升的书籍,就不一一列举了,因为这部分的内容可以不归入Java后端的技术栈。
十四.颈椎康复系列:
1.《做自己的颈椎医生》
4444.jpg
2.《程序员健康指南》
14.2.jpg 身体是革命的本钱。懂得人不用解释了。

下载地址



提取码:r3ui

下载地址:

提取码:r3ui