专栏首页代码随想录大厂程序员教你如何学习C++(内附学习资料)

大厂程序员教你如何学习C++(内附学习资料)

关于代码的一切尽在「代码随想录」

目前准备面试同学都知道,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++了。

最后呢,也要强调一下,

读过只是开始,多练多实战内化成自己的东西才是王道!

本文分享自微信公众号 - 代码随想录(code_thinking),作者:代码随想录

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 链表:听说用虚拟头节点会方便很多?

    如果使用C,C++编程语言的话,不要忘了还要从内存中删除这两个移除的节点, 清理节点内存之后如图:

    代码随想录
  • 栈与队列:我用栈来实现队列怎么样?

    push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队...

    代码随想录
  • 栈与队列:用队列实现栈还有点别扭

    刚刚做过栈与队列:我用栈来实现队列怎么样?的同学可能依然想着用一个输入队列,一个输出队列,就可以模拟栈的功能,仔细想一下还真不行!

    代码随想录
  • C加加初学者需要看什么书

    计算机基础的话下一步,没有就看《深入理解计算机系统》; ? 分享之前我还是要推荐下我自己的C/C++学习交流裙:三 四 三 八 九 一 三 六 五,不管你是小白...

    企鹅号小编
  • 值得推荐的C/C++框架和库(真的很强大)

    Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以...

    公众号C语言与CPP编程
  • TIOBE 9月编程语言排行榜发布,C++增速最快,C++20的功劳?

    TIOBE 公布 2020 年 9 月的编程语言排行榜,C++ 位列第四,仅次于 C、Java 和 Python。而且 C++ 相比去年同期增长 1.48%,成...

    机器之心
  • 畅行全球20年,最值得拥有的殿堂级C++入门神作!!

    它融合了令全球无数程序员为之迷醉的C++大师Stanley B. Lippman的丰富实践经验,注入了C++标准委员会原负责人Josée Lajoie 对C++...

    博文视点Broadview
  • 学好 C/C++,走遍天下都不怕

    与 Java、Python 等语言相比,C/C++ 语言是离操作系统更近的一种高级语言,因此其执行效率也更高。可以说,就像武侠小说中的“九阳神功”一样,C/C+...

    CSDN技术头条
  • 左清华,右C++,你Pick哪边?

    比清华大学在疫情期间使用的直播教学工具雨课堂,功能上更加强大的在线教学系统——雷课堂。

    老九君
  • 如果平行宇宙也有编程语言

    C++最近不太开心,自己曾经也是红极一时的编程语言,参与构建了无数的基础设施软件。但随着互联网时代的崛起,以PHP和Java为首的语言在Web开发领域以势如破竹...

    轩辕之风

扫码关注云+社区

领取腾讯云代金券