前言
作者:
林亚
链接:
https://www.nowcoder.com/discuss/147538
后台开发包括的知识点很多,包括语言基础,算法,linux编程基础,linux内核,网络,数据库,分布式等等。面面俱到很难,一个领域钻研的很深也很难。我认识的大神里有把C++语言吃的非常透的,也有实验室就是搞分布式的,拿offer都非常轻松。
offer
-
字节跳动后台开发ssp
-
网易游戏游戏研发ssp
-
阿里云基础平台开发
-
华为15级顶薪
-
腾讯后台开发ssp
(当然也只投了这几家)
我准备应聘的时间从研一的寒假开始,当然自己探索的路上走了不少弯路。
列举一下自己的学习内容中我自己认为对找工作或者对提升自己非常有帮助的一些书或资料,仅供参考~
基础知识
-
《C++ Primer》,应该算是工具书,但我花了3个月一个字一个字啃完了,现在能记住的没几个了,但是好在全看完就不用看Effective C++了,基本都包含在内了。
-
《STL源码剖析》,很老的书了,很多内容都过时来了,比如空间配置器,但是面试官还是会问……可以跟面试官讲讲ptmalloc的实现。整本书都是重点。
-
《深度探索C++对象模型》,虽然基本只会问虚函数的实现,看一篇博客也能应付面试,但是还是建议多看几遍。
-
《Effective C++:改善程序与设计的55个具体做法》还有more effective C++,建议快速看一下。
-
STL和对象模型我都看了3遍以上,因为太容易忘了,Effective C++只是快速浏览了一遍,发现基本都包含在Primer里了。
-
网络,除了本科学过的(《计算机网络 自顶向下方法》),我看了《TCP/IP详解卷1》12-16章,其它部分看书太麻烦了,直接从博客里看了。
-
linux环境编程apue和unp两本是必须的,因为太厚了,看起来还是有点痛苦的,但是不需要全看,而且内容重叠很多。unp卷1前面8章是重点,卷2前面4部分都挺重要的,apue全部,先是要有个概念,自己写代码的时候就知道哪块重要了。
-
linux内核,我买了《深入理解linux内核》发现啃不动,后来看了《linux内核设计与实现》,非常推荐,外加一大堆博客,《深入理解计算机系统》讲的东西比较简单,这个可以作为一个补充,面试官问的很多操作系统相关的问题书中都有涉及。
-
此外,《后台开发:核心技术与应用实践》是腾讯的员工写的,这本书评价比较差,几乎都是抄的博客,但是内容上总结的很好(我觉得就是给校招的同学写的),都是后台开发需要的基础知识的总结,这本书中内容所代表的知识,基本都是腾讯的C++后台开发工程师所必备的基础,可以作为一个复习提纲。
-
《Linux多线程服务器端编程》,陈硕的书,我看了3.4遍,源码也读了3.4遍,收获非常多。前面部分是后台开发的一些经验之谈,对面试也很有用。
-
《Redis设计与实现》看完感觉也特别好,很值得学习,可以很快就看完。有很多重要的数据结构可以在面试的时候讲出来,比如跳表、redis的 hash表啦~
-
《深入理解Nginx》我也看了一部分,nginx太经典了,很多面试官也都提到过。
-
短小精悍的源码还非常推荐leveldb,对照博客把leveldb源码看完不需要多长时间(我花了两个周吧),但是收获非常多。在此基础上还可以了解一下rocksdb。
除此之外,还看过一些其它的书,感觉不值得推荐就不写了。
书是比较系统性的东西,博客通常是总结性的东西,也是对书中内容的一个补充吧。好多东西面试会问到,但是书中很难找到解答,对照着网上的面经搜博客吧。我看了下自己收藏夹里的光是收藏的博客就已经上百篇了,当然还是不能完全覆盖面试官会问到的问题。(这一步是重点啊)(公众号后台回复 SSP 获取博客链接)
算法
我只刷了Leetcode上的500多题(乔戈里小声BB一句,牛逼了),但是第一遍不会的题都标记了,后面又刷了很多遍。《剑指offer》这种书不太建议看,很啰嗦,解答也不如LeetCode上的高票解答。直接干刷其实还有点无聊的,每周日上午做一下leetcode的周赛也是个不错的选择,另外 Top 100 Liked Questions 可以重点关注一下。
项目
https://github.com/linyacool/WebServer
写了一个静态Web服务器,主要是找实习的时候用的,参考了muduo网络库,面腾讯、阿里、字节跳动、网易、微软都被问到了,腾讯阿里每一面的70%的时间都在问这个。
这个项目在面试过程中被问到的问题也到记录在其中了,仅供参考。
秋招因为有了实习经历,基本都是问实习期间做的事情了。
建议不要细读我的代码了,直接看muduo的代码去学习吧,但你可以看看我markdown里总结的东西,看一下我做了什么,另外这个也只是帮我应对了春招实习招聘,作为一个例子供大家参考。
知识点文档
附一个我自己的春招实习之前整理的一些比较难记的知识点的文档,目录有超链接,可以直接点过去:
公众号后台回复 SSP 获取
大神答疑
问题一:大神是自学的吗?如何平衡实验室任务?
-
答:如果你们实验室的方向和你想找的工作的方向一致,就好好做呗。。不过貌似大多数实验室的项目都很水,我们实验室就这样,水水就过去了,别花太多精力,我也是帮老师发了两篇论文一篇专利,还solo了一个横向项目,现在想想根本不用那么认真的嘛
问题二:陈硕这本书感觉一开始读起来好费劲啊,大神怎么看的?
-
陈硕这本书是我收获最多的一本书了,emmmm,这本书讲他的代码的部分是需要花点时间去理解的,前后多看几遍就好了
问题三:最后去哪了?
-
答:阿里云,阿里云是纯技术的组,加班较少,杭州租房也便宜,薪资谈的也比较满意
问题四:楼主请问找后台开发一般要准备几个项目呢
如果是不相关的项目对面试帮助大不大呢?
-
答:一个相关的就能怼天怼地怼一切了,我简历上有个完全不相关的图像处理的项目只被问过一两次,也只是介绍了一下,还有个微信小程序的后台项目,也没被问过(不知道为啥),我分享的那个WebServer,春招找实习的时候基本所有的面试官都在问,而且大部分时间都在问这个
问题五:请问后台数据库需要学么
-
答:emmm 我找实习之前唯一没好好看的就是数据库了,说来也是巧合,现在在阿里云做的就是数据库。我的简历里没写数据库相关的内容,也基本没被问到过,但是我感觉,你简历里得有其它能吸引面试官的东西,毕竟每个人擅长的领域都不一样,我看之前牛客有个人面经里全是分布式的东西,一样拿很多offer啊
问题六:看完这些书以及做这个项目花了多久的时间?
-
答:我那个服务器写了很久,主要是踩了太多坑,没看muduo之前,照着自己的想法探索,模型都是错的,看了muduo又开始改啊改,前后改了6版。包括之前看书,也踩了很多坑,有很多厚书其实是工具书像C++primer这种,没必要一页一页看的,我花了太多时间。我是从研一的寒假开始的,找完实习就没怎么复习了,你可以参考一下
End
关于本号作者乔戈里亲历2019秋招,哈工大计算机本硕,百度java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。
3T编程资料等你来拿
网友评论