目前准备面试同学都知道,C++是百度和腾讯的主流开发语言,而java是阿里的主流开发语言。
对于初学者来说,也不用纠结究竟学习c++还是java
其实只要好好掌握好一门即可,另一门即可融会贯通
因为我自己先后就职于腾讯和百度的工作经历,所以接触C++更多一些
我这里就给大家推荐学习C++,从了解到熟悉的各个阶段应该看的书
为什么不说精通呢,因为精通C++超出我的范围 哈哈,所以我只列出学习到熟悉C++的学习过程。
相信国内敢说自己精通C++的也是少数了
言归正题
首先什么是C++
如果仅仅以为C++就是C加上了一些面向对象的特性,说明还没有真正的了解C++
C++发展这么多年,已经融入了很多元素。
大家可以把C++视为一门联邦语言,而非单一语言
C++主要涉及到如下四块:
-
C语言。说到底C++仍是以C为基础的。区块、语句、预处理器、内置数据类型、数组、指针等等都来自C。
-
Object—Oriented C++。这部分就是 C With Classes 所诉求的:构造函数、析构函数,封装、继承、多态、虚函数(动态绑定) 等等。
-
Template C++。这是C++泛型编程的部分,也是大多数程序员经验最少的部分。Template相关考虑与设计已经弥漫整个C++,也正是因为Template带来了新的编程泛型,就是模板元编程。
-
STL。STL是一个程序库。容器、迭代器、算法以及函数对象的规约有极佳的紧密配合和协调。STL有自己的一套规则,所以当你使用STL的时候必须要找它的规约来。
我这里推荐5本书,建议按照我列出来的顺序进行学习。
第一本书:C++ primer,豆瓣评分:9.4
这本书是C++经典教程,书中的所有例子均采用了C++11的标准。
书中的教学辅助内容是非常丰富,编程示范也是精心设计,所以这也是C++ Primer一直保持着在C++领域的权威地位的原因。
无论是对初学者入门,还是已经工作的C++程序员提升自己的技术实力,这本书都是首选
看完了本书,可以说入门C++了。
第二本书:effective C++,豆瓣评分:9.6
对于这本书,在C++圈子里有一个传言:C++程序员分为两类,读过Effective C++的和没读过Effective C++的。
这本书是C++顶级大师scott Meyers成名之作,
看完primer之后,再读Effective C++,可以快速提升自己C++的功力。
这本书也不是读完一遍的快餐书籍,第一遍读的时候可能很多条款领会不到其真正用意。
这就需要反复阅读才能体会,这里蕴藏着C++精神的思想和无与伦比的表达能力。
第三本书:effectiveSTL,豆瓣评分8.9
本书是真的STL的经验之谈,同样是Scott Meyers大师的力作
书中有50个条款,每一个条款都举例了在使用STL时候需要注意的地方
并且详细的分析了为什么会有这样的问题,以及给出相应的解决方案。
此时看完了C++ primer,effective C++,effective stl之后,可以说自己是掌握C++了
第四本书:STL源码剖析,豆瓣评分:8.7
每一个程序员都知道,提高编程水平的最快捷径就是剖析大师的代码。
源码在手,天下我有。
前辈们的经验结晶、思维过程、技术思想、缜密风格,都原封不动的体现在源码之中。
本书讲述了各个容器的源码实现,包括vector、list、heap、deque、Red Black tree、hash tablet、set/map 等等。
还有各种算法的实现,包括排序、查找、排列组合、数据移动、复制技术等等。
看完此书可以说是有一点底气说自己熟悉C++了,至少比了解更近了一部
第五本书:深度探索C++对象模型,豆瓣评分8.9
这本书重点介绍C++面向对象程序设计的底层实现机制
主要包括结构式语意、临时性对象的生成、封装、继承,以及虚拟函数和继承
这本书可以让你彻底了解底层实现的机制,这会让你的代码执行效率获得极大的提升。
对于C++底层机制感兴趣的读者,这必然是一本让你大呼过瘾的绝妙好书。
看完此书,可以说自己真的熟悉C++了。
最后呢,也要强调一下,
读过只是开始,多练多实战内化成自己的东西才是王道!
大家加油!
这里介绍的书籍我都已经帮大家整理好了,而且还准备了primer 的中文版和英文版。可以在我的微信公众号「代码随想录」后台回复「C++进阶书籍」获取哈
笔者介绍:
在校期间侥幸得了个ACM亚洲区域赛铜牌,哈工大计算机硕士毕业后在腾讯和百度采坑
微信公众号:「代码随想录」,分享自己对互联网以及技术的想法与思考,也希望和你可以交个朋友哈。
关注后回复: 「java」「python」「php」「计算机网络」「简历模板」 等等关键字就可以获得我多年整理出来的学习资料。
求职内推也可以来找我哈,首推百度。腾讯、阿里、头条等也可以帮忙联系。