字节跳动面试记录

您所在的位置:网站首页 字节跳动ui设计面试经验 字节跳动面试记录

字节跳动面试记录

2024-07-03 05:55| 来源: 网络整理| 查看: 265

面试的职级是 2-2,技术面一共 3 轮,每一面都要手写算法。我在 2023 年 7 月下旬被裁员,于 2024 年 2 月初面试字节跳动,没有通过第 3 轮面试,在这里记录下当时的面试问题,希望帮到大家

第一轮面试 

首先是自我介绍,主要介绍在任职的公司落地了低代码平台和用户操作记录回溯,还向开源项目 rrweb 提交了两个PR,最后是公司的插件化架构。

自我介绍完毕,面试官的第一个问题是,为什么离职?我因为被裁而离职,如实回答了,之后每一轮面试官都会询问什么被裁,另,由于我从离职到面试字节中间隔了7个月左右,面试官还重点关注了,离职之后在做什么。离职之后,我首先回家休息了近 1 个月,旅游了近 2 个月,然后写书花了 1 个多月,到 11 底开始找工作,这没什么好隐瞒的,如实告知了面试官。

第一轮主要面试 JS 和 React基础知识,问题如下:

在 js 中有浮点数运算不正确的时候,比如 0.1 + 0.2 不等于 0.3 这是什么原因,要怎么解决

对 webpack 有了解吗,我看你在做低代码

webpack中 loader 与 plugin 有什么区别

有没有写过 plugin

我们写代码的时候是 es6,浏览器运行的时候是 es5,在做代码转化的时候,webpack 帮我们做了什么事情

在 React 类组件中,为什么修改状态要使用 setState 而不是用 this.state.xxx = xxx

setState 函数做了哪些事情

React 生命周期 commpoentWillUnMount() 对应的 hooks 要怎么写

useState 的原理是什么,背后怎么执行的,它怎么保证一个组件中写多个 useState 不会串

函数组件重新渲染的时候怎么拿到useState之前的状态,而不是得到初始化的状态

React为什么要自定义合成事件

你的简历里写了关注资产损失,这是做什么事情。

你在地代码开发与实践上也做了一些事情,当时是做什么呢?

表单的联动是怎么处理的

当时做这个表单驱动的时候,为什么没有用 Formily 现成的方案呢

被裁的原因是什么呢

从离职到现在一直没有找工作吗?

从11月底到现在两个月了有哪些 offer 了吗

算法题

实现 loadsh.get 方法

计算二叉树的最大深度

岛屿的最大面积

最后是反问环节。面试时长 1 小时 40 多分钟。

第二轮面试

由于简历重点介绍了低代码,并且在自我介绍的时候,提到了我的书——《低代码平台开发实践:基于React》,因此面试官大部分问题都与低代码相关。问题如下:

为什么写书

能把你的掘金上发的低代码文章发给我吗?

低代码针对的中后台是什么样的

table 中的字段也是可以配置的吗?Table 头和每一项下面展示的内容怎么配置

为什么要做低代码

做低代码系统的时候你有考虑研发量吗

整个低代码都是你一个人做吗?

当属性面板上有修改之后,画布刷新的机制是怎么样的

继续讨论研发量,开发规划的问题

没有考虑使用已有的低代码项目做二次改造吗

做低代码的时候有没有遇到比较难的问题,怎么解决的

被裁的原因

算法题

最大子数组和

最长回文子串

最后是反问环节。面试时长 1 个小时左右。

第三轮面试

这一轮的面试官没让做自我介绍,一开始就是写算法题

算法题

K 个一组翻转链表

下面是询问的问题

为什么写书

在市面上类似的书有一些,你的书有什么不同

什么场景适合做低代码,给什么用户使用

低代码最适合的场景是不是no-code?

怎么界定低代码和无代码的边界

你做的低代码平台能实现的最复杂的一个场景是什么样的

为什么json要转化为手写代码

转化成手写代码是什么样的

源码解析器是什么

开发低代码的背景

整个项目的周期有多长

从酷家乐离职之后主要在写书吗?

用户操作记录回溯工具是为了解决什么问题

用户记录回溯工具有达到目的吗

主管有没有说被裁的原因

最后是反问环节。面试时长 1 个小时左右。

总结

面试被问到的重点问题如下:

为什么被裁

被裁之后在干什么

低代码项目的迭代安排和人员安排

市面上的已有低代码方案

需要改进的点:

为了迫使自己在对方问问题之后思考问题,重复一下问题里的关键字。比如,当对方问为什么 React使用 setState() 修改状态,而不是直接给 this.state 赋值去修改?重复一遍面试官的话,如果面试官说的话很长,那就提炼出关键字后重复一遍。

当某个方案有多个原因时,先回答1,2,3,再逐条分析。比如为什么 React 要封装合成事件?为什么要将低代码 json 转成手写代码?为了让自己回答问题更专注,使用手指头记录自己说到了第几点。(结构化)

写在后面

曾经我在公司落地的低代码,大概存在以下5个问题:

搭建完成的应用无法独立部署

无渲染沙箱,当处于编辑态时,画布无纯净的运行环境

无组件市场,低代码设计器能使用的组件全部写死在项目内

用来描述低代码应用的Schema无版本管理,无法查看以前保存的版本。

开发人员无法对搭建完成的应用二次开发。

《低代码平台开发实践:基于React》解决了上述 5 个问题,还涉及业务场景的需求分析,从开发技术层面来讲,读者将了解到下面这5个方面的内容:

1)JSON Schema 保存到 Git 仓库中,它不影响线上运行的低代码应用,只用于 APP 各版本的预览和重新编辑。

2)线上运行的应用与 JSON Schema 脱钩,即便低代码平台停止服务,线上的 APP 依然能正常运行。

3)引入渲染沙箱,设计器和渲染器位于不同的 Frame,此时画布拥有纯净的运行环境。

4)设计组件规范,开发脚手架,其用于开发、调试和上传低代码组件,这使设计器能使用丰富的组件去开发应用,同时让低代码组件和低代码平台解耦。

5)开发低代码平台所需的基础设施,包括 GitLab CI/CD、npm 私有库,LDAP 账号管理系统等。

《低代码平台开发实践:基于React》由 4 大部分组成,其中第 3 部分介绍开发低代码平台涉及的各个方面,这部分难度最大。如果你是一名经验丰富的软件工程师并且对低代码已有了解,建议从第 4 章开始阅读;如果你对低代码了解得不多,请一定从第 1 章的基础理论知识开始学习。

第一部分是基础篇,只包含一章,它介绍后续章节使用的理论知识,涉及的知识点有 React Context API、React Hooks、React Ref、Mobx 和 MongoDB 等,要想在本地电脑运行本图书介绍的低代码平台,你需要在自己电脑上下载 MongoDB。

第二部分为需求分析篇,包含两章,它介绍低代码平台开发的应用要满足哪些需求,同时也介绍低代码平台的功能。

第三部分为实战篇,包含五章,是本图书的重点,介绍如何开发低代码平台,其中展示了大量的代码示例,涉及的内容有低代码架构策略、低代码组件、设计器、渲染器和代码生成器。

第四部分为基础设施篇,只包含一章。低代码平台用于创建应用程序,它本身也是应用程序,值得一提的是,它对研发体系的要求相当高。如果你手上没有一套完善的研发体系,涵盖代码托管、CI/CD、CDN,npm私有库等部分,那么妄谈开发低代码平台。基础设施篇涉及的内容有,如何使用 GitLab CI/CD 建立持续部署 pipeline、如何搭建 npm 私有库,如何搭建 LDAP 账号管理系统等。

《低代码平台开发实践:基于React》提供了 7 个开源项目,全部源文件可以从github.com/react-low-c…下载。

来自-呵遇er,欢迎大家关注!

在线备战面试、刷题指南,拿走不谢,要学会站在别人的肩膀上提升自己点击这里-->

最后:

 如果你现在正在找工作,可以私信“web”或者直接添加下方小助理进群领取前端面试小册、简历优化修改、大厂内推以及更多阿里、字节大厂面试真题合集,和p8大佬一起交流。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3