记得有一次同步网络的面试(为了佳明)
提示
为了佳明同学,写了这篇面试过程,我希望你可以请我吃饭。同步网络的视频面试
为了重现面试过程把面试官比作Q, 把我比作A
自我介绍
我是介绍学校,为什么来杭州实习,为什么要找厦门公司
他的自我介绍
他是谁,然后就开始问问题了。
一面
数据结构和操作系统
Q:讲一些你认识的数据结构
A:讲了数组、链表、栈、队列,二叉树
Q:二叉树的排序有了解吗,讲一下你对二叉树的排序。
A:堆排序,先分成大根堆或者小根堆,然后取第一个节点再分成大根堆或者小根堆
Q:了解进程调度的算法吗?讲几个你熟悉的。
A:先来先服务,最短作业优先,我能记得就这两个,当然还有很多个。
Q:讲一个你立即比较深入的调度算法。
A:先来先服务:这个是性能比较差的,就是先来后到的原则,一个作业来了就先执行,后面来的就放在队列中等待,等前面执行完,再一个个上去执行。
Vue
Q:你讲讲Vue的生命周期
A:我用到的是在Created里面放请求函数,在mounted里面放渲染图表,在destroyed里面放clear()清除延时函数
Q:Vue你是怎么选择周边插件的?
A:判断是否符合产品需求,看看npm包的大小
ES6&&ES7
Q:你说你熟悉ES6和ES7,那你讲一些你最经常用到的语法。
A:ES6:箭头函数,promise,扩展运算符,ES7:async/await,Object.entries,Object.values
Q:那你能不能讲讲箭头函数的优点和缺点?
A:箭头函数本身没有this,他的this是继承下来的,最经常用的是在setTimeout上面用到的,balabala一大堆
Q:说到setTimeout,那你在Vue怎么保证在单个页面只有一个延时函数?
A:我说可以把timer放在data里面,然后在created里面可以clear
Q:还有一种方法,在高阶组件里面用到的,你可以去看看,这边就不讲,这边看到你用Git,你可以讲讲如果一个版本要开发新版本,又有好几个人开发几个新模块,需要怎么做?
A:我的理解是这样的,master只能是稳定运行的版本,新建个dev分支,然后再dev分支再出每个人对应的分支,然后在各个分支开发,开发完之后再一次merge到dev分支,然后内测,稳定之后再merge到master
Q:你这里有用到eslint,你讲下你的理解。
A:当几个人一起开发一个项目后,如果没有代码规范的话push到git的时候会有冲突,所以这时候就必须要有一个eslint来规范几个人的代码规范。
Q:你最后还有没有什么想问的?
A:你们公司的技术栈是什么?
Q:主:react,副:Vue,还有一些老项目用jquery,后端用php
A:我也会一点php,但是我的毕设是用springboot写的。
Q:问你一个基础的string、stringBuild、stringBuffer的区别?
A:我记得我看过一篇文章,我想下,然后没想起来。回去补下
项目
讨论项目的难点和技术栈,业务,还有你是怎么解决这个问题的。你的收获是什么?巴拉巴拉。。。
二面
也不算二面吧,一面男的说我的同事想问你一个问题
然后一个女的就问了一个东西:
git上面的reset、revert、checkout的区别将一下,我听不懂她讲的英语,听成reset、rewatch、re。。。,然后我就说我就用过reset,然后就巴拉巴拉,说后面两个没用过。回来百度才知道是这三个。估计不会所以就没继续问下去了。
三面
提示
简单寒暄几句
Q: 你为什么要来厦门
A:厦门同学多,离家近,同学一直叫我来厦门
Q:为什么会去杭州
A:机缘巧合
Q:你觉得你的最大的优点和最大的缺点是什么?
A:巴拉巴拉…
Q:你要进一家公司看种的是什么?
A:发展前景、离家近、工资,最后补充:要是对我帮助大的话工资低也无所谓。
Q:你去过两家公司,你觉得在这两家公司学习到什么?
A:巴拉巴拉。。。
Q:你还有没有什么想问的。
A:没有。
过了几分钟,hr过来说三个工作日会给你回复。
总结
有一些小问题没回忆起来,面完总体来说还可以。问到优点和缺点有点懵逼。