字节跳动前端实习面经(1+2+3面+hr)
本人双非大三非科班渣渣一枚,大一下开始学前端吧,不过前期学习方式比较有问题,大二才开始系统深入学习,前期走了不少弯路,所以本身技术也不算同届里比较出色的,大三上选修 all in 换来的大三下课程少,决定进行实习。在二月复习前端一周多之后,在二月的最后一周找了学长内推字节跳动,在这里必须夸一下字节跳动的面试效率,两天三面,之后隔天HR面试,效率真的高。楼主也很幸运通过了字节跳动的前端实习生面试,回馈一波牛客网,现在就是等待offer啦。
一面 1h 视频
- 自我介绍
- 介绍项目 【扯了很多方面,给自己挖了不少坑】
- happypack 原理 【多进程打包 又讲了下进程和线程的区别】
- css module 【给样式开启模块化 避免样式污染】
- React 的Loadable核心 (import() 本质上和 React.lazy和Suspense原理相似)
- Dynamic Import (Loadable的原理之一)
- 微前端路由设计 多个SPA 根据URL变化改变 路由解决方案 【自己答得是用Nginx做匹配 本质上不算是SPA内进行改进,面试官说可以用Dynamic Import】
- React.memo 原理
- Fibonacci 函数 之后进行进行memory优化 【要求不能改参数和执行方式】
- Redux Vuex Context 原理比较
- Redux Context 的区别 和使用场景
- hook的限制 hook能否用于受控组件【ref】
- function组件和class 组件
- 如何进行图片压缩
- 常见了处理文件的 Loader 【答了 file-loader url-loader】
- koa 的原理 与express 的对比
- http 缓存 强缓存 和协商缓存 缓存的过程 服务端的操作
整体题目难度还行,但是面试官很会深入挖掘知识点的原理,原理答得不是很好,经常被面试官问道无言以对,不过面试官会稍作提示引导回答方向,我还是把我了解到的尽量都答了出来。
二面 40min 视频
一面完其实心态有点炸,不小心直接从房间退出了,后面hr打了电话突然说是二面面试官进房间发现我不在,于是赶快进入面试房间开始二面
- 算法 快排 原理和优化 分析复杂度 【手撕代码】
- HMR 热更替原理
- 双向绑定原理
- 跨域 产生原因 解决方案 解决方案有什么缺点
- TCP 为什么可靠
- TCP 的拥塞控制是怎么做的
- 二叉树先序中序 生成后序 【手撕代码】
- 对上面这个算法的优化
二面面试官貌似不是做前端的,所以基本也没有问一些前端的知识点,大多都是算法和网络,头条一直也都比较注重算法,所以二面基本上都是基于算法的。二面面试官很好,一般会先等我把思路讲完后先肯定我的思路的一些优点,在写代码的过程中去引导我在自己的代码上进行一些优化。大家写完代码的过程中可以对自己的代码进行优化的思考,写完后将优化点进行指出和讲解,之后进行优化。
三面 1h 视频
三面是leader面
- 自我介绍
- 实习时间 能实习多久
- 前端学习方法 学习路径 如何进行实践
- 如何设计一个小程序架构 底层如何实现【原理 + 实现方法】
- 非js写的Node.js模块是如何使用Node.js调用的 【代码转换过程】
- 如何写一个移动端html抖音界面和刷视频的功能实现 【手撕代码】
- 三栏布局 右侧固定左侧和中间自适应 【手撕代码】
- 输入URL到展示页面的过程 【比较全面的问题】
- 介绍下 http 协议 【非常宽泛 会根据你说到的点进行深问】
- 除了都会哪些后端语言 【一开始说自己用Node.js,面试官又问有没有其他的,楼主大学学过java,不过没怎么实践过】
- Mysql的存储引擎 【这个直接不知道了 TAT】
- 做过那些前端的性能优化实践
- 通过哪些平台进行性能测试 【我说的Lighthouse】
- 做过的项目的一些难点和扮演角色
三面完其实心里很没底,两个场景设计题感觉自己的设计方案还是有瑕疵的不是面试官想要的,并且问到mysql存储引擎直接无言以对了,感觉自己知识的广度还是有一定欠缺。最后问到性能优化正好自己之前优化过自己的博客网站做过相关的实践,所以还算是力挽狂澜吧,答得很详细。
hr面
其实一开始三面完感觉心里是凉凉的,面试完也没有hr联系进行hr面试预约,但隔了一天后接到了hr的电话,进行了hr面试的预约,心里还是很开心的。
- 个人介绍
- 考研 or 就业
- 学习路线与学习方法
- 入职时间 实习时间
整体就是和hr小姐姐聊天,没什么特别的,也就不赘述了。
后记
自己个人还是比较幸运的吧,一面原理面答得不算太好,二面算法面答得不错,三面的时候前面场景设计设计的略有瑕疵,不过最后的性能优化方面力挽狂澜的一波也算成功上岸。这里给大家一些建议:
- 复习的时候一定要建立体系,我个人在复习的时候使用XMind做了一个个人的技术栈的思维导图,通过导图扩散能够很快定位一些你要着重强化的方面,并且也便于系统的总结知识。
- 一些常见面试题和面试原理还是自己进行一些文章和知识点总结,多看看加强记忆,但重点还是要搞清原理,因为你给面试官讲懂得前提是你自己要懂。
- 项目,面试前一定要把项目理顺,了解清楚项目一些功能的实现原理,如果不知道如何总结项目还是推荐STAR法则。
- 算法,头条比较看重算法,一般每一面都会手撕算法,楼主本身算法并不好,从十二月开始从《剑指Offer》和LeetCode 锻炼算法,总结了一套题解和源码,供大家参考 .LeetCode题解
3月2号 来更新一下 刚刚收到Offer邮件了 我的春招也算结束了 如果有想内推字节跳动的也可以联系我呀~来蹭蹭楼主的好运hh
如果对AML部门感兴趣的我也可以直接找部门直推,前端、算法、机器学习、后端的同学可以直接在评论区和我联系~希望一起做同事呀。