zoukankan      html  css  js  c++  java
  • 大厂程序员教你如何学习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++了。

    最后呢,也要强调一下,

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

    大家加油!

    这里介绍的书籍我都已经帮大家整理好了,而且还准备了primer 的中文版和英文版。可以在我的微信公众号「代码随想录」后台回复「C++进阶书籍」获取哈

    笔者介绍:

    在校期间侥幸得了个ACM亚洲区域赛铜牌,哈工大计算机硕士毕业后在腾讯和百度采坑
    微信公众号:「代码随想录」,分享自己对互联网以及技术的想法与思考,也希望和你可以交个朋友哈。
    关注后回复: 「java」「python」「php」「计算机网络」「简历模板」 等等关键字就可以获得我多年整理出来的学习资料。
    求职内推也可以来找我哈,首推百度。腾讯、阿里、头条等也可以帮忙联系。


  • 相关阅读:
    有return的情况下try catch finally的执行顺序
    java面试题
    JSTL常用标签
    文件引入路径设置
    JavaScript配合button.onclick()使用总结
    Java NIO vs IO
    如何在Oracle官网下载历史版本JDK
    常量池之String.intern()方法
    MyeclipseJRE版本设置
    JVM常用参数配置
  • 原文地址:https://www.cnblogs.com/youngyangyang04/p/12775770.html
Copyright © 2011-2022 走看看