【字节跳动测试开发面经】一二三面+hr面+交叉面+超级多干货
考研结束等初试成绩的时候参加的面试,做了很多功课,贴在帖子的最下面啦~一起加油!
一面 1月22日 (1.5小时)
这一面没有什么准备,看了一点点操作系统和计算机网络,面试官是一个温柔的女孩子,说话节奏很慢很慢,提问的节奏很慢很慢。时间太久了,很多内容忘记了,大概回忆一下。
- 自我介绍
- 项目
- 实习
- 算法题:如何判断一棵树是否是平衡二叉树
- 我写的递归有点问题,算是写出来了50%吧
- 算法题:最长回文子串
- 只写了中心扩散法,面试官问我还有没有其他思路,我知道有动态规划,但是我当时对动态规划底气不足,直接说了不知道其他方法
- 如何实现一个操作系统
- sql注入是什么
- 分页和分段的区别
- http和https的区别
- cookie和session的区别
- 应用层哪些协议是基于udp,哪些基于tcp
- rip是什么
- 进程调度算法有哪些,在实际情况中如何选择这几种算法
- 最熟悉的数据结构有哪些
- 计算机组成原理讲了什么
- 反问
二面 1月27日 (1小时)
完全是压力面,看到你对答如流,会直接打断,说不要说了,换一个问题,目的就是为了找到你薄弱的点。问题一个接着一个,不让人喘息,基本不留任何思考的时间。如果怀疑你作弊会当场问你,面试官全程黑脸
- 自我介绍
- 项目
- 游戏引擎和体感传感器可以连起来的原理
- 深挖项目,问得非常非常细,硬件软件都问了,我回答得吞吞吐吐。
- 实习
- 发现了哪些漏洞
- 哪些是你手动发现的
- 讲一个安全工具的工作原理
- sql注入是什么
- 我巴拉巴拉说一大堆,面试官说“没听懂”,实在没办法,在文本框里面举了一个例子,面试官仍然质疑,问得很深
- xss注入是什么
- 说完之后,面试官说“不是太明白,这对攻击者来说有什么用呢?我会有哪些危险呢?”,这里是我的弱点,对两个注入只了解表面。
- 操作系统
- -操作系统有哪些功能
- (和一面一样的问题,而且又是考研相关,对答如流,回答的过程中面试官突然把视频挂断了,马上重新拨过来的。)
- -你刚刚是照着念的还是自己在说?
- -我是自己说的,因为我刚考完研,对这一块知识很熟悉(内心慌得一匹,竟然误会我作弊,就当做是侧面夸奖我吧)
- -好的,那不用说了。说一下进程管理
- -进程管理包括....
- -好了,下一个问题
- -.....(打断我说话!不让我讲完)
- 说一下磁盘管理
- (这个题目我仍然没有机会答完,直接打断了)
- 数据结构
- -熟悉哪些算法?
- -请问是排序这些吗?
- -是的,你把快排和堆排说一下
- (然后我说了快排的原理,面试官仍然不放过我,深挖快排代码,但是快排是考研中的绝对重点,程序我倒着写都能写出来,我能感受到面试官一步一步逼近)
- -你自己实现过吗?
- -实现过,(心中窃喜,是让我实现快排吗?哈哈哈哈哈哈哈,那我很拿手)
- -好的,那你说一下堆排序吧
- (好吧,错失一个表现机会,堆排序的原理说了一下,面试官接着深挖堆排代码)
- -你刚刚说调整堆的顺序是从上至下?
- -是的
- -你确定吗?
- -我确定,建堆才是从下至上(心中一咚)
- -是吗?那万一从上到下调的时候,下面出现很大的数怎么办?
- -这不可能,每一轮都得保证堆这个结构
- -好的,下一个问题,你知道那个字符串中查找的算法吗?
- -请问是KMP算法吗?
- -对,是的,讲一下吧
- (我说了一堆原理,本来KMP这个算法就不好口述,说得我舌头都要打结了)
- linux
- -linux用过没有?
- -用过,很少
- -命令了解哪些
- -现在只能想起查ip的命令(完蛋,一个都不记得)
- -没想过要学一下吗?
- -正在学(其实还没开始)
- 算法题
- 数组中数据两两交换
- -先说一下思路
- (这里算是面试官没有为难我吧,很简单,写完了)
- 反问
三面 2月2日 (1个小时)
- 自我介绍
- 项目
-
酷跑游戏如何使得用户感受到跑道无穷无尽
-
游戏引擎和体感传感器可以连起来的原理
-
- 实习
- 发现了哪些漏洞,大概分为几类
- (原本以为我的项目和实习没什么好问的,但是深挖得非常细,问完已经过去了半小时了)
- 出个题目吧
- 12306买票系统,请设计一个查询方案,要查出了车次,车站名,车站名和地点名可能不相关
- (我惊呆了,竟然不是算法题,而是要让我设计一个查询方案)
- -用哈希表存储(然后说了一下,说得我说不下去了,知道自己回答错了,面试官追问了一个点,我的方案都没法实现)
- -再想想
- -请问我可以换一个方法吗?
- -可以,你换吧
- -用图存储(完蛋,面试官继续追问,我又发现行不通)
- -我还能再换一下吗?(啊,无敌尴尬,我都快放弃了)
- -可以,但是你要一次性告诉我所有,不要我追问一点你吐出来一点(感觉他不开心了,我很慌张)
- -用数组存(完蛋,又有bug)
- -你再想想(我当时已经很down了,但是感觉面试官还没有放弃我,我怎么可以放弃自己!)
- -用十字链表...(简单讲了一下方案)
- -你再想想有什么问题吗?
- -没有了(啊,绝望,我不觉得有什么问题了)
- -嗯,算你做对了,复杂度是多少?(面试官思考了一下,笑出了声)
- -n方
- -为什么是n方?
- (这题我熟,计算复杂度我可会了)
- 考研考的哪里?
- 中科院
- 反问
- (惊呆了,就只考了一个题)
hr面 2月3日 (30分钟)
这一面了解了我的情况(刚考完研,还在等初始成绩)加了一轮面试,最后一轮交叉面试至关重要。怒刷字节跳动top30的算法题。
交叉面 2月7日 (40分钟)
- 自我介绍
- 项目
- 实习
- (问得比较浅,好像不是很敢兴趣)
- 算法题:归并排序
- 这个简单,考研的时候刷了很多遍,没有调试,五分钟ac
- 算法题:rand3()实现rand7()
- 这个看别人的面经见过题目,但是我自己没有刷到,稀里糊涂说了一点,没写出来
- 算法题:最长无重复字符串
- 高频题,没有调试,五分钟ac
- 进程和线程的区别
- 进程间的通信方式
- 用共享存储方式通信会有什么问题,如何解决
- 计算机网络五层每一层说一下
- 知道什么是端口号吗?
- http的状态码301和302有什么区别
- linux命令会吗?
- 反问
hr电话 2月8日
通知面试过了。我以为会开心得跳起来呢~但是好像也还好~
这段时间过得很充实,将我整理的面试资料回馈牛客。
------------------------------------------------------------------------------------------------------------------------------------
我在字节面试测试开发的岗位有以下几个特点:
1.不会问测试理论(我面过的其他几个小公司会比较注重)
2.没有问mysql
3.考察的算法题重复率很高
4.注重操作系统,计算机网络和数据结构,对计算机组成原理不太看重
5.非常注重linux
- 如果你是校招或者往届学生,或者刚刚考完研,对计算机的专业知识有点忘记,建议看几门专业课的吐血整理,我目前正在准备考研复试,会一直持续更新,非常详细
- 如果你简历里面说的最熟悉的语言是c++,建议看c++的吐血整理,如果没有足够的时间,最下面的几个链接是c++最重要的东西,必考必问。
- 如果你的专业或者项目和安全相关,建议看信息安全的吐血整理,另外我的博客里面还有关于各种漏洞,渗透测试,安全工具的文章
- 如果你曾经只是用过几次linux,建议看三篇linux常见命令的文章,至少不要一个字吐不出来。
- 如果你对算法题很没有底,时间又不太够,建议一个星期内刷完leetcode前30的算法题,用两天把30个题目温习两遍。(题目不再多,而在做过的都能再次做对,字节重复率很高)
- 如果你刚开始刷leetcode,对动态规划完全没基础,可以看九章算法动态规划的那篇文章,博客里面同时贴了B站动态规划入门教程,就两个小时,亲测有用。
-----------------------------------------------------------------------------------------------------------------------------------
【数据结构】-经典面试问题吐血整理:https://blog.csdn.net/qq_39328436/article/details/114490612
【c++】-经典面试题吐血整理 :https://blog.csdn.net/qq_39328436/article/details/111998497
【linux】-常见命令
【c++】
(csdn好像有点bug啊…要加载好久才出来文章)😅
-------------------------------------------------------------------------------------------------
2021/04/08更
三天前上岸中科院
今天收到字节offer
下周一入职
希望一切顺利~~
-------------------------------------------------------------------------------------------------
2021/06/02更
需要内推的同学可以私聊我呀(呀呀呀呀呀)
#字节跳动##面经##测试开发工程师#