我的秋招:从双非到上岸腾讯

历经两个月的秋招总算是结束了,从七月份开始复习秋招相关知识,到八月多开始笔试、面试,到九月下旬的秋招结束,在笔试面试的这两个月里,还是挺累的。这篇文章就说说秋招这段时间的收获以及给对于明年要参加秋招的同学的一些建议吧。

一、最后去的公司

对于我来说,这次秋招算是满意的吧,找到了想去的城市(深圳)以及公司(腾讯),我投的岗位都是后端开发。在之前春招找实习的时候,人生的第一次献给了腾讯,那时候没啥面试经验,感觉傻傻的。

在秋招,腾讯也是我第一家面试的公司,感觉还是挺有缘的,8 月 14 号接到了腾讯面试官的面试预约,当时突然有点后悔,感觉自己应该晚一点投,因为腾讯的提前批是 9 月 12 号才结束,正式批 9 月 26 号开始。感觉当时还有很多没复习,想晚一点再面试。后来,我才知道,我错了,真的是越早投越好,千万别等到正式批或者提前批即将结束才投,那个时候投,真的会错过很多机会(至于为什么,后面会说)。17 号开始了秋招的第一场面试,到 8 月底面完了所有流程,9 月下旬出才收到面试结果。下面谈谈这次秋招的感受吧。

二、关于我

可能没看过之前我的文章的,很多人还不知道我。这里我简单介绍我的背景吧。

我今年大四,大一学的专业是木材科学与工程,后面转专业到软件工程,老家是广东的某个 5 线城市,在广州这边读大学,至于是哪个?学校里有养神兽的就是了。

可能看我文章的读者中,很多人觉得我很厉害,说实话,其实我还是挺菜的,在校期间没有参加过任何比赛,没有拿过任何奖金,扎心了。所以这次能够拿到大厂的 offer,我觉得得归功于我之前对计算机基础知识以及算法学习,所以对这两方面,个人觉得比大部分同年级的人强,想拿大厂 offer,基础知识 + 算法必须重视。

还有就是,我有一个非常重要的点,就是能够把各类知识串联起来讲,当时入职腾讯时,面试官问我是不是面霸,因为面试官问的东西,好像我都能行云流水去扯一样,当时面腾讯时,第一面聊了 90 多分钟,喉咙都聊痛了。

三、基础 + 算法 + 项目

1、关于基础知识

秋招的竞争还是非常激烈的,如果你想要在秋招中拿到满意的 offer,那么从现在开始,就要把计算机基础(操作系统、数据库、计算机网络)、算法学好,特别是算法,不容易临时抱佛系,是一个长期积累的过程。

对于大厂,比起项目,它更加主要你的基础能力是否扎实吧。记得腾讯一面的时候,面试官就哈希表这个问题问了我有二十分钟,从刚开始让我用 C 语言来设计一个哈希表,后面问我如何设计 hash 哈希,怎么样设计更高效,怎么样设计能够最大程度减少碰撞,是否要动态扩容等等。一系列问题,我都按照自己的理解回答了,有些引用 redis 、 hashmap,并且我都举了一些例子。这个问题回答之后,感觉面试官有些惊讶,问我是否研究过 redis 这些框架的源码等。感觉这个问题回答之后,面试官对我更加感兴趣了。

所以我觉得,对于秋招,理解常见数据结构的相关设计,为什么要这么设计,实在是太重要了,可能很多人都知道链表、树、哈希表等,但被深入一问,可能就不懂,不知道为什么要这么设计了。

这次秋招,被问的最多的就是操作系统、计算机网络、MySQL了,虽然我面试的是 Java 工程师,但是很多公司并没有问我 Java 相关知识(ಥ_ಥ),不过这和一个公司的技术栈相关吧,像我面试的 腾讯,字节跳动,shopee,小米等,公司的主要开发语言不是 Java,所以这几个公司的面试,一个 Java 相关的知识点都没有问过我,反正我是哭了。不过这并不影响我的回答,因为这些计算机基础知识,我很早就在准备了。

所以对于要参加面试的同学,千万别把自己吊死在某个语言上,语言只是一门工具,而应该多花一些时间在一些通用的知识上,例如 sql + Linux + 算法 + 操作系统 + 计算机网络

当然,如果公司的主要语言是 Java 的,还是会问很多 Java 相关知识的,例如我面试京东,蘑菇街,阿里的时候,就问了很多 Java 的知识,像京东,蘑菇街,cvte 就没问过我计算机网络、操作系统这些知识。

所以说,不同公司,侧重点还是不大同的,但是,对于 BAT 这些大公司,基础知识 + 算法 是必问的。

2、关于算法

如果算法学的差,会错过非常多非常多的面试机会(学历好除外),会很难过笔试这一关,秋招的笔试,反正我一直被虐,感觉笔试的难度还是很大的,自己一个人做笔试,想要全 a,还是非常难的。笔试题目一般是选择题 + 编程题,但有些公司没有选择题,全是编程题(不过现在提前批不用笔试了,直接面试)。不过无论是否有选择题,编程题做的差,就凉了,一般编程题占60%的分值。

反正我有挺多笔试环节就挂了的,有些我编程题全 A了,然而并没有收到面试通知,估计是我学历一般吧,有些公司还是看学历的,毕竟面试成本挺高的。

有人说,leetcode 的前 500 道题刷了,笔试稳吗?说实话,还真的不稳,得看你的掌握程度,像 leetcode 那些题,一看就知道是什么题型,应该用哪种算法。而笔试题完全不一样,很灵活,可能是多种算法的结合。而且,有时候题意还得看十几分钟才看懂要我们干嘛。不像 leetcode,就几十个字,简单明了。反正 leetcode 中挺多 hard 级别的题我都会做,不过笔试的难度有些并没有 hard 高,却做不出来。因为时间也是挺紧的….大概一道题只有 30 分钟的时间给你做吧。

所以,那些经常刷 leetcode 的,我的建议是,如果你要拿下笔试,那么应该彻底搞懂这道题的算法思想,力求最优解,但是说实话,很多人的情况是,面试中的算法都没搞好,笔试中的就更加不用说了,在时间不够的时候,这里还是建议别再笔试花太多时间。

对了,还有一点,建议大家在刷题的时候,直接在网页那里打代码,别跑到 IDE 里写了,因为面试手撕代码的时候,并不会给你 IDE 写,而是在笔记本手撕算法,如果你不熟悉的话,估计代码会经常写过,而且排版可能也会很乱。反正我春招面试阿里的时候,让我在笔记本做算法题,我哭了,调用库函数的时候,方法名啥的全忘了怎么写,而且代码也老是写错。因为平时在 idea 会提示,在笔记本没提示,特别不习惯。

最后就是,关于算法,笔试我们不做要求,面试则至少刷完常见的 easy + medium 的题的,帅地基于《剑指Offer》也整理了一份攻略,你们可以跟着我这份攻略刷完大概 70 道高频题吧:对于目标是中大厂的,这应该是最低要求了

3、关于项目

基础、算法很重要,进大厂缺一不可。那么对于一个参加秋招的学生来说,项目重要吗?

答是非常重要,我秋招最大的弱点是项目经验不好,这也让我在很多公司直接一面就凉了。我自己没有脚踏实地着去做一个项目,都是看视频速成的,而且自己也没有好好跟着视频打代码,自己尝试去做一个项目,和跟着视频去做,还是有所不一样的,毕竟跟着视频,很多东西不是自己想的,所以不深刻。

不过后面为了弥补自己的软肋,也是看了很多书,掌握项目中的一些理论,特别是场景题,感觉这块我答的还是可以的,主要得益于我对很多原理的理解,可能让我更加有思路去分析一些东西。

记得蘑菇街一面的时候,面试官一上来就让我讲项目,然后我就讲牛客网学的哪个项目,面试官让我讲线上的项目,别讲练手的项目,我哭了,因为我没有线上的项目,因为我的暑假实习,实际上就是去培训,并不像其他人去公司实习,可以参与到完整的项目流程。这个时候,我就随便说了培训期间水的一个项目(几天时间快速水的),然后我就被面试官怼死了,,,然后就没有然后了,一面挂。

然后节点 cvte 面试的时候,一面二面全程怼项目,全是我的弱项,我也哭了。可以说,秋招我最大的弱点是项目,多次被怼告诉我,秋招,一定要有一个项目,这个项目不需要多高端,但需要你真正动手做过,研究过

所以说,项目非常重要,可以打打增加面试的成功率,特别是中小型公司。当然,我觉得对于有些大厂,如果基础理论非常强,算法也可以,也一样能进,因为有些公司并不看重你的项目,例如我面试过的腾讯,字节跳动,shopee,小米等,基本没怎么问项目(可能对我的项目不感兴趣,哈哈)。

不过在未来,我能预期到,项目实践能力会越来越重要,因为现在网上八股文太多了,大家早早准备,

4、总结

所以我觉得,只要把基础打好,算法学扎实,并且弄些项目经验,进大厂还是有机会,当然,竞争越来越大,进大厂也越来越难,所以也需要足够的决心去做,可能才有机会进大厂,毕竟毕业年薪就是三四十万,确实非常不容易,如果认真卷三年能够进大厂,还是值得的,对于普通家庭来说。

不过我觉得随着网上八股文越来越多,项目经验会变的越来越重要,进大厂不进要能被八股文,还得融会贯通,让面试官觉得你真的理解了,总之就是,要多思考吧。

发表回复

后才能评论

评论(3)