首页 > 字节跳动提前批抖音三面面经 + hr面经(已经意向书)
头像
zoomdong
编辑于 2020-08-10 17:04
+ 关注

字节跳动提前批抖音三面面经 + hr面经(已经意向书)

明天猿辅导转正面试,写个字节面筋攒攒rp,7月底面的了。

有些问题记得不是很清楚了,准备的也不是特别充分。QuQ,随便写写,回馈牛客~

之后有啥想起来的再来补一补~

TL;DR

一面

基本上就是问下基础,确实记得不是太清楚了。

  • 自我介绍

  • 两家实习,大二小米暑假实习2个月、大三猿辅导实习接近8个月。讲讲实习的一些事。

  • Ant-design 核心贡献者,讲讲给 antd 写的一些 feature 以及修复的一些 issue。

  • 算法:最接近三数之和 和 比较两个pkg版本号大小(包括带 rcbetaalpha这种)。

  • 第一题刚开始用的 hash 表,面试官让我不要优化一下,改成双指针了。

  • 第二题模拟(代码写了快70行,我太笨了)

  • 一些前端基础知识

  • 继承方式

  • 问了下 es6 的继承的一些细节(constructor这些相关)

  • 问了个事件执行机制的题目,然后给了一堆混有 promise 和 async之类的事件的代码来给出一个输出结果,分析好异步和同步队列的执行情况。

  • 为了个 类似于 this 绑定的题目,也是给了一推代码分析结果,分析好隐式绑定和显示绑定以及执行的作用域就行了。

  • Dom、bom事件,小程序里面有吗(实习的时候做了一个兼容小程序的frog库)

  • 实现三列布局(口胡),左右两侧自适应,中间固定呢

  • 响应式布局 vw、em、rem 区别(实习的时候用 rem 做过响应式布局,根据视窗大小来动态计算根的 font-size 值)

  • nodejs 为啥适合做 IO 密集型不适合做 CPU 密集型

  • TCP、UDP 区别,详细问了下 TCP 的三握四挥手的过程,还问了个关于三次握手中间断开的话,包的情况。

  • new 执行过程中发生了啥

  • 其他

其实这一轮问了挺久的,快70分钟了,有些记不起来了。

二面

  • antd 贡献情况,具体哪些 feature,然后 antd 的一些工作发布流程,pr 的code review之类。

  • 实现一个类似于浏览器的并发加载的功能(用队列乱搞了半天,这题挺有意思)。

  • 实现一个判断数组去重的函数。(用了 Map,面试官让我用 es5 的方式,就只能用 object 来做 hash 表,要是有不同类型的值呢?typeof 判断一下,然后存 key 的时候标记一下就行了)。

  • 链表判环。

  • 基础知识

  • 记得有问 https 的加密相关的。

  • 然后 http2 的一些优势。

  • 还有一些也不记得了

  • 问了下实习做的一个编辑相关的项目,ts compiler api 的一些用法,以及分析提取 ast 来拼接一个 object 出来。问了下里面用到的一些算法, 其实就只用了 dfs 去扫树结构。然后最后处理 json 输出的时候,处理那个逗号来遵循 json 格式下了点功夫。

  • 问了下 react 的底层原理

  • 讲了下 diff 算法,为啥之前那种修改算法是 o(n三次方)(要遍历两棵树 & 找出不用),diff算法比较暴力,会直接根据 type 不用去做销毁再重构。但 diff 算法也会有些复用的情况例如设置了 key 之类。然后讲了下单点 diff 以及多点 diff 的执行机制。

  • 讲了下 react 15 之前的架构以及为啥要在 react15之后引入 fiber 架构。添加的 scheduler 做了哪些工作,以及在这一过程中主要优化解决的问题。

  • useState 的实现(依赖了一个双向链表)然后讲了一些其他的hooks

  • hooks 解决了 HOC 以及 render props 的一些痛点。

  • 问了下微前端相关的

  • 微前端解决的一些问题,市面上的一些微前端矿建

  • 你给qiankun的源码做过贡献,讲一讲qiankun的隔离机制以及qiankun因为用到了es6 的proxy机制导致对 IE 浏览器的不兼容性,qiankun提供的一些解决方案。

  • 讲一下qiankun 里面多应用样式是怎么隔离的,js 是怎么隔离的。

  • 问了下 deno 相关(参加过 deno 中文 api 文档的一些翻译工作)

  • deno 解决了 nodejs 的哪些痛点,相较于 node 它有哪些优势,有哪些缺陷

  • 问了我平时用 deno 来搞些啥

  • deno 源码为啥要用 rust 写而不是 cpp,聊了 rust 的一个 tokio 库来给 deno 作为异步事件支撑

  • deno 源码里面还有 cpp 吗(肯定没了啊。。),然后聊下之前 deno 团队将核心模块用 ts 迁移回 js 的事情。

面试官:还有能吹的吗?

我:没有。

面试官:那我帮你叫三面面试官。

其实这一轮也快1个小时了。有些问题也不记得了。。

三面

  • 算法:写了个两数之和,我在里面用数组的indexOf来当 hash 表用,他就问我 indexOf 有时间复杂度吗?其实这个是有的,以前打周赛就因为这个 t 过,具体时间复杂度其实有 O(N),然后他让我用 hash 表扫,提前预处理存了一轮,他问我能不能只写一层遍历。。。

  • 问了下

  • 看了我 github,然后顺势发现了我的博客(其实我简历上有。。。),看到内容后问了些关于浏览器渲染机制的问题,可以让我多去看看 chrome 的官方文档,那边资料比较新。

  • 开始问 antd 相关

  • 写过哪些组件(skeleton的一个组件已经发布了)

  • 有哪些感触(其实主要还是测试,因为大型开源库都遵循一个“百行代码,千行测试”的原则,有时候你可能只改了很小的逻辑,但是你要给这部分写很多test case)。

  • 提到关于 antd 里面组件 refactor with hooks 的工作,在重构过程中遇到了哪些问题(jest 测试对与FC 的支持不好,例如没办法像之前测逻辑的时候直接去测 state, facebook 之后能做一些改善吧。)

  • 写过一篇引导新人进入开源社区贡献 antd 的文章,现在被放在官方文档上面 hhhh

  • 正在参加阿里的编程之夏,选的项目就是 antd,里面有个课题以前没做过(组件提供无障碍的支持,会怎么去思考以及克服)。

  • 为啥春招不去阿里实习(疫情原因,不太想离开北京)。现在手上阿里云的offer 应该差不多可以拿到。

  • 对面 leader 比对了一下抖音和阿里云的区别,宣传了一下抖音,前端架构组,专门攻坚技术,能做的事情有很多。我也表示应该意愿会比较大吧,不过还是得看最后的选择吧。。。

面试官:我这边没啥问题了,之后hr会找你聊的。

然后一天就面了三轮。下午hr发消息约了明天的hr面。

可能是穿着 leetcode 的短袖在面试,算法都出的没那么恐怖。面试官问了挺多代码题的,记得最后关闭那个浏览器窗口的时候,上面有 14 个题目的 tab。。。。

hr面

  • 一些私人问题以及我对开源和技术的一些看法。

  • 问了下之前的翻译经历(掘金翻译了20多篇文章加上 deno 中文文档的翻译),碰巧也穿着之前参与掘金翻译送的短袖。

  • 问了钱在心中的地位,之后在北京的发展。

  • 现在手上快有的offer(阿里云还在坐等hr面,猿辅导转正面试)

问了也挺久的,大概快40分钟吧。

然后面完之后三个工作日就接了意向书。

Others

个人 github: https://github.com/fireairforce

有个 leetcode 的刷题 repo,已经用 js 刷了 600 多题了。

欢迎 star:https://github.com/fireairforce/leetCode-Record

更多模拟面试

全部评论

(15) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐