头条面试共四轮,三轮技术面,一轮hr面。整体给我的感知是效率高,体验好。难以想象我大年29还在面试...
一面
先自我介绍下,然后面试官说:“好的,我们先做下题吧”。
1.手写买卖股票问题 (上来就动态规划,此处用郑爽金句来表达我的心情)
2.手写Promise.all
3.看代码输出题(考的是EventLoop机制)
4.说下浏览器的缓存策略(从http协议的构建,缓存相关字段,缓存类型和区别等方面阐述)
5.了解前端安全吗?(八股文我最熟练了,嘿嘿嘿)
6. es6和commonJS模块管理的区别
7. https和https的区别
8. CSS宽高的变化会引起回流或重绘吗
Monster Talk:
一面我记住的大概是这些内容,像第三题那种各种同步,异步代码掺杂在一起让面试者写输出的题平时开发基本见不到,但是主要是考察对Eventloop机制的理解。我后续会收集类似的题目,专门写篇文章来阐述。
二面
二面面试官看起来亲和力很强,上来直呼我的名字,搞的人家暖暖的;中途网络问题信号断了10来分钟,结果多面了我40多分钟接受了快2个小时的技术殴打。
1.手写题:手写EventHub,手写深拷贝(考虑正则,日期,数组等类型),算法题:移动零
2.考EventLoop的题目+ 1
3.说下前端如何做性能优化?(这个其实范围很广,我是从速度更快,资源更少的角度进行阐述的)
4.浏览器的内存回收机制?如果监控内存泄漏?
5.紧接着就是一道内存泄漏的题,然后如何改正才能避免内存泄漏?
6.你在项目中做了哪些性能优化?(根据简历问的,我解决了我们在线课堂客户端CPU占比高的问题,这个过程也可以单独写篇文章)
7.接上题,什么情况下会引起回流和重绘?浏览器的渲染机制是什么样的?
8.如何对项目进行性能分析,需要关注哪些指标?你是如何制定这些性能指标的?
9.你擅长什么技术呢?
三面
不知道是不是面试官比较害羞我没看到他的脸。
1.说下你对ELK做的优化 (根据简历问的,elk一般用于搭建海量日志存储,查询和分析平台;我从性能参数,集群层面,架构层面进行了阐述)
2.优化结果如何,绝对的性能指标呢?
3.问个简单的问题哈,elk分别是什么?
4.在项目中的角色是什么?项目中存在哪些问题,你是如何解决的
5.做pm的职责是什么,项目管理流程是什么样的?
6.有没有从0开始做过项目?有没有进行技术选型?
7.有什么已经落地的成果,攻克了哪些难点?
8.手写一个webpack的plugin
9.最近在看什么书?我说红宝书。那你用generator模拟实现个async await(7,8题我只了解大概原理,并不会写hhh)
10.看过vue源码吗?描述下diff的原理(好家伙,我直接好家伙,还问了diff在哪个文件下)
11.算法: 添加最少字符构造回文数串 (这个如果没写出来就没这篇面经了)
Monster Talk:
可以看出来,一二面重基础(由于我面的岗位对性能要求极高,所以也问了很多性能优化的问题)。二三面的表现和工作经验直接影响到最后的title是不是“高级”。一定对自己的简历了如指掌,像elk这个之前没一个人问我的,我基本没准备,还好之前总结过答上来了,不然就是减分项。另外,如果你有跟岗位无关的工作经历,不一定是减分项,重要的是在之前的岗位有的积累和思考。我毕业第一份工作是运维,所以对内存,cpu等机器指标很敏感,也是我能发现问题解决问题的重要原因,也是简历中的一个亮点。
说点个人感悟吧
1.基础,基础,基础。如果基础不好,很难过中大厂的前两关;很多人说前端东西太多了,学不过来,其实前端东西再多,只要掌握其中的核心就够了。所有的框架都是从最基础的js衍生出来的,只要基础扎实,上手其他框架很快的。
2.刻意练习。我不是什么技术大佬,擅长的领域偏文科,在编程这块至少我是没任何天赋的。对于算法题,只能自己多练了。
3.向优秀的人学习。像我朋友圈的公众号号主们,都是我学习(白嫖)的对象,感谢你们hhh;还有我之前的领导,我身边的同事等等,他们身上有很多闪光点值得我学习。
4.保持平常心。大厂是个围城,相比于在大厂工作,更重要的是明白自己真正想要什么,然后慢慢接近这个目标就好了。人生就像心电图,是在波峰波谷中向前的,但是这个波浪的大趋势是波动向上还是波动向上,还是在于自身。
“弱小和无知从来不是生存的障碍,傲慢才是”,共勉。
全部评论
(4) 回帖