我是在北京科技大学读的本科,计算机专业,后来通过自己的努力,很不容易考研成功,上岸本校本专业。研二的时候开始跟着Justin导师上算法课、做项目,去年毕业拿到了字节跳动的offer。想分享一下自己的经历。
我在准备考研之前成绩一直是中等水平,后来一个关系特别好的哥们保研了(没错,他是大神),我瞬间觉得自己的大学过得太混了(真的是没有对比就没有伤害),不能再这样堕落了。后来我就开始准备考研,在我备考的那段时间,我的哥们成功拿了字节跳动的实习岗位,时不时地就在宿舍刺激我一下,跟我说字节跳动的待遇多好多好。那个时候就很心动了,想着我必须得考上研,然后毕业去字节,省得他再跟我得瑟。后来我压线上岸了(太惊险了),因为研究生有三年,我又开始觉得工作离我很远,没太想去字节这回事,学习也是又开始混了,甚至排名还不如大学了。
研二的时候,我的哥们看不下去了,问我到底还想不想去字节,我说:“想啊,但着什么急啊,不是还有将近两年呢吗。”结果他跟我说,“你以为那么容易进吗?你要成绩没成绩,要项目没项目的。字节很看你的项目经历,你得留出时间找导师做项目吧?”然后他又帮我捋了捋之后的时间,一直说到了毕业。我一算,一方面我得快速提高成绩,一方面我还得找到愿意给我项目、带我的导师,之后还得写毕业设计,好像是真的没什么时间了。我有点慌,这才开始向我的哥们求救(他那时候也在忙自己的项目,我知道可能他并没有时间帮我)。他跟我说最近比较忙,可能没法帮我太多,但是当时实习的时候有个同事给他推荐了帮他进字节的导师——Justin导师。他的同事告诉他Justin导师很擅长算法题,有自己的一套技巧,而且还有很多大厂喜欢的项目。于是他把Justin导师推给了我。
我在Justin导师的算法群潜水了一段时间后决定报名算法班,才算是正式成为了Justin导师的学生。(只后悔没有早认识Justin导师!)后来在算法班我不仅掌握了Justin导师教我的七句心诀,顺利提高了解题速度和正确率,还做了一个频率分析的项目。在秋招前我还上了简历课,所以当时投简历到收到面试通知的过程都非常顺利。
收到一面通知后,我约了第二天的面试。主面是一个看起来挺严肃的面试官,他穿得西装革履,没有跟我多说废话就直接开始了面试。首先是三分钟自我介绍,我主要把简历上的经历详细说了说。然后他开始问我项目相关问题,让我做个简单介绍,我告诉了他我的项目主要是检查面部的傅里叶域。他又问我我承担了什么职责,做了哪些工作。因为我当时觉得项目来之不易,所以做得非常用心,因此这个问题我也答得很快很详细,把自己的工作讲得很明确,而且努力体现了自己的自驱型。接着他又问了我一个Java的核心知识点,问我Java中的int都有哪些,字节占多少。这个问题比较基础,而且是准备的时候看见过的题,我还是很清楚答案的,所以很流畅的回答了出来。面试官没有多说什么,给了我一道算法题,题目如下:
这道题是一道插入排序,插入排序本身就是需要掌握的技巧,只是变成了Linked List,但内芯不变,所以我很快就给出了代码,然后我们还讨论了一下其他类型的排序,和他们的复杂度。
二面感觉比第一面轻松了一些,因为面试官一见到我就挺热情的,还跟我聊了一些行业内的新闻。面试开始也是先让我做了自我介绍,然后让我简单讲一下自己的项目。接着他问我做项目的时候有没有遇到什么困难,我是怎么解决的。我回想了一下,做项目前期我真的很垃圾,基本什么都不太会,不过Justin导师对我特别负责,一直用心帮我解决各种问题。我整理了一下语言,讲了其中的两个难点,也说了自己的解决办法。(这个我有一点夸大了,因为Justin导师说过,你一定比面试官了解自己的项目,所以只要没有逻辑问题,表达得流畅清晰就可以,心态还是最重要的!)听完他点了点头,又问了我https实现原理。这个也比较简单,我答得非常详细,因为Justin导师说,如果是你有把握的题就尽量回答得详细有说服力一些,面试官会觉得你很了解、很熟悉,是一定会加分的。
然后开始面代码,题目如下:
这道题目算是简单,但是需要dp的解答。不过搞懂了方程就没问题了。所以我做的还算快,面试官也接受了。我们讨论了一下做法和怎么得出来的,就结束了。
三面又变得紧张了,因为这次的面试官看起来是一个leader级别的,给人的感觉就是资深大佬。我先做了自我介绍,他只是简单问了我项目经历,然后就开始给我情景题。他给了一个mysql订单表,问我怎么建立索引。看到以后我非常激动,因为这个问题被Justin导师预料到了!我还记得答案,于是开始在脑子里整合,理好逻辑,说了自己的想法。我还做了一些深入的思考,希望可以做一些拔高。果然,面试官还挺惊喜的,他说我说的还挺有深度的。
接着是代码题,题目如下:
三面的题目不难,但是需要对Tree非常了解,而且是前序排列,但幸好我课上学过Tree的所有遍历方法,很快就给出了答案。然后我又说了时间复杂度和空间复杂度,就结束了。
三面之后大概过了两天,我接到了hr的电话,主要是跟我讲了一下薪资待遇,还问了我个人的职业规划以及对字节跳动有什么期许。我都如实告诉了她,并且表达得很清晰。hr面完一周内,我就收到了offer。总体来说,面试速度还是挺快的,过程也挺顺利的。我感觉没有想象中的紧张,准备充分还是挺好应对的,面试官也不会特别为难你。真的多亏认识了Justin导师,没有因为我的垃圾而放弃我,而是教我技巧、带我做那么好的项目,真的给了我很多帮助,我这也算是逆袭上岸了吧!不过我还是想提醒一下各位,不要总觉得时间很多、工作离自己很远,尤其是像我一样基础差的同学!如果不是当时的那位哥们提醒,我现在一定凉了。所以越早准备,才能有越大希望进入大厂呀!
以上是个人经验总结, 欢迎讨论。
今年求职可谓格外的惨烈,我们建了一个微信群讨论群,我们在群里会分享一些 leetcode 的高效刷题方法和面试官的出题思路,还有一些内部的行业信息。进群可以加微信:L13509543893,注明 id+发送简历即可。