2018.10.18号参加的面试,下午5点左右开始,7点半结束。
面试前我很担心,因为是我第一次面试,我的准备并不是很充分:操作系统与数据库原理的还没学,计算机网络也有些生疏了。而且就准备了两天不到的时间,实际上面试让我出乎意料。
结果:挂了
笔试题目
先给了一份题目:分四种(测试用例,基础知识,编程,逻辑) 每种题目有三四道,每种选1个。
测试用例:
- 微信拼手气抢红包测试用例设计
- 手机号凭借短信验证码注册用例设计
基础知识:
- TCP建立连接和断开连接的过程
- HTTP和HTTPS的区别
- 进程和线程的异同
编程题:
- 在【1,n]中等概率生成m个不同的数字
- 验证一个IP地址是否合法
- 归并两个升序数组
- 一个数组,有一个数出现次数超过一半,找出这个数
-数64位无符号整数中比特位为1的个数
逻辑题
- M*N网格,从左上走到右下,只能向右或者向下,共有多少种走法
- 1米的杆子上,每10cm一只蚂蚁,两头的蚂蚁头朝内,其他方向随机,速度1cm/s ,相撞就掉头,问多长时间后杆上没了蚂蚁
- 如何快速判断一个大二进制数能否被3整除
写完之后,告诉前台,等面试官。
一面
先自我介绍,然后就针对上面的回答,简单的问了下思路,测试用例这题我没写,基础知识他都没看。 编程题与逻辑题讲一下,逻辑题选了第一种,他又让给出别的解法。随便聊了几句,就安排第二个面试官。
二面
我写的4种语言中(C++/Python/PHP/JS), JS是最差的(有些凑数),但是最不幸的是第二个面试官进来就是专门问JS的,然后问了点涉及运维
- JS的内置类型有哪些
- es5中加入了getter和setter让JS效率有很大提升是为什么
- vue中的数据绑定要怎么做?有没有别的方法
- 浅谈一下vue中的mount
- 给所有字符串对象加绑定一个函数,可以数其中‘a’的个数。写一下代码
- 你是如何使用node实现多进程的
- 谈一下你用node做了什么
- 然后问了下运维的部分
- 数据库的索引怎么增加修改
- 数据表怎么删除
- 数据库的权限怎么设置
- 你一般用什么工具来帮助你完成运维
- 如何查看一个网络端口的情况
- 如何把一个程序变成一个服务
三面
对简历上的项目经验,随便聊了聊。
对一面中的测试题,又拿出来想一下你要怎么测试,还有吗? 这里答的不是很好,一点测试经验都没有。。
两个算法题目
- 给一个单链表,每个节点加一个属性,random指针,指向链表中任意一个节点或者为空,要求复制这个链表。
- 给一个字符串,求出他的最长子串,要求不包括重复字母。
感受与总结
第一面与第三面应该还ok,感觉都挺简单的。第二面有点难受,因为我对JS的理解其实并不深,一遍看文档,一边干活勉强还行。
C++ PHP Python 一点没问,这几个哪个都比JS好啊,起码都是干过些事情的。
所以第一个感受是,简历上的东西一定要会,吊儿郎当的东西还是别写上去了。
第二面中,运维的部分与我想的也不太一样。他关注的点是我用了一些什么工具来帮助运维。不过他有解释,就是他们部门,有一部分工作是为其他部门提供一些自动化的工具的,而我的运维经验都是手动维护的。数据库的权限设置我也是不会的。学校和公司的差距还是蛮大的。