github stra 加星和字节跳动 2-2 职级前端面试全记录(附高频问题 + 算法题 + 避坑指南)

41 阅读7分钟

2023 年 7 月下旬,我遭遇裁员,经历了近 7 个月的休整与沉淀后,于 2024 年 2 月初冲刺字节跳动 2-2 职级前端岗位。此次面试共 3 轮技术面,每一轮都包含手写算法环节,最终虽未通过第三轮,但梳理了完整的面试流程、核心问题及复盘总结,希望能为正在求职的同行提供参考。

Taimili 艾米莉 ( 一款专业的 GitHub star 管理和github 加星涨星工具taimili.com )

艾米莉 是一款优雅便捷的 GitHub star 管理和github 加星涨星工具,基于 PHP & javascript 构建, 能对github star fork follow watch 刷星管理和提升,最适合github 的深度用户

WX20251021-210346@2x.png

面试整体概况

  • 面试职级:2-2(前端)
  • 面试轮次:3 轮技术面(均含手写算法)
  • 面试结果:未通过第 3 轮
  • 核心聚焦:低代码平台开发(简历重点 + 项目经验)、JS/React 基础、算法能力、职业经历衔接

第一轮面试:基础与项目初考察(1 小时 40 分钟)

开场与职业经历问询

首先进行自我介绍,重点分享了过往工作中落地低代码平台、开发用户操作记录回溯工具的经历,提及向开源项目 rrweb 提交 2 个 PR,以及参与公司插件化架构搭建的细节。

面试官紧接着围绕离职相关问题展开询问,核心包括:

  • 离职原因(如实说明被裁)
  • 离职后 7 个月的时间安排(1 个月休息 + 2 个月旅游 + 1 个多月写书 + 11 月底启动求职)
  • 求职进展(近两个月是否收到其他 offer)

技术基础问答(JS+React+Webpack)

  1. JS 浮点数运算问题:0.1+0.2≠0.3 的原因及解决方案
  2. Webpack 核心概念:loader 与 plugin 的区别,是否有自定义 plugin 经验
  3. ES6 转 ES5 过程中,Webpack 的具体作用
  4. React 类组件:为何必须用 setState 修改状态,而非直接赋值 this.state.xxx
  5. setState 的内部执行逻辑
  6. 类组件 componentWillUnMount 对应的 Hooks 实现方式
  7. useState 原理:多个 useState 不串值的底层逻辑,函数组件重渲染时如何获取历史状态
  8. React 自定义合成事件的设计初衷

项目细节深挖

  • 简历中 "关注资产损失" 的具体工作内容
  • 低代码开发与实践的核心职责
  • 表单联动的实现方案
  • 为何未采用 Formily 等现成方案做表单驱动

算法题(现场手写)

  1. 实现 lodash.get 方法
  2. 计算二叉树的最大深度
  3. 岛屿的最大面积

反问环节

针对团队技术栈、低代码在字节的应用场景、业务发展重点等问题与面试官交流。

第二轮面试:低代码深度聚焦(1 小时左右)

由于简历重点突出低代码项目,且自我介绍时提及个人著作《低代码平台开发实践:基于 React》,本轮问题几乎全部围绕低代码展开。

职业与项目背景问询

  • 写书的初衷与契机
  • 能否提供掘金上发布的低代码相关文章
  • 被裁的具体原因(本轮再次重点询问)

低代码核心问题

  1. 低代码针对的中后台场景具备哪些特征
  2. Table 组件的配置能力:表头及字段展示内容的配置方式
  3. 做低代码平台的核心动因
  4. 开发前是否评估过研发量,有无明确的开发规划
  5. 低代码平台是独立开发还是团队协作成果
  6. 属性面板修改后,画布的刷新机制
  7. 为何未基于现有低代码项目做二次改造,选择从零开发
  8. 开发过程中遇到的核心难点及解决方案

算法题(现场手写)

  1. 最大子数组和
  2. 最长回文子串

反问环节

向面试官咨询了团队在低代码领域的技术迭代方向、现有产品的优化重点等问题。

第三轮面试:深度技术 + 场景思辨(1 小时左右)

本轮未要求自我介绍,开场直接手写算法题,后续围绕技术深度、项目价值、场景认知展开问询。

算法题(现场手写)

K 个一组翻转链表

核心问询问题

  1. 写书的核心目标,与市面上同类书籍的差异化
  2. 低代码的适用场景与目标用户群体
  3. 低代码与无代码(no-code)的边界界定
  4. 所开发的低代码平台能实现的最复杂场景
  5. 为何要将 JSON 转化为手写代码,转化后的代码形态
  6. 源码解析器的核心功能与实现逻辑
  7. 开发低代码平台的背景与初衷
  8. 整个低代码项目的开发周期
  9. 从酷家乐离职后的核心安排(是否以写书为主)
  10. 用户操作记录回溯工具的核心解决问题与落地效果
  11. 主管是否明确说明被裁原因

反问环节

就字节低代码平台的技术架构、团队协作模式、后续技术规划等问题进行交流。

面试重点问题汇总

高频问询方向

  1. 离职与职业衔接:被裁原因、离职后 7 个月的时间分配、求职进展
  2. 低代码专项:项目背景、研发规划、技术选型、难点解决方案、与现有方案的差异、场景适配性、与无代码的边界
  3. 个人著作:写书初衷、内容差异化、核心价值

需改进的答题技巧

  1. 强化问题拆解:面对复杂问题时,先重复关键词或提炼核心诉求,确认理解无误后再作答
  2. 结构化表达:涉及多原因、多维度的问题,采用 "1、2、3" 分点阐述,搭配手势辅助记忆,确保逻辑清晰、重点突出(如 "React 合成事件的设计原因"“JSON 转手写代码的动因” 等问题)

附:个人著作《低代码平台开发实践:基于 React》核心亮点

解决的核心痛点(过往低代码平台的 5 大问题)

  1. 搭建完成的应用支持独立部署
  2. 引入渲染沙箱,设计态画布拥有纯净运行环境(设计器与渲染器分离在不同 Frame)
  3. 构建组件市场:通过组件规范 + 开发脚手架,实现组件的开发、调试、上传,摆脱组件写死限制,实现组件与平台解耦
  4. Schema 版本管理:将 JSON Schema 存储于 Git 仓库,支持版本预览与重新编辑
  5. 支持二次开发:开发人员可对搭建完成的应用进行拓展开发

核心技术覆盖

  1. 基础技术:React Context API、React Hooks、React Ref、Mobx、MongoDB(本地运行需安装)
  2. 核心功能:低代码架构策略、组件开发、设计器实现、渲染器开发、代码生成器
  3. 基础设施:GitLab CI/CD 持续部署、npm 私有库搭建、LDAP 账号管理系统

书籍结构与阅读建议

  • 第一部分(基础篇):1 章,涵盖核心理论知识,适合低代码入门者
  • 第二部分(需求分析篇):2 章,讲解低代码平台的需求与功能设计
  • 第三部分(实战篇):5 章,核心技术实现 + 大量代码示例,难度较高
  • 第四部分(基础设施篇):1 章,聚焦研发体系搭建

阅读建议:有低代码基础的资深工程师可从第 4 章开始;入门者建议从第 1 章基础理论逐步学习。开源资源:书中 7 个开源项目的完整源码可通过github.com/react-low-c… 获取。