题主2019年非985/211非计算机专业本科毕业(野生程序员),之前在腾讯实习了半年多+毕业后在腾讯工作了一年,一直都是前端开发。
年中的时候因个人原因,打算离开腾讯,到外面看看,投了若干简历,最终面试了字节跳动、虾皮、快手、拼多多这4家公司。有的喜有的忧,本文是对本次面试的一个总结。
快手
快手是最早约的面试,在boss直聘上投完大概几天就约了。也是我本次第一家面试的公司。时间某个工作日的晚上8点,那天早早溜回家面试了,是在牛客网上进行的
主要问的问题如下:
-
react
16新增了哪些生命周期、有什么作用,为什么去掉某些15的生命周期(写过码看过文档都能答上了) -
fiber怎样的,如何实现异步渲染(链表/可中断)
-
redux
和redux-saga
的区别和原理 -
项目中用到的
saga-duck
是个什么东西 -
useEffect
的实现原理(坦白说自己没看过react的实现,就说了下preact的实现) -
异步渲染和旧版的diff的区别
-
babel实现转码的过程(词法/语法分析)
-
项目的技术栈怎么选型(这种问题好几次都被问到,感觉我真的不太知道怎么答)
-
小程序底层实现原理了解多少(说了下双线程模型/预加载
webview
) -
项目nodeJs应用异常退出如何处理(pm2/uncaughtException事件等)、日志上报怎么做(输出重定向到文件,elk服务传传到kibana)
-
graphic schema怎么设计(说了下我对于项目中的理解,资源维度,感觉回答不太好)
-
有哪些技术驱动业务的案例(说了下这个插件的思路和
webpack
一些优化)
最后写了一道算法:最大乘积子序列,有正负数的情况。应该对应于这个leetcode题目。这里我理解错题意以为这个序列是可以不连续的,而且对于理解错的题意也用了一种错误的写法,用了o(n2)
的一种实现。然后面试官提示说o(n)
,最后还是没做出来。这个题目其实自己在之前的刷题的时候自己也是比较顺利能解出来了,这里有点可惜,面试临场代码能力还是有待加强
最后面试官大概讲了下部门情况,他们那边是深圳快影前端团队,目前规模还不大,正在大力招人。最后还问了下我如何看待目前部门工程化建设不足的问题,我表示这是一个很好的机会去挑战自己(hhh)。
当时这次面试之前,差不多两年没面试了(上一次面试还是2018年的8月),很多地方自己感觉也是表现不太好。虽然面试官最后说了认为我是一个比较优秀的同学,让我当时迷之自信误以为会有下一轮。过了一周没有任何答复后,去boss直聘上问了下hr,答复说算法有待加强,第一次面试凉凉~
拼多多
拼多多投的是广州的部门,好像是小程序团队,通过一个同学内推的
一面 47分钟。某天晚上9点