知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

零基础想学习C++,应该怎么开始入手?

发表时间:2022-03-24来源:网络

这个我很有发言权,普通学校出身,为了不被知乎上的985高材生们卷死,在毕业前的两年开始准备着手求职找工作,最后经过一番比较最终选择了C++作为我的主要语言技术栈。

最后秋招找工作时拿了不少互联网一线大厂的offer,最后校招去了字节跳动做后端研发工程师

后来特意写了一版针对C/C++小白选手以及0基础的朋友的的学习路线,也分享在知乎上了,不少小伙伴打算在寒假跟着好好学!

添加图片注释,不超过 140 字(可选)

有图才有真相,为了防止大家说我吹NB,先上个我自己的学习路线的大纲图和我自己总结的C++高频知识点大纲图

这是我自己在学习C++过程中自己总结的重要知识点大纲,如果有需要可以进行保存,好东西就要拿出来分享!

下面这个则是我特意为一些小白选手、面向0基础准备的C++学习路线

添加图片注释,不超过 140 字(可选)郑重声明:知乎上有关C/C++、编程、算法、学习路线类的相关回答以及文章均为阿秀原创,如欲转载请按照知乎规则进行转载。如果未经同意直接抄袭,我定拿起法律武器进行维权!

先说明一句,这篇C++学习路线主要是面向求职的同学,认真走完前三阶段绝对能帮助你找到一个不错的工作了。

走完全部五个阶段,你可以说自己是一名合格的C++研发工程师了。

友情提示,这是一篇比较硬核的学习路线,全文长达10000字。

如果觉得本文比较长,可以先看一下目录,或者点赞&收藏,下次再看,这样就不会迷路了。

下面是我总结的C++高频知识点,建议面试前好好看看

今天再把我以前分享的学习路线分享一波:Linux C/C++ 方向自学路线,万字长文为小白新手打造 | 已拿字节后端研发offer



先高呼一声C++天下第一

添加图片注释,不超过 140 字(可选)

我大概是在研二的时候开始学习C++的,后来在研三的时候校招顺利进入字节跳动抖音部门做后端研发,以前就分享过自己的学习路线,但很多人都觉得上手难度比较大,对新手不友好!

刚好我有个还在读大学的表弟,今年大三了,他是非科班转到计算机来的,基本功比较差。

所以我专门花了一个多月写了这篇学习路线,全文超过10000字

这篇学习路线可以说非常详细了,专门为小白新手打造的,文章润色了好久,配套的资料全部找齐了。


1、先唠两句

本篇学习路线主要有五个阶段组成,每个阶段我都推荐的有对应的书籍和视频,对于其中的内容也进行了标注,分为必看选看两种。

有些内容是必看的,这个一定要看,不可以省略跳过;

有些内容是选看的,有时间就看吧,没有时间可以后期记得再补上!

学习完 C++ Primer 能做什么项目练手或者看什么好的开源项目源码?

2、学习路线

这篇文章主要是面向一些小白和非科班选手,如果你有一定基础了,我建议你按照我以前的学习路线去学就行;如果是转行,可以按照现在的这篇学习路线来学。

这篇C++学习路线主要是面向求职,认真走完前三阶段绝对能帮助你找到一个不错的工作了。

走完全部五个阶段,你可以说自己是一名合格的C++研发工程师了。

对于本文中推荐的书籍,当当、JD上均有售相应的纸质版,对应的免费电子版PDF可以在下面这两个仓库找到:

添加图片注释,不超过 140 字(可选)

地址1https://github.com/forthespada/CS-Books

地址2https://gitee.com/ForthEspada/CS-Books

除此之外,本文也会推荐一些视频获取方式或者视频地址都在对应的推荐视频下面了,大家可以留心一下即可。

下面是本文主要大纲:

我一直建议一些小白选手在入门最开始不要直接去啃书,特别是不要在最开始的时候就去啃一些计算机专业的大黑皮书!

这些大黑书书籍是不好吗?不能看吗》?

肯定不是,这些大黑书肯定好,但暂时不适合现在还是个小白的你。

比如上面这些计算机名词,看着就让人头晕想吐,所以千万不要在小白阶段就去啃这些大黑书!

如果你在小白阶段就直接去啃这些内容,妥妥的劝退,导致学习&转行失败,跟计算机直接说拜拜了!

你要是真渴望力量,那你就去吧,手动狗头~

1、郝斌老师的C语言教程(选看)

添加图片注释,不超过 140 字(可选)

这本书是完全的小白向书籍,甚至可以说讲的太详细了。

选择这本书的人建议你必须看完第一阶段的《郝斌老师的C语言教程》和《黑马培训班视频》,然后再去买这本书,千万不要去买《C++ Primer 第五版》那本书了。

记得要根据自身的情况来选择不同的书籍。

2、粗看三个侯捷老师的视频

看书是一件比较乏味的事,特别是那些大黑书,看起来比较枯燥,因此课题穿插一些视频。

在第二阶段,我建议先粗看一下第三阶段三个必看视频,也就是侯捷老师的STL泛型编程、C++11新特性、内存管理与分析这三门课程。

侯捷老师的全部课程分享地址:

我知道看到这里,可能有同学怀疑我在乱说,甚至直接喷我教坏学弟学妹们,刚开始学习就直接看这么高深的东西。。。

为什么要提前看第三阶段的几个视频?

第一、我是推荐你在第二阶段视频,但不代表你可以在第二阶段直接上来就看书,看这几个视频的前提是至少学完、看完C++的基础知识后,比如《C++ Primer 第五版》的前八章,至少要看完前八章再来粗看视频。

第二、正如上面说的,看书是一件很容易让人感到乏味的事情,换一种接受知识的形式再回头看书的话,效率一般都会大为改善。猪肉大葱的饺子吃习惯了还想吃吃韭菜鸡蛋的呢。。

第三、侯捷老师的这几个视频是每个学习C++的人都应该仔细看几遍下来的,只看一遍是绝对记不住的。

所以可以在第二阶段先大致看看这几个必看的视频,在第三阶段再来仔细看看这几个视频。

我以前跟大家分享过自己在看视频时候的一些方法,就是下面这篇文章:

但侯捷老师的这几个视频不适用这些方法,侯捷老师的这几门课程,你只需要认真看下去即可,如果你有跟着敲的决心也可以,不打算跟着敲也没事,认真看就行。

你在看这三个视频的时候可能会觉得懵,觉得云里雾里摸不着头脑,不要慌,这是正常的。

觉得不懵,反而不正常。。。

视频中的某些知识点看不懂、听不明白,没关系,接着看下去就行。

不需要理解的很透彻,只需要对其中出现的名词有个大概印象即可。

第三阶段、精进

1、必看的2本书和选看的2本书

具体来说必看的两本书,或者说,必看的两本书和一章节是STL源码剖析、Effective C++、深度探索C++对象模型第三章

而选看的两本书:More Effective C++、深度探索C++第三章以外的部分

为什么要看这两本书和一章?

往近了说,面试会问,这是一个很真实的答案,没办法,人家面试官问啊。

是的,面试会问,稍微正规点的C++面试绝对会问STL库的,而且还可能会根据你的回答来看要不要继续深挖下去。

比如Vector扩容机制、unordered_map和map底层数据结构是什么、哈希冲突如何解决?

往远了说

《STL源码剖析》这本书带你走进C++下最知名的库的底层,一探其中奥秘,通过这本书和侯捷老师的STL源码视频,你会对STL有一个完全不一样的认识。

那些容器、库函数,会在你写代码和刷题的时候提供事半功倍的效果,值得看

《Effective C++》正是写给那些自以为“精通”了C++的人看的,相信我,C++绝对是一门高深莫测的语言,这本书只是带你管孔窥豹一点它的奥秘,值得看

《深度探索C++对象》,这是本好书,但内容太冗杂了,最重要的就就是其中第三章虚函数部分。

以前我就分享过,区分C++应聘者的水平高低最好的一个方法就是问他虚函数和STL部分知识点

这两个部分的知识点,应聘者能答得不错的话,可以说明这个应聘者是学过一些C++的,C++语言的基本功没什么大问题的。

所以第三章虚函数部分,值得看

选看的两本书不是好书吗?不值得看吗?

不是,它们一样是很好的C++书籍,但是优先级可以往后放一放,找到工作再说。

先把最主要的必看的两本书籍看完再说,这选看的两本书可以后期再看。

除去语言本身,对于一些计算机基础课程也需要好好掌握,比如数据库MySQL这些,可以看下我以前的总结笔记!

2、必看的三个视频和一个选看的视频

侯捷老师是台湾的C++大师,学习C++的应该没有不知道侯捷老师的。

以前还很有幸看过侯捷老师视频直播,哈哈。

扯远了,必看的视频分别是侯捷老师的STL泛型编程、C++11新特性、内存管理与分析

选看的视频则是侯捷老师的程序的生前死后。

侯捷老师的全部课程:

必看的三个视频重要性依次递减,最重要的就是STL泛型编程,最次的就是内容管理与分析。

其中STL泛型编程是帮助你理解《STL源码剖析》这本书;C++11新特性则是帮助你理解《C++ Primer 第五版》中的C++11新特性。

毕竟光看书,纯靠自己理解一些知识点很容易走错路或者钻牛角尖,有人带着会好很多。

第四阶段、实战

其实认真学完前三阶段已经差不多了,再去找个项目好好做做,思考钻研一下。

基本C++语言这块,你是没啥问题了,再了解一些数据结构与算法、操作系统、计算机网络、数据库的知识就可以出去可以出去找工作了。

如果你有志在C++这条路上走下去,那你可以接着往下看下去了。

一个好的C++开发工程师对网络编程一定是十分熟悉和了解的,毕竟学习C++不像学习Java那样,能在学习过程中通过搭建自己的网站或者做一些小Demo来获取自我满足感。

正常来说,你在学习C++的过程中,很长一段时间段内陪伴你的都是一个黑乎乎的命令框,网络编程阶段是为数不多你能够获得一些满足感的阶段。

推荐你在该阶段通过自主开发一个服务器来加深自己对网络编程的理解的认识。

我想很多人都会内心OS:”什么?烂大街的服务器项目?秀哥你没搞错吧,怎么推荐我去学这个?“

其实烂大街的东西,并不代表它不值得去做。

还有就是很多人在简历上写了Web服务器项目,但是实际上都是直接copy的github上的开源项目,可能看都没看懂就说是自己做的项目。

这样的人多了去了。。。

1、两本必看的书、一本选看的书

学习C/C++ Linux相关的网络编程,必看的两本书分别是《TCP/IP 网络编程》和《Linux高性能服务端编程》。

前者是本很好的书,原因就是手把手教你写代码,这是真的手把手教你写代码。。唯一不好的点就是书中的很多知识讲的太浅了,很多功能和原理都只是一笔带过,远远不如《Linux高性能服务端编程》讲的深。

我记的这本书好像一共24章左右,每章都是一个例子,也许大家可能被一些广告语上的”手把手教你XXX“坑怕了。

不要担心,这本书真的是手把手教你写各种网络通信的例子。。。

我以前在看这本书的时候专门去 github 上找了别人做好的笔记,一边看别人的笔记一边看书,最后又在别人的笔记基础上删删改改形成了自己的笔记,把书中的例子也敲了个遍。

添加图片注释,不超过 140 字(可选)

TCPIP网络编程笔记

我以前手敲的《TCPIP网络编程》的笔记链接:https://pan.baidu.com/s/18XAu8OTsJmX_sfZ1qpmCcw 提取码:fw8s

看完《TCPIP网络编程》后,你应该去看有一下游双老师的《Linux高性能服务端编程》。

这本书讲的相当不错,是每一个从事服务端开发的人必备的一本书,《TCPIP网络编程》那本书告诉了你How,这本书则告诉你Why。

还有一本选看的书,是北师大陈硕老师的《Mudo:Linux 多线程服务端编程》。

这本书好,但是有点高深了,而且工业界用Mudo的也不是很多,如果不是从事服务端研发的同学可以不看这本书或者后期有需要了再来看这本书。

2、选看的一个视频

陈硕老师以前也在博览网录制了一个跟《Mudo:Linux 多线程服务端编程》配套的视频。

陈硕老师的视频:

就如同他的书一样,这个视频的观看门槛一样比较高,如果不是专门从事服务端开发的C++人员,可以不看这个视频的。

第五阶段、大成

1、书籍

第五阶段的东西其实更多时候是在工作中用到的,比如并发编程、模板元等,对应的书籍有《 C++沉思录 》、《 C++ 模版元编程 》以及《C++并发编程实战》。

在求职的时候基本不需要看这些书籍,这些都属于后期,等你真正拿到offer了,确定从事C++相关的工作了再去看这些书籍。

除此之外,我建议你回归C++这门语言的本源,那就是再从头看一遍《C++ Primer 第五版》或者把它当做一本字典,就放在你的工位上,遇到不确定的当场翻。

2、视频

如果你能学到第五阶段,已经很强了,至少比我强的多了。。。

那我就会把我珍藏的几个优秀视频推荐给你吧,基本都是体系原理、分布式相关的视频,在下面这篇文章中:

结语

我仔细想了想自己这些年的语言史:大学写了一年的C语言和VB,三年的C#;研究生写了一年的Python,两年的C++;工作了开始写JavaScript、Go以及Vue、React这些框架。

好的 C++开发者从来不怕找不到工作,即使你日后从事 Java/Go的工作,由于语言的原理都是相通的,所以你的学习成本会比别人小的多。

你要问我最喜欢哪门语言?

毫无疑问,绝对是是C++!

不为什么,就是喜欢它的严谨!

C++天下第一!!

种一棵树的最好时间是十年前,其次就是现在,真心希望学弟学妹们以及一些想要转计算机的小伙伴们加油!

如果觉得有帮助的话,不要白嫖我啊,点个赞就足够~

推荐阅读

1、学习完 C++ Primer 能做什么项目练手或者看什么好的开源项目源码?

2、如果你是一个C+面试官,你会问哪些问题

3、数据结构,计算机网络,数据库,计算机组成原理,操作系统有哪些好的网课值得推荐?

4、有哪些你看了以后大呼过瘾的编程书?

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜