自身情况:双非二本,科班出身,中厂两年,小厂两个月,技术栈:包括但不限于 vue,php,jq,node,平时偷摸看文章,刷算法题 :)
其他一些小厂不罗列了,可以看到,上来面试的几家大厂几乎覆灭,其实是自身缺乏大厂面试经验导致,说说你需要准备的东西,我这里不会给具体问题的答案,很多答案是要自己去思考和总结基础前端八股文是必看的
翻来覆去的题也就这些,有一些问题是可以和其他人拉开差距的,然后你需要有自己的一套理解。例如我理解js的原型链是这样的:原型链就是链表,this其实就是链表当前指向的那个原型,bindcallapply就是改变链表 next 指向。例如垃圾回收机制有新生代和老生代,可以谈谈Scavenge GC算法例如问渲染页面的过程,除了 tcp 网络层的基础,我会答一些解析算法,容错机制,如何建立图层树eventloop答出新版的chrome优化了await的执行速度,await变得更早执行了,node和浏览器的区别,新老node版本执行顺序的不一致这里我只是举个例子,需要你自己深入挖掘或者看一些文章自己积累小厂小厂宗旨就是你能来干活就行了,所以会问很多 api 的使用,假如你是 vue 技术栈的,建议把 vue,vuex,vue-router 文档过一遍,结合平时做的项目还有遇到的坑,基本就可以了。这里罗列几个 vue 问题:
中厂中厂会对于你的深度会有一定的挖掘,不单单是会使用一些 api,还有独立思考问题,涉及到一些工程化的题,对于广度也有要求罗列几个 vue 问题:
大厂大厂风格不一,这里分开举例头条,pdd,快手把这三家放在一起是因为这三家都会问一点算法头条面试一般 3 轮,一面基础,二面工程化和项目,三面广度,一二面基本就是从头条题库里面抽的,你挨个答就行,会有一道看代码说输出的题,一般是考this或者是eventloop,有时候还会有考promise,前面答的都不错最后会给一个算法题,也可能是实现一个 xxx 函数,算法题也比较简单,也就是leetcode的easy难度,最多不会超过middle,特别喜欢问二叉树,算法题 ok 了面试就过了比较看运气,答不出的多了就给你挂了,如果你基础足够好覆盖方方面面那肯定能过,算法题我都是直接写出来的,本人算法比较强,算法不强的同学建议先刷剑指 offer,然后在搞个 200 道 easy+50 道 middle,反复咀嚼就够用这里给点例子:
其余对于工程上面的考量,因为我是用webpack打包的,所以会问一下loader,plugin的区别,怎么实现loader,plugin,自己有没有写过,webpack整个流程是什么样的,这边建议自己去手写个简单的webpack玩玩,就全知道了,本质上就是广度递归而已快手一共两轮面试,第一轮基础+场景题+工程+编码,很全,第二轮技术深度+场景题,问的问题都挺好,很多没有涉及到的方面都是努力思考,面试官也很nice,唯一一家看了我github的公司,聊得很投机,给快手点赞,因为快手就面了一次就直接写题了例子:
pdd 一共两轮面试,跟上面的问的大同小异,让我惊讶的是二面直接出了道比较棘手的算法题,不过问题不大撸了出来,我 10 分钟左右撸了出来,感兴趣的小伙伴可以试试例子:
阿里阿里是我感觉面试难度 max 的公司,社招 P6 起,基本都是电线 轮,我比较强项的算法和基础得不到体现,基本都是深入业务挖掘的问题一面:做的业务,用到了什么技术,有什么比较困难的,哪些事情是让技术推进业务的,最后会补 1~2 个基础问题,有的面试官还会问问 http 协议这块。头两次面试阿里没有经验,妥妥的挂了,也是告诫后面的同学不要像我这样,想清楚自己为什么要这么做,自己做的东西服务于谁,整个业务流是什么样的,再去面试阿里二面:由于我项目中用到了ssr,面试官从工程化切入,细致入微的问了一下webpack原理(工程化)三面:基本就是说说对于行业的理解典型题node如果简历上写了koa,express,为什么要使用koa(express),直接用node不能写吗?中间件本质是什么?类似一些进程相关:孤儿进程和僵尸进程,多线程。因为我用的php,所以node问题问的比较少,基本面试两个月过来前端面试官都没用过php:(项目项目中遇到最困难的事是什么(必问),这道题自己提前组织好语言,找一个例子,困难点,最后用的什么方案解决。临时增加需求怎么处理?产品方案明显错误,技术怎么推进?类似这些hr这轮基本上保持对这个职位强烈需求就可以了,诸如工作氛围,技术,公司方面都举出很多优点就行。如果你觉得聊下来不行也明确表述你的顾虑,不要浪费互相时间一些面试经验和许多面试官交流下来,假如你基础特别好,最多也是一块挑一个问题问,20 分钟就结束了,很少遇到问的十分细,基本按照题库来问打分的,像米哈游,头条,ucloud就是这样从题库出题,面试时间控制 30~45 分钟,问的长说明面试官对于你某些方面会有疑问和摇摆,问的短就是挂了。我也尝试过跟一些候选人交流,发现普遍的一个问题就是好多东西明明知道,却表述不清楚,例如webpack整个打包流程是怎么样的,聊聊闭包,箭头函数,es6这些基础题,其实这些必问的问题必须提前准备,你需要在面试前提前把语言组织好,而不是问到再去想面试过程注意点:基础题必须答好,有自己的理解,最好答出亮点和项目中实际使用的地方。项目题场景题和面试官求同存异,不一样的地方也不要过分纠结,不同厂有不同的解决方案。编码题最好说出自己的思路,编码这块我做的比较差,要么就是一次写出来,要么直接说不会。最后面试过程中答题一定要自信,我们写代码的肯定是胆大心细,而不是畏手畏脚。其他如果你对后面的工作技术追求较高,在一些问题后面可以反问面试官你们公司针对这个问题是怎么做的。如果你更在意氛围方面,可以问问多久搞一次技术分享。也是旁敲侧击的一种方式。如果你想了解未来同事水平如何,不妨最后问问公司项目如何区分是用vue还是用react。如果你更关注要去做什么,建议详细问问公司的业务和经济链路,盈利模式,看看是否有前景。求职也是一个双向选择。对于我个人来说,虽然快手,头条,pdd的薪资给的很多,基本就是double的状态,但是我更看重公司未来的发展方向,最后还是选择了阿里,广大开发也要想清楚未来 3~5 年要做什么,个人是陪伴着业务成长的(是不是有阿里味了)需要这份前端面试资料的看下方卡片拿走!
- 本文固定链接: http://douyinkuaishou.cc/?id=48803
- 转载请注明: admin 于 抖音快手 发表
《本文》有 0 条评论