大厂程序员教你如何学习C++

更多干货文章持续更新,微信搜索「代码随想录」第一时间围观,本文GitHub:https://github.com/TechCPP 已经收录,里面有更多干货等着你,欢迎Star!

目前准备面试同学都知道,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++进阶书籍」获取哈

猜你喜欢

转载自blog.csdn.net/youngyangyang04/article/details/105622146