我的C++后台开发学习路线(秋招,C++后台,面经)

后台开发包括的知识点很多,包括语言基础,算法,linux编程基础,linux内核,网络,数据库,分布式等等。面面俱到很难,一个领域钻研的很深也很难。我认识的大神里有把C++语言吃的非常透的,也有实验室就是搞分布式的,拿offer都非常轻松。



我在本次秋招拿到了:

字节跳动后台开发ssp
网易游戏游戏研发ssp
阿里云基础平台开发
华为15级顶薪
腾讯后台开发ssp

我准备应聘的时间从研一的寒假开始,当然自己探索的路上走了不少弯路。

列举一下自己的学习内容中我自己认为对找工作或者对提升自己非常有帮助的一些书或资料,仅供参考~


语言基础,C++语言相关的:

《C++ Primer》,应该算是工具书,但我花了3个月一个字一个字啃完了,现在能记住的没几个了,但是好在全看完就不用看Effective C++了,基本都包含在内了。

《STL源码剖析》,很老的书了,很多内容都过时来了,比如空间配置器,但是面试官还是会问……可以跟面试官讲讲ptmalloc的实现。整本书都是重点。

《深度探索C++对象模型》,虽然基本只会问虚函数的实现,看一篇博客也能应付面试,但是还是建议多看几遍。

《Effective C++:改善程序与设计的55个具体做法》还有more effective C++,建议快速看一下。

STL和对象模型我都看了3遍以上,因为太容易忘了,Effective C++只是快速浏览了一遍,发现基本都包含在Primer里了。



网络,除了本科学过的(《计算机网络 自顶向下方法》),我看了《TCP/IP详解卷1》12-16章,重点是TCP、IP、UDP,其它部分看书太麻烦了,直接从博客里看了。



linux环境编程apue和unp两本是必须的,因为太厚了,看起来还是有点痛苦的,但是不需要全看,而且内容重叠很多。unp卷1前面8章是重点,卷2前面4部分都挺重要的,apue全部,先是要有个概念,自己写代码的时候就知道哪块重要了。


此外,《后台开发:核心技术与应用实践》是腾讯的员工写的,虽然这本书评价比较差,几乎都是抄的博客,但是内容上总结的很好(我觉得就是给校招的同学写的),都是后台开发需要的基础知识的总结,这本书中内容所代表的知识,基本都是腾讯的C++后台开发工程师所必备的基础,可以作为一个复习提纲。

 

下面的书应该算是提高篇了:


linux内核相关,我买了《深入理解linux内核》发现啃不动,后来看了《linux内核设计与实现》,非常推荐,外加一大堆博客,《深入理解计算机系统》讲的东西比较简单,这个可以作为一个补充,面试官问的很多操作系统相关的问题书中都有涉及。


《Linux多线程服务器端编程》,陈硕的书,讲muduo网络库的,我看了3.4遍,源码也读了3.4遍,收获非常多。前面部分是后台开发的一些经验之谈,对面试也很有用。

《Redis设计与实现》看完感觉也特别好,很值得学习,可以很快就看完。有很多重要的数据结构可以在面试的时候讲出来,比如跳表、redis的 hash表啦~

《深入理解Nginx》我也看了一部分,nginx太经典了,很多面试官也都提到过。

短小精悍的源码还非常推荐leveldb,对照博客把leveldb源码看完不需要多长时间(我花了两个周吧),但是收获非常多。在此基础上还可以了解一下rocksdb。

除此之外,还看过一些其它的书,感觉不值得推荐就不写了。



书是比较系统性的东西,博客通常是总结性的东西,也是对书中内容的一个补充吧。好多东西面试会问到,但是书中很难找到解答,对照着网上的面经搜博客吧。我看了下自己收藏夹里的光是收藏的博客就已经上百篇了,当然还是不能完全覆盖面试官会问到的问题。(这一步是重点啊)

分享一下我自己看过的博客,从手机书签里导出来的,整理了一下:

http://www.linya.pub/



算法

我只刷了Leetcode上的500多题,但是第一遍不会的题都标记了,后面又刷了很多遍。《剑指offer》这种书不太建议看,很啰嗦,解答也不如LeetCode上的高票解答。直接干刷其实还有点无聊的,每周日上午做一下leetcode的周赛也是个不错的选择,可以当做模拟笔试/面试。另外 Top 100 Liked Questions 可以重点关注一下。



项目

https://github.com/linyacool/WebServer

写了一个静态Web服务器,主要是找实习的时候用的,参考了muduo网络库,面腾讯、阿里、字节跳动、网易、微软都被问到了,腾讯阿里每一面的70%的时间都在问这个。


与之相关的很多东西都记录在里面,包括面试过程中被问到的问题,仅供参考。

另外,项目只要是造轮子的,我觉得都有更大的可能吸引到面试官,比如自己实现一个数据库、一个网络库等等。几乎每一轮面试都会让我介绍一下自己的项目,所以一定要提前准备好,不要被问到了临时组织语言。

如果想做类似的,建议直接看muduo的代码,但你可以看看我markdown里总结的东西,看一下我做了什么,另外这个也只是帮我应对了春招实习招聘,作为一个例子供大家参考。

秋招因为有了实习经历,基本都是问实习期间做的事情了。

 


附一个我自己的春招实习之前整理的一些比较难记的知识点的文档(只是我认为比较难记的哈),目录有超链接,可以直接点过去:

链接:https://pan.baidu.com/s/11TfRHtJFeKa3xsusSLHFjQ

提取码:d2a4

你可能感兴趣的:(秋招总结)