不慌不忙的学渣是如何拿到字节跳动的offer的?

抽象苔藓
• 阅读 241

我是在北京科技大学读的本科,计算机专业,后来通过自己的努力,很不容易考研成功,上岸本校本专业。研二的时候开始跟着Justin导师上算法课、做项目,去年毕业拿到了字节跳动的offer。想分享一下自己的经历。

不慌不忙的学渣是如何拿到字节跳动的offer的?

我在准备考研之前成绩一直是中等水平,后来一个关系特别好的哥们保研了(没错,他是大神),我瞬间觉得自己的大学过得太混了(真的是没有对比就没有伤害),不能再这样堕落了。后来我就开始准备考研,在我备考的那段时间,我的哥们成功拿了字节跳动的实习岗位,时不时地就在宿舍刺激我一下,跟我说字节跳动的待遇多好多好。那个时候就很心动了,想着我必须得考上研,然后毕业去字节,省得他再跟我得瑟。后来我压线上岸了(太惊险了),因为研究生有三年,我又开始觉得工作离我很远,没太想去字节这回事,学习也是又开始混了,甚至排名还不如大学了。

不慌不忙的学渣是如何拿到字节跳动的offer的?

研二的时候,我的哥们看不下去了,问我到底还想不想去字节,我说:“想啊,但着什么急啊,不是还有将近两年呢吗。”结果他跟我说,“你以为那么容易进吗?你要成绩没成绩,要项目没项目的。字节很看你的项目经历,你得留出时间找导师做项目吧?”然后他又帮我捋了捋之后的时间,一直说到了毕业。我一算,一方面我得快速提高成绩,一方面我还得找到愿意给我项目、带我的导师,之后还得写毕业设计,好像是真的没什么时间了。我有点慌,这才开始向我的哥们求救(他那时候也在忙自己的项目,我知道可能他并没有时间帮我)。他跟我说最近比较忙,可能没法帮我太多,但是当时实习的时候有个同事给他推荐了帮他进字节的导师——Justin导师。他的同事告诉他Justin导师很擅长算法题,有自己的一套技巧,而且还有很多大厂喜欢的项目。于是他把Justin导师推给了我。

不慌不忙的学渣是如何拿到字节跳动的offer的?

我在Justin导师的算法群潜水了一段时间后决定报名算法班,才算是正式成为了Justin导师的学生。(只后悔没有早认识Justin导师!)后来在算法班我不仅掌握了Justin导师教我的七句心诀,顺利提高了解题速度和正确率,还做了一个频率分析的项目。在秋招前我还上了简历课,所以当时投简历到收到面试通知的过程都非常顺利。

不慌不忙的学渣是如何拿到字节跳动的offer的?

收到一面通知后,我约了第二天的面试。主面是一个看起来挺严肃的面试官,他穿得西装革履,没有跟我多说废话就直接开始了面试。首先是三分钟自我介绍,我主要把简历上的经历详细说了说。然后他开始问我项目相关问题,让我做个简单介绍,我告诉了他我的项目主要是检查面部的傅里叶域。他又问我我承担了什么职责,做了哪些工作。因为我当时觉得项目来之不易,所以做得非常用心,因此这个问题我也答得很快很详细,把自己的工作讲得很明确,而且努力体现了自己的自驱型。接着他又问了我一个Java的核心知识点,问我Java中的int都有哪些,字节占多少。这个问题比较基础,而且是准备的时候看见过的题,我还是很清楚答案的,所以很流畅的回答了出来。面试官没有多说什么,给了我一道算法题,题目如下:

不慌不忙的学渣是如何拿到字节跳动的offer的?

不慌不忙的学渣是如何拿到字节跳动的offer的?

这道题是一道插入排序,插入排序本身就是需要掌握的技巧,只是变成了Linked List,但内芯不变,所以我很快就给出了代码,然后我们还讨论了一下其他类型的排序,和他们的复杂度。

二面感觉比第一面轻松了一些,因为面试官一见到我就挺热情的,还跟我聊了一些行业内的新闻。面试开始也是先让我做了自我介绍,然后让我简单讲一下自己的项目。接着他问我做项目的时候有没有遇到什么困难,我是怎么解决的。我回想了一下,做项目前期我真的很垃圾,基本什么都不太会,不过Justin导师对我特别负责,一直用心帮我解决各种问题。我整理了一下语言,讲了其中的两个难点,也说了自己的解决办法。(这个我有一点夸大了,因为Justin导师说过,你一定比面试官了解自己的项目,所以只要没有逻辑问题,表达得流畅清晰就可以,心态还是最重要的!)听完他点了点头,又问了我https实现原理。这个也比较简单,我答得非常详细,因为Justin导师说,如果是你有把握的题就尽量回答得详细有说服力一些,面试官会觉得你很了解、很熟悉,是一定会加分的。

不慌不忙的学渣是如何拿到字节跳动的offer的?

然后开始面代码,题目如下:

不慌不忙的学渣是如何拿到字节跳动的offer的?

不慌不忙的学渣是如何拿到字节跳动的offer的?

这道题目算是简单,但是需要dp的解答。不过搞懂了方程就没问题了。所以我做的还算快,面试官也接受了。我们讨论了一下做法和怎么得出来的,就结束了。

不慌不忙的学渣是如何拿到字节跳动的offer的?

三面又变得紧张了,因为这次的面试官看起来是一个leader级别的,给人的感觉就是资深大佬。我先做了自我介绍,他只是简单问了我项目经历,然后就开始给我情景题。他给了一个mysql订单表,问我怎么建立索引。看到以后我非常激动,因为这个问题被Justin导师预料到了!我还记得答案,于是开始在脑子里整合,理好逻辑,说了自己的想法。我还做了一些深入的思考,希望可以做一些拔高。果然,面试官还挺惊喜的,他说我说的还挺有深度的。

接着是代码题,题目如下:

不慌不忙的学渣是如何拿到字节跳动的offer的?

不慌不忙的学渣是如何拿到字节跳动的offer的?

三面的题目不难,但是需要对Tree非常了解,而且是前序排列,但幸好我课上学过Tree的所有遍历方法,很快就给出了答案。然后我又说了时间复杂度和空间复杂度,就结束了。

不慌不忙的学渣是如何拿到字节跳动的offer的?

三面之后大概过了两天,我接到了hr的电话,主要是跟我讲了一下薪资待遇,还问了我个人的职业规划以及对字节跳动有什么期许。我都如实告诉了她,并且表达得很清晰。hr面完一周内,我就收到了offer。总体来说,面试速度还是挺快的,过程也挺顺利的。我感觉没有想象中的紧张,准备充分还是挺好应对的,面试官也不会特别为难你。真的多亏认识了Justin导师,没有因为我的垃圾而放弃我,而是教我技巧、带我做那么好的项目,真的给了我很多帮助,我这也算是逆袭上岸了吧!不过我还是想提醒一下各位,不要总觉得时间很多、工作离自己很远,尤其是像我一样基础差的同学!如果不是当时的那位哥们提醒,我现在一定凉了。所以越早准备,才能有越大希望进入大厂呀!

以上是个人经验总结, 欢迎讨论。


今年求职可谓格外的惨烈,我们建了一个微信群讨论群,我们在群里会分享一些 leetcode 的高效刷题方法和面试官的出题思路,还有一些内部的行业信息。进群可以加微信:L13509543893,注明 id+发送简历即可。
不慌不忙的学渣是如何拿到字节跳动的offer的?
不慌不忙的学渣是如何拿到字节跳动的offer的?

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
希望的天 希望的天
4年前
前端面试常考知识点整理
个人经历给大家一个参考,计算机信息工程专业,大学学过前端,毕业后阴差阳错在小公司做了三年测试后,意外地拿到了字节跳动前端的offer,成功跳槽到了字节跳动事业部。字节跳动面试对基础比较看重,然后需要你有两三个比较好的项目,一面重视面试者对前端基础的把握,还要手写代码,不过不难。二面部门的leader面,这一面比较难,面试官会对你的项目细节进行深挖
Stella981 Stella981
3年前
Python Challenge Level 18
初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
初探 Objective
作者:Cyandev,iOS和MacOS开发者,目前就职于字节跳动0x00前言异常处理是许多高级语言都具有的特性,它可以直接中断当前函数并将控制权转交给能够处理异常的函数。不同语言在异常处理的实现上各不相同,本文主要来分析一下ObjectiveC和C这两个语言。为什么要把ObjectiveC和
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
4个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(