"来源:|冰川科技ID:黑客-何冰"
大家好,我是何冰~ ~
之前有很多朋友在微信上给我发私信,让我整理C++的学习路线。经过一个月的努力,我终于完成了这一“壮举”。不仅是我的朋友让我整理这条路线,实际上,我有一个表弟也需要这条路线。
老粉丝可能知道我有一个表妹,还在上大学,今年大三。
他是在一个非学科班转的计算机,所以基本功很差。我花了一个多月的时间写了这条学习路线,全文八千多字。文章打磨了很久,所有的支持材料都找到了。
1.聊了一会儿。
这条学习路线主要由五个阶段组成。每个阶段我都会推荐相应的书籍和视频,并标注内容,分为必看和可选两种。
有些内容一定要看,这个一定要看,不能省略和跳过;部分内容可选,有时间请阅读,没时间记得以后补!
这条学习路线最早发表在我自己的知识星球上,现在分享给大家。
可能很多朋友都知道我很久以前有一个知识星球,但是这个星球上只有我和表哥两个人。我们每天打卡,记录我们的学习过程,这样我就可以和他一起学习了。
中国古代有句话,“一得道,鸡犬升天。”当一个人有能力的时候,就会把人拉近。这其实是人之常情。
后来有人问我介不介意再要一个表哥。不是真的那种。...
得益于Byte官方宣布取消8月份的大小周,8月份变成了每周一次的周末,很惬意。
我也可以每周外出近30个小时。想了想,还是打开看看吧。
在星球上分享我在工作中所学到的东西,回答一些本科生和研究生的问题,主要是学习和求职方面的。
如果你有学习提升自己的打算,可以在微信官方账号回复“知识星球”后台了解;
如果无意学习,就不要加了。可能不适合你。
因为这个星球的名字以前叫“王娟培育集中营”,后来在里面打滚是违法的,我又怕被邀请喝茶,就改名为拓跋阿秀他的学习圈。
2.学习路线
回到正题,这个学习路线我真的写了一个月左右。
别怀疑,真的是一个月,主要是最近部门老板接了一些新项目,我们也在加班。
所以我只能用各种碎片时间写的这条学习路线。本文主要针对一些小白和非职业玩家。如果你有一定的基础,建议你走我之前的学习路线。就是这样:个人C++学习路线公开。
如果转行,可以按照现在的学习路线。
这条C++学习路线主要是为了找工作。认真走完前三个阶段,一定能帮你找到一份好工作。
经过五个阶段,你可以说你是一个合格的C++ RD工程师。
本文推荐的书籍,在当当网和京东上都有相应的纸质版,在以下两个仓库可以找到相应的免费电子版PDF:
地址:https://github.com/forthespada/CS-Books
地址:https://gitee.com/ForthEspada/CS-Books
此外,本文还会推荐一些视频。我已经放在微信官方账号后台了,访问方式或者视频地址都在对应的推荐视频下面。可以关注一下他们。
以下是本文的主要内容:
++第一阶段学习路线,简介
我一直建议一些小白玩家不要在入门之初直接啃书,尤其是不要在入门之初啃一些黑书!
这些书好吗?
好吧,但是不适合还有点白的你。
如果是白期,可以直接咀嚼这些内容,适当劝导。
1.郝斌的C语言教程
233224地址:https://www.bilibili.com/video/BV1os411h77o
如果你有其他语言基础,比如Java,Python等。,那么郝斌先生的C语言教程可以直接跳过。
如果你没有其他语言基础,你最好看看郝斌的教程。
如果你没有最基本的C语言基础,你可能连指针是什么都不知道。
然后你在学C++的时候,比如智能指针里的那个会很可爱,感觉有些内容看起来很雾,前言不搭后语,搞不清楚。
2.黑马培训课程C++教程
地址:https://www.bilibili.com/video/BV1Tb411j7uM
这个一定要看!看了2017版黑马C++,现在有朋友2019年回复我的消息。。
最好也跟着视频走。可能刚开始你反应比较慢,有些内容不理解。没关系,跟着视频走就好。
就像阿秀以前看这个视频一样,一次打一个单词。
C++ Notes微信官方账号后台回复“Notes”,即可获得我当初自己打字的黑马C++课程练习。
关于看一些编程视频的方法,我之前分享过我是怎么看视频的。有兴趣的可以看看。
地址:看视频的一点小建议
第二阶段,崛起
这是整个C++学习路线中最重要的阶段,还是从书本和视频开始。
如果说第一阶段是让你入门,那么第二阶段就是帮你打好基础,让你在后期的学习中能够脚踏实地,基础不会不稳。
1.C++初级读本第五版或C++初级读本第六版
这是两本完全不同的书。
前者,即C++入门第五版,适合部分基础玩家,封面如下;
选择这本书的人最好有一些C语言基础,也就是能跳过郝斌C语言教程第一阶段,只看黑马教程的人。
当然,如果你有其他语言的基础就更好了。
阅读这本书时,记得不要跳过课后练习。没必要每道题都认真做,但是每一节后面的前2-3题肯定是需要自己做的。
如果你觉得你学得不好,就跳过课后题。以前看这本书的时候,我以为什么都懂了。
我转过头,做了些功课,才意识到我能看懂一把锤子。。。
这本书的前八章是基础部分,需要读好;9-12章是容器和算法的知识;13 -19章是复制、重载等高级知识点。
对于13-19章之间的内容,第一遍可能看不懂。没关系。如果以后遇到问题,翻相应的知识点就行了。
因为我就是这么来的,比如复制构造函数和智能指针部分。我记得我来回看了至少三四遍才看明白。。。
我知道还有一套对应C++初级5的习题,封面如下:
许多人问我是否有必要买这本书。我以为C++初级5的课后题就够了。
数量不多,但是精华。如果有不懂的地方,及时理解就好。没必要买这套习题。
有时候选择太多是一件坏事,但是选择太多会导致一个不好的开始,不知道选哪个。
第二本书《C++初级加6版》,适合小白玩家,也就是没有任何语言基础的玩家。封面如下:
这个应该是C++PrimerPlus。这本书完全是一本白皮书,甚至可以说是太详细了。
选这本书的人建议你一定要看完郝斌老师的C语言教程第一期和黑马培训班视频,再买这本书。千万不要买C++初级第五版的书。
记得根据自己的情况选择不同的书。
2.看三个厚街老师的视频。
读书是一件很无聊的事情,尤其是那些大黑书,看起来很无聊,所以题目里穿插了一些视频。
第二阶段我建议粗略看一下第三阶段必看的三个视频,分别是侯杰的STL泛型编程,C++11的新特性,内存管理和分析。
侯杰老师所有课程均可通过微信官方账号后台回复“侯杰”获取。
我知道当我看到这些的时候,可能会有同学怀疑我在胡说八道,甚至直接喷我教坏了学弟学妹,而且刚开始学习,直接看这么深奥的东西。。。
为什么要提前看几个第三阶段的视频?
第一,第二阶段推荐你看视频,但不代表第二阶段可以直接看书。看这些视频的前提是,至少学习和阅读了C++的基础知识,比如《C++入门第五版》的前八章,你至少要看完前八章再看视频。
第二,如上所述,看书很无聊。如果改变一下接受知识的形式,再回头看一遍书,效率一般会大大提高。吃惯了猪肉大葱的娇子,想吃韭菜鸡蛋。。
第三,侯杰的视频,每个学C++的人都要认真看几遍。你不可能只记住一次。
所以你可以在第二阶段大致看看这些必看视频,然后在第三阶段再仔细看看这些视频。
以前和大家分享过我看视频时的一些方法,也就是下面这篇文章:
但是,侯杰先生的这些视频并不适用于这些方法。你只需要仔细观看这些课程。如果你有决心追随他们,不打算追随他们也没关系。仔细观察他们就行了。
当你看这三个视频的时候,你可能会感到迷茫和困惑。不要惊慌。这很正常。
我不觉得自己傻,但是不正常。。。
视频中有些知识点听不懂,也不理解。没关系。看着吧。
不需要理解的很透彻,对里面出现的名词有个大概的印象就可以了。
第三阶段,勤奋。
1.2本待读的书,2本待读的书。
具体来说,必读的两本书,或者说必读的两本书一章,分别是STL源代码分析,有效C++,深度探索C++对象模型第三章。
还有我选择看的两本书:更有效的C++和深度探索C++除了第三章。
为什么要看这两本书和一章?
言归正传,面试会问。这是一个很真实的回答。没办法。人家面试官会问。
是的,面试会问。稍微正规一点的C++面试肯定会问STL库,也可能取决于你的回答是不是想继续深挖。
比如向量扩展机制,unordered_map和map的底层数据结构是什么,如何解决哈希冲突?
遥远的地方,
《STL源代码分析》这本书带你深入C++中最著名的库的底层,探索它的奥秘。通过这本书和侯杰老师的STL源代码视频,你会对STL有完全不同的认识。
那些容器和库函数会在你写代码和刷题的时候起到事半功倍的效果。值得一看。
“有效的C++”是为那些自认为“精通”C++的人写的。相信我,C++绝对是一门高深莫测的语言。这本书只是带你透过洞口看一点它的玄机,值得一读。
《C++对象深度探索》,这是本好书,但是内容太杂,最重要的是第三章虚函数。
我之前分享过,辨别一个C++考生水平的最好方法之一,就是问他一些关于虚函数和STL的知识点。
如果申请人能够正确回答这两部分的知识点,可以说明申请人已经学习了一些C++,C++语言基本功没有大问题。
所以虚函数第三章值得一读。
两本书选的不是好书吗?不值得看吗?
不会,都是很好的C++书,但是优先级可以推迟到你找到工作以后。
读两本你必须先读的最重要的书。这两本书你可以以后再看。
2.三个必看视频和一个可选视频。
侯杰是台湾省的C++高手。学C++的应该都知道侯杰。
之前有幸看了侯杰的视频直播,哈哈。
远的,必看视频是侯杰的STL泛型编程,C++11的新特性,内存管理和分析。
选取的视频是侯杰生前和死后的节目。
侯杰老师的所有课程,后台回复“侯杰”即可获取。
三个必看视频的重要性依次递减,最重要的是STL泛型编程,第二个是内容管理和分析。
其中,STL泛型编程是帮助你理解《STL源代码分析》这本书;C++11的新特性是为了帮助你理解《C++初级读本》第五版中C++11的新特性。
毕竟仅仅靠自己看书,理解一些知识点,很容易出错或者跑题。如果有人带他们就好多了。
第四阶段,实战
其实仔细研究前三个阶段也差不多了,然后找个项目做好,好好想想。
你对基本的C++语言没有任何问题。懂点数据结构和算法,操作系统,计算机网络和数据库的知识就可以出去找工作了。
如果你对C++感兴趣,那么你可以继续读下去。
一个好的C++开发工程师必须非常熟悉网络编程。毕竟学C++不像学Java,可以在学习过程中通过自己建网站或者做一些小Demo来获得自我满足感。
正常情况下,在学习C++的过程中,你会伴随着一个黑色的命令框很长一段时间。网络编程阶段是为数不多的能让你获得一些满足感的阶段之一。
建议你现阶段自己开发一个服务器,加深对网络编程的理解。
我想很多人会说:“什么?烂大街上的服务器项目?秀哥,开什么玩笑?为什么推荐我学这个?”
事实上,大街上的坏事不代表不值得做。
也就是很多人简历上都写了Web服务器项目,其实都是github上直接抄袭的开源项目。他们可能会说没看就自己做了项目。
这样的人很多。。。
1.两本必看的书和一本可选的书。
学习C/C++ Linux相关的网络编程,必读的两本书是《TCP/IP网络编程》和《Linux高性能服务器编程》。
前者是一本好书,因为它教你手把手地写代码,这是真的。。唯一不好的是书中很多知识太浅,很多函数和原理只是顺便提一下,远不如Linux高性能服务器编程中的。
我背的这本书似乎总共有24章,每一章都是一个例子。也许你可能会被“手把手教你XXX”这句广告语吓到。
别担心,这本书真的是教你如何写各种网络通讯的范例。。。
以前我在看这本书的时候,专门去github找别人的笔记,边看边看,最后在别人笔记的基础上删改改,形成自己的笔记,把书中的例题全部敲出来。
地址:file/tupian/20220831/504优惠券= acni2gn
当然,如果你想有更深入的了解,我建议你看TCPIP网络编程和Linux高性能服务器编程。
第五阶段,大成
1.书
第五阶段的东西其实更多的是用在工作中,比如并发编程,模板元编程。对应的书籍有《C++冥想》、《C++中的模板元编程》和《C++并发编程实际练习》。
基本上求职的时候不需要看这些书。这些属于后期。等到你真正拿到offer,确定自己从事的是C++相关的工作,再来看这些书。
另外,我建议你回到C++的原点,就是从头再看一遍《C++初级读本》第五版或者当字典用,放在你的工作站上,遇到什么不确定的地方当场翻一翻就行了。
2.录像
如果能学到第五阶段,已经很强了,至少比我强很多。。。
那我就给你推荐几个我收藏的优秀视频吧。基本上都是跟系统原理和分布有关的视频。在下面的文章中:
我靠b站学编程。闻起来很香——外国商品
标签
一个好的C++开发者从来不怕找不到工作。即使你以后从事Java/Go工作,因为语言的原理是相通的,你的学习成本也会比别人低很多。
我仔细想了想自己这些年的语言历史:写了一年C语言和VB,写了三年c#;研究生写了一年Python和c++;+两年;我开始写Javascript,Go,Vue和React框架。
你想问我最喜欢哪种语言?
毫无疑问,肯定是C++!
不,我只是喜欢它的严谨!
++C天下第一!!!
种一棵树最好的时间是十年前,其次是现在。真心希望学弟学妹和一些想转电脑的朋友们加油!
我是阿秀。下次再见。
推荐:《逆袭大厂系列》
推荐:求职软实力