后台开发/基础架构方向 学习路线

具体面经参见:https://www.nowcoder.com/discuss/172152
个人牛客专栏:《收割BAT:C++校招学习路线总结》https://www.nowcoder.com/order?itemId=17&itemType=ZHUANLAN&couponId=D3btI8p (专栏介绍见文末~)

个人介绍

南京大学电子科学与工程学院 本硕。本科 通信工程。
实习经历:在北京图森未来的基础架构部门。
(目前我也是图森在南京大学的校园大使,大家有想去实习和工作的可以私信我内推呀)
我之前也是经历过很长一段时间的迷茫,纠结于算法还是研发方向,因为我本身做过算法优化相关的工作(本科末也水过paper)
之前也对深度学习机器学习有过很大的热情,但是迫于环境和自身的想法还是选择了研发方向,主要是后台开发和云计算相关。所以大家如果能够很早的确定自己的方向还是可以少走些弯路的。当然我的经验仅供参考。

由于我所在的实验室比较的。。。。坑。。。。所以研一研二根本没办法出去实习,而且南京之前也没有特别好的大厂可以就近去实习。我在研一末和研二初的时候还是去尝试投了一些实习,去年是拿到了

  • 微软的nlp的寒假实习
  • momenta的高精地图开发的春季实习
  • 趋势科技的开发岗位实习
  • 图森未来的基础架构 实习
  • 华泰证券 项目实习
    没敢投任何的大厂,那个时候我还是比较的菜的,怕菜的被拉黑。家如果有机会还是可以尝试寒假或者早一点的实习,会在之后都比较有优势。

目前我暑假实习基本告一段落,拿到的offer如下:

  • 阿里云 存储团队 (杭州)经历5面
  • 腾讯 csig 后台开发 (上海) 经历4面
  • 头条 基础架构(北京、上海 ) 经历4面
  • 网易互娱 基础架构 (广州) 经历3面
  • 快手 基础架构 (北京)经历4面
  • 依图 后端开发 (上海)经历3面
  • 远景智能 后端开发 (上海) 经历3面
  • 虾皮科技 c++开发 (深圳)经历3面
  • 商汤科技 云平台开发 (北京)经历3面
  • 华为云 云计算 (杭州) 经历2面
  • 海康威视 大数据开发 (杭州)经历3面

整个面试周期就是从2月底到4月底这,两个月,别问我为什么拿到了这么多,我面也快面吐了。我个人的准备大概是在研一的下学期开始的,一直到研二上整整一年,后面我会从语言基础,数据结构和算法,基础知识点,项目上进行总结。

学习建议

虽然面试有很多的地方可以讨巧和临时补充以及团队合作。但是从个人的发展和未来成长来说,我觉得基础是最最重要的。我个人是看书为主结合一些自己感兴趣的项目会写着练练手如果没时间写就多看看别人的项目源码,然后就是写写博客记录一些自己遇到的问题和想法,很多的问题真的都有在面试当中被问到。

算法和数据结构

这一段算法大神或者ACM大神就不要看了,我怕被喷。
算法这块因为我没打过ACM,所以一开始恶补的很多,我建议先找一些比较靠谱的视频或者公开课去学会比较好,当然如果学校里的课还不错可以去上上,因为我的专业开的计算机相关的课非常少,我记得本科就一个c语言和c++程序设计。所以我是蹭了很多计科的课:比如数据结构,算法设计与分析这类的课。因为算法这东西还是需要时间去训练的。

课程

  • 浙大的数据结构
  • MIT的算法导论

刷题

当然如果你时间不够那么,牛客网左神的算法课你就不能错过了!非常系统和直接,就是干货,看过的都说好,说实话很多的面试题真的在左神的课上都有说道。我个人是在牛客网上看的,主要外面的资料都不全很多左神的加课都没有,如果经济允许的话最好还是几个人可以合买一份左神的课,毕竟小小的投资可以换来很大的回报。有需要激活码的可以私信我,买左神的课可以便宜很多。

学完了之后呢,当然就是刷题了,我不推荐每天没日没夜的刷,当然我也曾经这样过一天刷他个十几道,但是真的这样效率其实不高,我是建议在有一定题量之后每天随便找个时间写个1-2题就够了,难度就是leetcode中等就行了,推荐大家一些必刷的和一些我觉得还不错的oj:

必刷

  • 剑指offer 2遍左右够了
  • leetcode 所有简单和中等的
  • 左神算法课上的所有例题

个人推荐

  • hihoCoder :他会有一个每周周赛,都在周日,四道题。难度和代码量都还是挺大的,如果想去外企我建议多刷刷。
  • lintcode: 为什么推荐呢,因为他有个CAT模式也就是天梯上分,写一题上一颗星每题有时间限制15分钟或者30分钟,提交次数限制3次,没过会惩罚加题。总之非常适合面试模式。我是刷的停不下来。
  • codeforces:这个就偏比赛一点,但是很多新题都是这上面改的所以值得做一做。

再给一个我认为好的算法博客:

书籍:

  • STL源码剖析 : 各种数据结构的实现 都在里面 c++必问
  • 算法导论 :当个参考书吧,没事推个导,计算个复杂度还是有点意思的。
  • 算法竞赛入门经典

语言基础

我个人的话主要语言是c++,python,java也就是个javaSE水平,go入门。
我个人建议开发的话必选就是一门主流静态语言:c++或者java当然现在go也非常的火热。加上一门解释性语言:python
如果只懂得一门语言的话,竞争力会小一点。除非你是精通c++级别的,那当我没说,

c++学习建议

首先c++不容易学好,如果仅仅是学习语法或者写个算法题那几天就行了。但是用好c++还是需要很长时间的积累的。
多的不说了给大家推荐几本书:

  • C++语言的设计与演化
  • Effective C++
  • More Effective C++
  • 深度探索C++对象模型
  • c++ Primer :当个字典吧
  • STL源码剖析

只从语言本身而言就是多看多理解和多使用。没啥捷径就是干。
当你觉得语言不是问题的时候那么就可以去看看操作系统相关的以及高性能服务器相关的知识,这些应该是后台方向必点的技能点了。

进阶

操作系统

操作系统的话原理大家都懂,但是一问深的就不知道了,什么进程线程,调度算法,虚拟地址这些的问题早就被问烂了。但是如果直接去看linux源码的话,相信大家和我一样刚开始都是拒绝的。还是直接怼书吧,基础最重要:

  • 深入理解计算机系统 :经典!太好看了!
  • Linux内核设计与实现:不算系统但是算入门级别 建议和操作系统的课本结合一起看会更好
  • 深入理解linux内核 :讲的2.6版本的内核

建议先把上面的几本书看看,然后看自己的兴趣吧,如果对哪块很感兴趣那就去看源码看实现吧。

服务器编程

服务器编程其实就是建立在对linux的系统调用的理解以及网络协议的理解上的。如果这两块的知识比较好的话就可以动手实现一些简单的服务器,然后对比别人实现的,压测一下性能啥的,可以作为一个还不错的个人项目,我其实也就是这么做的。

  • Linux高性能服务器编程
  • UNIX 环境高级编程
  • UNIX网络编程卷1

计算机网络

计算机网络的话我是看的浙大的计算机网络课程,主要就是专注于协议的原理和分层模型,因为东西还是比较的琐碎的,建议大家多做些笔记写一写文档。不论对于记忆还是日后的复习都是很有用的。

  • 计算机网络原理:自顶向下方法

Python建议

Python本身的学习成本不是很大,但是如果你是java或者c++出身的话,在语言特性上可能会需要适应,如果用Python按照c++的逻辑写代码那将会是又臭又长,不简洁。
推荐大家看看这本书:

  • Effective python :https://book.douban.com/subject/26709315/
    我目前正在读的一本书 非常好的解释了一些细节,以及Python的一些和其他语言不通的特性,如果将这些东西熟悉将会让你事半功倍。
    其次呢可以看看廖雪峰的Python入门教程,如果不想花特别多时间的同学基本过一遍这个就可以开始写Python代码了。当然,所有的学习都不是一蹴而就的,当你想走捷径的时候,你总会遇到困难,所以关于Python的使用以及涉及Python解释器,底层实现方面的知识,当遇到了疑问的时候可以深入研究。

数据库

对数据库的理解也是必不可少的。如果是去大厂的话光会一个mysql基础可能是远远不够的。
像是Redis,MongoDB等非关系型数据库也是需要好好的掌握的。因为在实际的项目当中会经常使用Redis
作为缓存,包括其分布式集群的原理等等都是面试的重点。
MySQL的话建议可以看看,mysql必知必会,原理比较少但是使用细节还是挺多的,适合先过一遍。其次就是可以看看尚硅谷的mysql高级部分的课程,关于mysql的查询优化以及其他的高级特性都是书本上很少有的。很多的数据库难题都是这上面出现的。
Redis建议看看Redis设计与实现这本书,非常详细的讲了Redis的底层数据结构,包括其复制,集群部分也做了很好的解释。然后的话可以再去理解一下分布式的Raft算法,Gossip协议等等。
数据库就是多用多学,个人建议用学一学docker,以后配置这些服务非常方便,也是现在云计算的一个很重要的组件。

云计算

为什么会接触到云计算其实也是之前实习的时候重要做的项目,主要就是关于docker容器化以及Kubernetes容器编排框架。
docker在容器化的贡献是巨大的,也可以为我们在日常配置服务过程当中减去非常大的麻烦,不论是工作中还是平时自己的使用都是非常友好的。
如果是走这个方向的话对于docker以及k8s是必修的,建议看看下面的书或者博客:

  • Kubernetes权威指南
  • docker源码剖析
  • 极客时间:深入剖析Kubernetes专栏

面试技巧

大大小小的面试我也是经历了大几十轮了,总结下来就是要有策略,要有总结,以及要有信息
首先就是策略,一开始最好不要立刻投大厂,因为一上来就面大厂的话容易崩,刚开始面的人少所以难度也会相对高一些,有的还凑合的会被大厂当备胎,很难受的。其次就是能内推就不要走官网,能免笔试免笔试,不是说笔试难度大还是咋地,这玩意其实是玄学,因为你说你一个人做呢没问题,大神嘛无所谓但是你保不齐别人是一个实验室或者一个班级的人在做,如果遇到点坑的题目,你交代了,别人合作做出来了那你被挂能怪谁呢。还有就是如果大家也是合作做题的话,oj的查重或者作弊系统的判别现在越来越严,如果保不齐你被抓到了,可能就被企业拉黑,然后你还不知道,后面怎么投都没面试机会这是最惨的。还有就是大家都是一起做的,然后分数也差不多,但是别人接到了面试而你没有,我就遇到了这样的情况,就很玄学我都怀疑是随机选的人面试。反正就是笔试有风险,大家还是抱紧学长学姐的大腿,能走内推就内推。但是内推之前还是需要能够了解一下这个部门,大概是做什么的,hc的数量以及技术氛围,这点其实很重要,因为一旦进了流程,你反悔就来不及了,如果过了之后还想换部门那只能重新面试,再走一遍别说多恶心了。其实哪个部门最好或者哪个部门最有前景啥的这些问题,真的很难了解的非常清楚,我就纠结过很久很久,这种事情找不到最优解的,不过还好对我而言现在只是实习。
其次就是面试总结了。面试过程当中我建议大家开启手机录音。这样方便事后复盘,我是每次都会再听一遍自己的录音,不论是写面经还是琢磨自己的回答有录音真的方便很多。因为面试期间的紧张感会让你很难用最好的描述回答清楚问题,那么事后总结就会让你在下次遇到同样的问题的时候回答的更好。如果说大家有小伙伴在一起战斗的话那么经常互相分享经验真的会决定你能不能拿到offer,大家的经验会让你迅速成长,说实话面试实习这2月也是我成长的最快的一个阶段。
最后就是信息。在面试结束的时候,一般面试官都会问:你有什么问题问我。这个时候我个人最经常问的就是这个部门正在做什么,如果我进来我会接触到什么。面试官才是最了解这个部门的人,只有从他的口里得到的信息才是最真实也是最有用的,通过他的回答你会了解到这个部门做的产品或者是使用的技术,对于自己的学习方向也有很大的指向作用。其次,我会问的问题就是:您认为我在哪些方面可以提高自己。这个问题其实从侧面可以让你获取你此次面试的结果。因为这个问题不像问我面试能不能过这样直白的面试禁忌。一般面试官会指明他认为你的缺点,如果他在说的时候带有建议的语气以及对你其他方面的肯定那基本是十拿九稳了,再不济有大佬对你的一个建议指导对你自己查漏补缺也是非常有帮助的。说下我自己的经历吧,我在面阿里云3面的时候,那位p9大佬在我问完这个问题之后不仅肯定了我的一些表现还给我推荐了2本书建议我去阅读,这真的是非常良好的面试体验。

最后

这个帖子我会在以后继续的更新,我目前还在慢慢的职业摸索阶段,也还是一个菜鸟而已,如果有任何错误的地方也欢迎大家指正修改。
以后的经验我也会更新在这个帖子里,希望对大家有帮助!
然后欢迎大家加我微信一起交流,共同成长。

ps:

有想加入字节跳动基础架构的同学可以找我内推呀 大量实习和提前批HC!(请搜索基础架构才是~)
直推部门老大直接面试无笔试:可以把简历发送至zhuhaochuan.snow@bytedance.com (注明实习还是校招,岗位)
投递链接:https://job.toutiao.com/s/JNAvu8A
内推码:QDZH4QP

图片说明

#后端学习路线##阿里巴巴##腾讯##面经##C++工程师##实习##学习路径#
全部评论
个人推荐一下左神的算法课,必须强推 如果是算法小白那么我推荐大家看看初级和中级。 如果是想在面试当中进一步十拿九稳的话!我推荐高级! 当然各位如果使用我的激活码的话!!!! 哼!! offer还不手到擒来!!! 算法高级班:优惠码:AfzdZXv:https://www.nowcoder.com/courses/semester/2018algorithm-promote 算法中级班:优惠码:ANQObcV:https://www.nowcoder.com/courses/semester/2018algorithm-medium 算法基础入门班:优惠码:A0S1Flg:https://www.nowcoder.com/courses/semester/2018algorithm-base
点赞 回复 分享
发布于 2019-05-13 21:30
火钳刘明
点赞 回复 分享
发布于 2019-05-09 00:12
大佬没微信号了
1 回复 分享
发布于 2020-09-20 10:57
您好,好有机会进群交流吗,微信号好像已经没有了
1 回复 分享
发布于 2020-06-16 14:51
最近在写一些知识点的总结 欢迎大家支持 hhhh 向大家推荐《基础架构面试进阶指南》 https://xiaozhuanlan.com/ZHC24?rel=zhc
点赞 回复 分享
发布于 2019-09-02 12:59
c++ 书单可以看这里:https://www.nowcoder.com/library/book-list/1275
1 回复 分享
发布于 2019-05-15 18:45
欢迎加群 一起成长和分享经验!
点赞 回复 分享
发布于 2019-05-14 13:47
欢迎大家加微信群:
点赞 回复 分享
发布于 2019-05-09 15:47
会火🔥
4 回复 分享
发布于 2019-05-09 03:03
m
点赞 回复 分享
发布于 2023-10-15 17:07 陕西
求简历啊 基础架构分布式存储 块存储 求社招和实习简历: 有c++ 或者存储背景 且感兴趣的同学 欢迎来聊 HC 很多!
点赞 回复 分享
发布于 2023-02-21 16:26 上海
感谢老哥的帖子!太强了。另外想问一下现在前端是不是比后端更好进大厂,更好拿sp ssp啊?我目前英硕在读 人在国内 现在在做golang后端实习(偏云计算) 之前还有一段Android大厂实习 想问一下前端、客户端和后端怎么选比较好呢?有没有建议呀?
点赞 回复 分享
发布于 2021-11-19 11:24
大佬现在还能加微信或者qq群吗
点赞 回复 分享
发布于 2021-08-07 15:01
大佬,为什么放弃算法了啊,现在也在这后台和算法两者之间纠结。
点赞 回复 分享
发布于 2021-06-23 13:37
大佬,你好,请问一下微信群进不去怎么办哇?
点赞 回复 分享
发布于 2021-03-31 08:08
大佬厉害
点赞 回复 分享
发布于 2020-10-14 18:43
菜狗
点赞 回复 分享
发布于 2020-08-10 21:04
求一个图森未来的内推码😍
点赞 回复 分享
发布于 2020-07-28 16:36
点赞 回复 分享
发布于 2020-07-18 12:40
6666
点赞 回复 分享
发布于 2020-07-10 22:34

相关推荐

03-04 16:42
已编辑
东莞理工学院 Java
面试官基本上都是用安卓的术语去问JAVA相关的基础内容,不断的对一些基础内容进行深挖和对比,再结合着业务场景去问,有一些内容我感觉比较偏,回答出来了2/3左右,但是安卓相关内容回答的不是特别好1. 介绍一下你对安卓开发、安卓研发从工程角度的理解。2. 你对转到安卓开发这个岗位的认知是什么?3. 安卓平台有没有存在壁垒、需要深入经验才能做好的技术方向?4. 说说 ClassLoader 的整体架构和理解。5. ClassLoader 在安卓里有哪些应用场景?6. 利用 ClassLoader 怎么实现热修复?原理是什么?7. 反射在安卓上的使用场景、额外成本有哪些?能不能大规模用?对包体积、启动速度有没有影响?8. volatile 关键字能解决哪些问题,不能解决哪些问题?9. 双重检查锁为什么要加 volatile?10. synchronized 锁升级过程是怎样的?11. 锁竞争在安卓端会不会造成用户可见的卡顿?12. Protobuf、JSON、ProtocolBuffer 这几种序列化对性能、包体积的影响和权衡。13. 安卓里 NDK 有没有了解过?14. 说说对 Activity、Fragment 的理解。15. 协程怎么取消?16. 协程里 Job 存在的意义是什么?17. Kotlin 相比于 Java 有哪些独有的好用优势?18. 什么是密封类(sealed class),优势是什么?19. by lazy 和 lateinit 的区别是什么?20. 说说你对 WebSocket 协议的理解。21. 安卓数据库(如 SQLite)的索引是什么,底层结构?22. 安卓里内存泄漏是什么?有哪些例子?怎么排查和治理?23. 最长无重复子序列。个人感想:怎么说呢?感觉还是比较可惜吧,感觉离大厂最大的一次机会了,但是安卓相关的内容有些确实不知道,感觉到面试官是结合着JAVA去提问一些安卓的内容,然后想问一些相似的场景,但是比较可惜了,有些内容确实是不知道,也没有接触过安卓开发,还是好好沉淀,准备一下吧
查看45道真题和解析
点赞 评论 收藏
分享
评论
269
2435
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
3637次浏览 45人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16869次浏览 137人参与
# MiniMax求职进展汇总 #
25053次浏览 321人参与
# 春招至今,你的战绩如何? #
15402次浏览 142人参与
# 你的实习产出是真实的还是包装的? #
2934次浏览 52人参与
# 沪漂/北漂你觉得哪个更苦? #
1413次浏览 40人参与
# 米连集团26产品管培生项目 #
7226次浏览 226人参与
# HR最不可信的一句话是__ #
1066次浏览 32人参与
# AI面会问哪些问题? #
926次浏览 22人参与
# 你做过最难的笔试是哪家公司 #
1201次浏览 21人参与
# AI时代,哪个岗位还有“活路” #
2781次浏览 51人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152881次浏览 889人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7990次浏览 43人参与
# XX请雇我工作 #
51154次浏览 171人参与
# 简历第一个项目做什么 #
32120次浏览 359人参与
# 简历中的项目经历要怎么写? #
310994次浏览 4262人参与
# 投格力的你,拿到offer了吗? #
178311次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
76961次浏览 375人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187576次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64632次浏览 871人参与
# 如果重来一次你还会读研吗 #
230002次浏览 2011人参与
# 正在春招的你,也参与了去年秋招吗? #
364304次浏览 2641人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务