0%

字节跳动测试开发实习生面试经验

2018.10.18号参加的面试,下午5点左右开始,7点半结束。

面试前我很担心,因为是我第一次面试,我的准备并不是很充分:操作系统与数据库原理的还没学,计算机网络也有些生疏了。而且就准备了两天不到的时间,实际上面试让我出乎意料。

结果:挂了

笔试题目

先给了一份题目:分四种(测试用例,基础知识,编程,逻辑) 每种题目有三四道,每种选1个。

  1. 测试用例:

    • 微信拼手气抢红包测试用例设计
    • 手机号凭借短信验证码注册用例设计
  2. 基础知识:

    • TCP建立连接和断开连接的过程
    • HTTP和HTTPS的区别
    • 进程和线程的异同
  3. 编程题:

    • 在【1,n]中等概率生成m个不同的数字
    • 验证一个IP地址是否合法
    • 归并两个升序数组
    • 一个数组,有一个数出现次数超过一半,找出这个数
      -数64位无符号整数中比特位为1的个数
  4. 逻辑题

    • M*N网格,从左上走到右下,只能向右或者向下,共有多少种走法
    • 1米的杆子上,每10cm一只蚂蚁,两头的蚂蚁头朝内,其他方向随机,速度1cm/s ,相撞就掉头,问多长时间后杆上没了蚂蚁
    • 如何快速判断一个大二进制数能否被3整除

写完之后,告诉前台,等面试官。

一面

先自我介绍,然后就针对上面的回答,简单的问了下思路,测试用例这题我没写,基础知识他都没看。 编程题与逻辑题讲一下,逻辑题选了第一种,他又让给出别的解法。随便聊了几句,就安排第二个面试官。

二面

我写的4种语言中(C++/Python/PHP/JS), JS是最差的(有些凑数),但是最不幸的是第二个面试官进来就是专门问JS的,然后问了点涉及运维

  1. JS的内置类型有哪些
  2. es5中加入了getter和setter让JS效率有很大提升是为什么
  3. vue中的数据绑定要怎么做?有没有别的方法
  4. 浅谈一下vue中的mount
  5. 给所有字符串对象加绑定一个函数,可以数其中‘a’的个数。写一下代码
  6. 你是如何使用node实现多进程的
  7. 谈一下你用node做了什么
  8. 然后问了下运维的部分
  9. 数据库的索引怎么增加修改
  10. 数据表怎么删除
  11. 数据库的权限怎么设置
  12. 你一般用什么工具来帮助你完成运维
  13. 如何查看一个网络端口的情况
  14. 如何把一个程序变成一个服务

三面

对简历上的项目经验,随便聊了聊。
对一面中的测试题,又拿出来想一下你要怎么测试,还有吗? 这里答的不是很好,一点测试经验都没有。。

两个算法题目

  1. 给一个单链表,每个节点加一个属性,random指针,指向链表中任意一个节点或者为空,要求复制这个链表。
  2. 给一个字符串,求出他的最长子串,要求不包括重复字母。

感受与总结

第一面与第三面应该还ok,感觉都挺简单的。第二面有点难受,因为我对JS的理解其实并不深,一遍看文档,一边干活勉强还行。
C++ PHP Python 一点没问,这几个哪个都比JS好啊,起码都是干过些事情的。
所以第一个感受是,简历上的东西一定要会,吊儿郎当的东西还是别写上去了。
第二面中,运维的部分与我想的也不太一样。他关注的点是我用了一些什么工具来帮助运维。不过他有解释,就是他们部门,有一部分工作是为其他部门提供一些自动化的工具的,而我的运维经验都是手动维护的。数据库的权限设置我也是不会的。学校和公司的差距还是蛮大的。