刚结束 GS frontend 的面试 loop,职位在他们某个内部工具团队。分享一下,因为 GS 的 frontend 面试和你典型的 startup,甚至很多大厂 loop 都不太一样,而且我之前几乎找不到相关信息。
先说第一点:GS 不太做那种「做个 todo app」风格的 frontend take-home。他们更看重核心 JavaScript 和浏览器基础,而不是 React 框架梗。如果你写了 3 年 hooks 但从没认真想过 event loop,这会是一次残酷的清醒。
实际考到的内容: 原生 JS:closures、原型继承、async/await vs promises、事件委托。不是那种「what does this code output(这段代码会输出什么)」的刁钻题,而是很真实的「explain the mental model(解释一下你的心智模型)」类型问题。 浏览器性能:怎么定位并修复慢页面,你会看哪些指标,reflow vs repaint 怎么影响。他们点名提了 Core Web Vitals。 1 道系统设计:设计一个实时 dashboard,随市场数据更新。他们问了 WebSocket 管理、状态一致性、断线了怎么办。 无障碍:顺带提到,但没有深挖评估。 React:问了一道组件生命周期和渲染行为。他们对框架不执念,但知道我在用 React,所以会往那边追。
behavioral: 两轮,而且都挺实在。「tell me about a time you had to push back on a product requirement for technical reasons(讲讲你曾经因为技术原因不得不对产品需求提出反对的一次经历)」是最尖锐的一题。
整体感觉他们想要的是能像系统工程师那样思考的 frontend engineer。他们做的内部工具很复杂、数据密度高、性能敏感。如果你的前端心智模型是「write JSX, pass props, done(写 JSX,传 props,搞定)」,这套 loop 会把问题暴露得很明显。