我的互联网转行之路



牛客的编辑器不好用,图片就不传了,想看更详细的,请关注公众号:听涛记

1.写在前面

2019届的秋招已近尾声,目前互联网方向拿到的offer有百度,字节跳动,美团点评,网易,岗位均为后端开发方向。距离毕业答辩还有点时间,写写我的互联网转行之路。
先介绍一下自己的背景,北航本硕,学习成绩中上,有两个学科竞赛奖项,一篇SCI。
计算机方面,没有实习,只有一个略微相关的项目能写到简历里面。专业知识全靠自学,所以过程也异常痛苦。准备时间从2018年寒假开始,到2019年八月底结束,前后跨度不到一年。
秋招期间,互联网总共投递20多份简历,笔试8次,面试9次,5家单位给出明确录用意向,最终的结果比自己的预期理想。



2. 说说路子

对于转行互联网的同学来说,最缺的是环境。周围没有战友,所以很多信息需要自己去摸索,很容易走弯路。因此,我首先从整体的角度,按照时间轴说一说我的历程。

研一期间自学了部分算法,主要用C++做一些信息学竞赛的题目,所以对于后来的笔试,我基本可以拿到一个进面试的分数。

研二上我以最快速度发了小论文,从寒假开始系统地看书。由于我只会C++的基础语法,所以首先看了C++的继承派生,封装,多态,模板等内容。刚开始自学效率很低,很多知识看过就忘,因此后面开始做例子,记笔记。一本书看下来,做了二十几页的笔记,大概花了3周时间。记笔记能有效避免遗忘,方便总结和复习,但是大大降低了速度。同时,没有重点地看书,很容易混淆一些概念。当时也硬逼着自己,才勉勉强强看完。

转眼到研二下,由于算法方向注重数理基础,对工科生来说是一个优势。周围的同学大多选择了算法,我因此也跟风看了一点机器学习相关的书籍,还在网络上找各种实战视频对照练习。三月末各个大厂开始招暑期实习生,我尝试投递了蚂蚁金服,字节跳动,百度等公司。由于准备的并不充分,基本都是一面凉。原因在于,一方面我大大低估了暑期实习面试的难度,准备的非常有限。另一方面,暑期实习往往与转正挂钩,竞争非常激烈。而我对此毫无心理准备,而且一味地追求大厂。暑期实习的失败让我一度想放弃转行。

四月份到六月份一方面忙着毕设,一方面实验室活也比较多,一直没能静下来看书,更没有机会如室友一样去找日常实习。六月初中秋节回了趟家,好好地复盘了一下,觉得不能放弃。回校后,继续拿起书本。这时,我放弃了之前读书记笔记的做法,开始跟着视频来走,速度和效率都好了很多。

七月份实验室搬到沙河,我也进入暑假模式。每天除了下楼买点吃的,就宅在宿舍学习。在七月下旬终于把邓俊辉的《数据结构与算法》学完,八月上开始刷《剑指offer》和Leetcode。虽然《剑指》只有66道题,但非常经典,其中链表、二叉树相关的题目在面试中都考烂了。

七月的大运村原本按部就班往下应该看算法书了,但是看了牛客上提前批的大佬履历,以及室友对今年算法岗的判断,我觉得在人人深度学习的今年,自己既没有专业背景,也没有实习项目加持,总不能靠看几本算法书就拿到offer。因此,我决定转向后端开发,既能发挥编程的优势,竞争又相对温和。

于是,我从八月初开始看操作系统和计算机网络。操作系统看的学堂在线上向勇的公开课,计算机网络看的韩立刚的教学视频。由于时间紧迫,这两个都没能好好地跟着做实验,只能理解一下原理。八月底快面试的时候,看面经发现对Linux和数据库等方面知识考查的也比较多。因此,利用一周的时间入门了数据库,熟悉了Linux的基本操作。

九月份开始面试。第一个面试是9月1号上午的网易游戏研发。那个时候我连OSI七层模型都说不全,但所幸C++相关的都回答出来了,过了一面。当天晚上腾讯视频面,面试官貌似在加班,我敲代码的时候根本不看。代码写完后,面试官基本按照C++,计算机网络,操作系统的顺序提问。当问到poll和epoll的区别时,我坦言不会,面试官直接脸就沉了。果然,面试结束后我的校招进度条就灰了。

八月底搬到了沙河9月2号上午面美团。经过昨天的两场,我面试心态平和了许多。美团一面问的很全,但也很基础。由于简历上没什么可以聊的,于是开始考算法题。一共问了五道,前四道都是剑指offer上的,第五道是一道类似于整数拆分的动态规划,顺利写完了代码。面试官看时间还有剩余,于是问了一道概率题。当天下午,美团HR通知我一面通过,约了9月5号的现场二面。

9月5号的美团二面在望京。二面主要还是考察算法基本功,如手写一个堆排序。不同的是,面试官问了项目。项目背景是什么;有哪些挑战;你在完成项目的过程中起了哪些作用,有哪些创新点;如果再给你一次机会,你会怎么做。这四个问题是关于项目的基本面试套路,因此简历里面有相关的项目一定要提前组织好语言。

九月中旬做了一些笔试,如滴滴,京东等,一直没有消息。接着投了几个外企,但外企招人很少,且竞争激烈,面试机会都没拿到。那段时间有点沮丧,因为投一个挂一个,甚至对自己产生了怀疑。

9月21号字节跳动给了面试机会,可以选择视频和现场面。我选择了现场面,而且特意选了9点的第一批。我觉得现场面的效果更好,而且面试官会对第一个面试者一般要仁慈一些。

字节效率很高,一上午走完了三面。一面是广告推荐的后端,带着我写了几段Linux的指令,然后考了一道括号匹配,顺利通过。二面是互娱直播,上来问了死锁,然后考了一道链表排序。我先无脑用了哈希排序,面试官马上问能不能原地,我表示要想想,后来在提示下写完了代码。结束后,面试官说待会儿加你微信,我心里窃喜。

三面是财经部门,面试官看上去年纪较大,部门Leader的感觉。问了操作系统中的fork过程,向量为什么要加倍式扩容。接着开始考设计题,分析红包的提现过程,如何在不加密的前提下保证安全,提现的瞬间服务器崩溃怎么处理等等。由于没有经验,我只能硬着头皮往数据库相关的方向去靠,在说的过程中涉及到一些知识点,面试官会顺着往下问。最后问了发展规划,有意思的是,当我表示想去一个技术强的部门时,面试官笑着说那你应该去蓝翔啊。

面完后,HR让我去吃了午饭,很丰盛。饭后,我当面问了HR结果,HR告诉我面试通过。这是我秋招第一个面试通过的公司,也是体验最好的一次面试。

9月22号下午面百度。由于过了字节,所以百度面得比较佛系。一面是基础知识和难度较低的算法。面试官非常友好,在我回答完之后会立即给予反馈,因此我越答越放松,顺利过了一面。

二面面试官来自百度地图,这是整个秋招最有压力的一场面试。上来就问B+树,然后让我在纸上手写B+树,我直接懵了。他看我不动弹,说那写一下二叉树吧,包含增删改差。我写了半个小时,马马虎虎。写完给面试官看,他淡淡地说了一句怎么没有平衡啊?我心里想你之前也没讲啊。然后开始考设计,题目是不同的终端登录微信时,数据库怎么处理。比如PC端登录需要手机确定,不同的端登录会将其他端踢下线。这种题目我自然是陌生的,于是又是硬着头皮上。整个过程中面试官不给我任何确定的反馈,比如会给你看似二选一的问题,最后告诉你其实两种都选。因此面完十分心累,还好给了过。三面是部门主管,问了InnoDB和MyISAM的区别就结束了。

一周后,收到百度录用的短信和美团的意向书。9月28号在北京面了网易的二面,当天晚上发了offer邮件。9月29号现场集中发带薪offer,但是只给了初级游戏研发工程师。在我表示已经被百度和字节录取后仍不能调整,于是现场拒绝了offer。

至此,互联网秋招结束。

3. 说说干货

下面细致地讲讲怎么准备。从个人经验出发,可以分为语言,数据结构与算法,操作系统(包括Linux系统),计算机网络,数据库(关系型和非关系型)这几块基础内容。后续可以继续看系统设计,工具等进阶内容,这个可以根据岗位的需要有针对性的看。前一部分的基础内容资料网络上都很成熟,而后一部分的进阶内容则比较分散,我主要看博客或者GitHub上的总结。

语言我选择的是C++。原因有三,第一我本科学的C语言,C++的语法与C很像,学习成本低;第二我在做算法题的时候,官方语言是C++,所以一脉相承;第三个人觉得C++较为底层,对代码的细节要求较高,对代码基本功有好处。在刷Leetcode的时候,看到很多“高手”用Python一行代码AC来显示自己的水平,我觉得这样虽然走了捷径,却耽误了基本功的建设,这在面试的时候无疑是吃亏的。事实也正是如此,有的人Leetcode刷了不少题,但是面试的时候连快排都不会写,自然一面就挂了。

C++的学习,我建议跟着学堂在线上郑莉老师的课去学。郑老师的课讲的清晰易懂,例子充分,能很好的将容易混淆的概念讲清楚,但是多态的内容有些欠缺,需要补充。我不建议上来就抱着C++Primer啃,人都有畏难情绪,都容易半途而非。C++Primer对各方各面讲的很全,但是过于厚重。我先跟着视频学完了一遍,然后重点看了C++Primer关于多继承和多态的内容。由于时间比较充足,所以做了笔记,在面试前复习非常有效。

数据结构和算法,其实是两块内容。我先学的算法,然后学的数据结构。算法总结来看,包括分治,搜索,贪心,动态规划这几个大的方面。分治如二分,归并,快排这些;搜索包括深度优先搜索,广度优先搜索,是算法题最基本的方法;贪心和动态规划的题目都比较有难度,一般很难直接想到思路,所以必须要有一定量的题目积累。做题除了牛客网和Leetcode,洛谷这个网站也可以试试,搞竞赛的中学生提供了丰富的题解。

数据结构方面我是跟着学堂在线上邓俊辉的课来学。邓的课非常精巧,获誉无数,六纬空间可以下载。数据结构总结来看,包括栈,队列,链表,向量,堆,树,图,集合(并查集),哈希表等。其中链表,堆,树(重中之重),哈希表是重点。图虽然经典,但是个人感觉考察的不多,知道最短路径基本就可以了。这部分题目看《剑指offer》。但相比题目,面试官更喜欢考察某种数据结构的实现,如用数组实现链表,写二叉树的接口,用数组实现堆,并查集等。比较有挑战性的是实现红黑树,B+树等,但属于极少数。

操作系统我看了多个版本,最后还是觉得学堂在线的向勇讲的最好。课程包含讲解和实验,由于时间有限,我只学了讲解的部分。操作系统的主要内容有:进程与线程,死锁和内存管理。进程是重点,包括进程与线程的概念与区别,进程控制,进程同步,进程通信等问题;死锁面试基本都会问,但是内容不多,主要围绕是什么,为什么,怎么办三个方面;内存管理主要是段页式存储,虚拟内存,页面置换等方面,这个找一篇总结性的博客看懂基本就行了。

操作系统另一个方面是Linux系统,是面试的一个重点。这方面我仅仅入门,所以面试的时候非常吃亏。Linux系统相关的实战课网上很多,如果能够学完且有一些作品,即使是造轮子,面试也会非常加分。

计算机网路我看的韩立刚老师的课。课程虽然久远,但是非常经典,B站和六纬上都有资源。韩擅长用画图的方式来讲网络关系。内容基本按照TCP/IP五层模型展开,即物理层,数据链路层,网络层,传输层,应用层。前两层了解即可,网络层必须要掌握IP协议,传输层包括TCP和UDP,几乎面试必问,考的也比较细致,比如TCP的可靠传输,流量控制,拥塞避免,甚至报文格式。因此,必须理解工作原理。应用层主要是HTTP,问的较多的是get与post的区别。韩的课由于比较老,没有讲Socket和I/O模型,这部分可以看b站上的黑马程序员。I/O模型主要考阻塞/非阻塞、同步/异步五种I/O模型,尤其是I/O多路复用中poll、select和epoll的区别。

数据库看的比较匆忙,主要分为关系型数据库(MySQL)和非关系型数据库(Redis),个人觉得MySQL是重点。关系型数据库的基本内容包括:ACID属性,数据库的基本概念(如范式)和基本操作指令(虽然一般不会直接考察写指令),隔离级别,锁和并发一致性问题,存储引擎InnoDB和MyISAM,索引(重点),切分,主从复制和读写分离等。总的来看,数据库需要花充分的时间去学习。这部分我为了快,直接看的Github上的总结。非关系数据库看的较少,重点看了持久化(RDB持久化和AOF持久化),同样也是基于Github。在此,我建议还是跟着视频课程走,多做点题,这样学的比较扎实。

最后,我看了一点缓存,集群,分布式方面的总结,便匆匆忙忙开始秋招了。看到这里大家会发现,上面的几块其实就是计算机考研的课程。大家学完了这些基础知识,根据面经实时调整和补充一些知识点,基本就可以去面试了。如果想要拿到SP,需要再做更多的积累,这方面我没有经验,看以后能不能找到朋友给写一写。

4. 写在最后

秋招就像一场考试。竞争者来自全国各地,科班与非科班,本硕博都有;企业有上市公司,有独角兽,也有初创企业和国企外企;时间跨度长,从七月提前批开始,直到现在尚未结束;变数多,企业和个人都是双向选择。因此,经历过秋招的人都会脱一层皮。未来方向的迷茫,被拒绝的沮丧,等待结果的焦虑,拿到offer的喜悦和选择的纠结,未来发展的担忧,这些大部分人都或多或少会经历。也正因为如此,我才决定详细地写下我的历程,为后来者,特别是那些迷茫的转行者,提供一个真实的案例。

下面总结五点经验:
  • 转行过程中最大的敌人是自己。很多人因为看不到希望或者短期的失败,而早早放弃。秋招很漫长,如果做好了选择,那就坚持下来。
  • 尽量有实习经历。暑期实习不行就日常实习,只要有机会,就去实习。相比秋招来说,实习面试难度不大。找一找校友内推(牛客网上就很多),大厂不行就小厂,只要方向对,多大的公司都能学到东西,都能写到简历里面,成为优势。如果由于客观因素无法实习,那么自己多看源码,多造些轮子也是可以的。
  • 找到自己的优势。实习,相关项目,学习成绩,论文专利,各种奖项,包括扎实的基础能力都可以成为你的优势。每次面试的自我介绍环节,便是你向面试官突出自己优势的最佳时机。优势越多越好,但是没有也不必沮丧,没有硬通货就提高软实力,优秀代码能力和语言表达能力也是闪光点。
  • 毕业最重要。无论秋招进展如何,毕业论文一定要按部就班地完成。对于有文章要求的导师或学院,一定要提前准备好。最好中期之前把该发的发了,这样才能腾出手来专心准备秋招,论文成果写到简历里面也能加分。
  • 尽量多拿一些offer。事实证明,部分企业会根据你手里offer的情况来定薪资,而且后端岗位网申的时候一般是统招统分,无法在第一时间确定部门。因此,多拿几个offer便于比较薪资和部门,在签三方的时候有更多的选择。




#字节跳动##美团##校招##C++工程师##面经##学习路径#
全部评论
感谢分享,收获良多😃
2 回复
分享
发布于 2019-12-05 00:39
你航的计算机也是中国南北横着走的主,膜了。
2 回复
分享
发布于 2019-12-05 00:43
阅文集团
校招火热招聘中
官网直投
求一波关注~扫码关注公众号,后面还有干货哦(´-ω-`)
1 回复
分享
发布于 2019-12-05 10:10
想知道楼主最后去哪儿了?
1 回复
分享
发布于 2019-12-13 22:47
原专业是啥呀
点赞 回复
分享
发布于 2019-12-05 10:35
点赞 回复
分享
发布于 2019-12-07 14:55
谢谢分享!很关键
点赞 回复
分享
发布于 2022-06-10 13:02

相关推荐

40 278 评论
分享
牛客网
牛客企业服务