目前准备面试同学都知道,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」「计算机网络」「简历模板」 等等关键字就可以获得我多年整理出来的学习资料。
求职内推也可以来找我哈,首推百度。腾讯、阿里、头条等也可以帮忙联系。

大厂程序员教你如何学习C++(内附学习资料)的更多相关文章

  1. Python入门学习指南--内附学习框架

    https://blog.csdn.net/weixin_44558127/article/details/86527360

  2. 大厂程序员因厌恶编程,辞去月薪2w+的工作去当司机?

    世界好小啊,刚在一个 UP 主的群里看到一个视频,标题叫做:"失业了工作没找到,却稀里糊涂上了知乎热搜,2000 多万人围观,我--" 说实话,看到视频的封面,我的下巴当时就掉到了 ...

  3. Github上安卓榜排名第2的程序员教你如何学习【转载,侵删】

    来自:峰瑞资本(微信号:freesvc)文章作者:代码家(微信 ID:daimajia_share) 软件早已吞噬整个世界,程序员是关键角色.过去 40 年中,许多伟大的公司都由程序员缔造,比如比尔· ...

  4. LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式

    作者:HelloGitHub-小鱼干 在众多的诸如阿里.腾讯等大厂之中,最看中面试者刷题技能的大概要数有"链表厂"之称的字节跳动了.作为一个新晋大厂,字节跳动以高薪.技术大佬云集吸 ...

  5. 学Java的前景与就业,资深程序员教你怎么开始学Java!

    IT行业一直是就业的热门岗位,程序员这个职业稳定性和收入比都有着不错的前景,那么学Java的前景和就业是什么样的呢?随着入行Java的准程序员越来越多,各种学习Java的流派也层出不穷!其实在编程的世 ...

  6. 资深程序员教你如何实现API自动化测试平台!附项目源码!

    原文链接: 1.平时测试接口,总是现写代码,对测试用例的管理,以及测试报告的管理持久化做的不够, 2.工作中移动端开发和后端开发总是不能并行进行,需要一个mock的依赖来让他们并行开发. 3.同时让自 ...

  7. 一个.net程序员教你使用less

    我是一个.net 程序员,虽然说一直做后台,但是web 前端也会去学,虽然说技术只是层窗户纸,但是像我这种多动症患者,不捅破我心难受啊! 好!废话不多提,下面直接正题,至于less 是什么这里不多讲因 ...

  8. DIY党的福利!鹅厂程序员教你200元以内制作专属分体键盘

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由VellHe发表于云+社区专栏 前言 作为一名程序员,键盘在手,天下我有啊,不整把高大上的键盘怎么提升B格.之前一直想买个机械键盘,听 ...

  9. 疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)

    突破程序员基本功(16课) 数组 静态语言: 在编译的时候就能确定数据类型的语言,大多静态语言要求在使用变量之前必须声明数据类型(少数具有强推导能力的现代语言不用) 动态语言: 在程序运行时确定数据类 ...

随机推荐

  1. Spark中自定义累加器

    通过继承AccumulatorV2可以实现自定义累加器. 官方案例可参考:http://spark.apache.org/docs/latest/rdd-programming-guide.html# ...

  2. 手摸手带你理解Vue的Watch原理

    前言 watch 是由用户定义的数据监听,当监听的属性发生改变就会触发回调,这项配置在业务中是很常用.在面试时,也是必问知识点,一般会用作和 computed 进行比较. 那么本文就来带大家从源码理解 ...

  3. JavaScript基础使用parseInt()转换整数(005)

    parseInt()可以把一个字符串格式的整数解析一个整数数值,如"32 days"将被解析为32.这个函数还接受第二个参数,指定整数的进制(当然,一般来说应该是十进制).一个好的 ...

  4. spring配置文件的部分配置文字说明

    http://blog.csdn.net/zzjjiandan/article/details/22922847/ spring的组成: <beans> <contenxt> ...

  5. day05数据绑定

    流程:普通编辑-添加编辑模式 <text>数据绑定</text> <view>{{message}}</view> <button bindtap ...

  6. 大厂前端工程师教你如何使用css3绘制任意角度扇形+动画

    这里只是做下原理解释,原理:使用两个半圆做角度拼接.比如想绘制一个缺口朝右,缺口弧度30度角的扇形 资源网站搜索大全https://55wd.com 那么将由一个旋转65度角的半圆A+一个旋转-65度 ...

  7. 使用flex实现5种常用布局

    Sticky Footer 经典的上-中-下布局. 当页面内容高度小于可视区域高度时,footer 吸附在底部:当页面内容高度大于可视区域高度时,footer 被撑开排在 content 下方 dem ...

  8. 洛谷 P1043 数字游戏 区间DP

    题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分 ...

  9. day64 django模型层

    目录 一.单表操作(增删改) 二.必知必会13个方法 三.查看内部的sql语句的方法 四.神奇的双下划线查询 五.一对多外键的增删改查 六.多对多外键的增删改查 七.正反向查询概念 八.多表查询 1 ...

  10. day23 常用模块(中)

    目录 一.json&pickle模块 1 什么是序列化 2 为什么要序列化 2.1 持久保存状态 2.2 跨平台数据交互 3 如何序列化 二.shelve模块 三.configparser模块 ...