经验年限:4.5 年。
组织得非常好,整个过程在 3 天内完成,而顶级跨国公司每轮都要延迟数周。
总共有四轮。
第 1 轮(数据结构):持续时间:60 分钟。
- 反转给定的链表。 [https://www.geeksforgeeks.org/reverse-a-linked-list/]
- 查找已排序数组中元素的第一个和最后一个位置。 [https://www.geeksforgeeks.org/find-first-and-last-positions-of-an-element-in-a-sorted-array/]
- 检查数组中是否有两个元素的总和等于数组其余部分的总和。 [https://www.geeksforgeeks.org/check-exist-two-elements-array-whose-sum-equal-sum-rest-array/]
为了回答这些问题,人们讲述了一些故事,但它们最终被翻译成上面列出的故事。我没想到 UI 角色会被问到这些类型的问题,但我在规定的时间内回答了所有这些问题。
第 2 轮(HTML + CSS + JS):持续时间:45 分钟。
- 因为这个职位是基于UI设计的,面试官就web技术工具对我进行了广泛的提问。
- 我记得有几个问题:
JS:
- 标准 JS 概念、JavaScript 中的去抖动和节流、JavaScript 中的柯里化以及 JavaScript 中的记忆。
Javascript
var y = 10;
(function x() {
console.log(y); // Output ?
var y = 20;
})()
CSS
Div 1 div>
Div 2
- 讨论立即调用函数表达式、var 和 let,以及揭示模块模式。
CSS:
CSS
Div 1 div>
Div 2
后续的特殊性、级联效应、继承性、跨浏览器样式问题如何处理? (CSS Normalization and Reset) 性能增强、关键渲染路径等。
第三轮(低级设计):
我们从一个简单的问题开始。
Oyo 房间里有一个聊天区。每次聊天都需要与服务器建立套接字连接。然而,支持太多开放连接的成本高得令人望而却步。因此,我们必须在聊天组件中实现以下内容:
- 当用户点击聊天按钮时,就建立了一个套接字连接。 (无需对此进行编码;它只是用于套接字交互的伪代码;无需担心实际的语法和代码)。
- 单击后 30 秒应终止连接。如果用户在聊天区输入内容,则计时器将重置,30 秒计数器将重新启动。 (这是这里要求的主要任务,它类似于去抖动)。
然后是关于 setTimeouts、事件队列、mico 和宏任务的小讨论。 Twitter 应该被设计。 ( 用户界面系统设计 ) 您将如何管理状态?您会推荐哪些库用于状态管理?你如何让你的帖子实时更新?讨论创建一个单独的组件库。
我提供了一个基于 React 上下文的解决方案 -> 将整个应用程序分解为小上下文。
第 4 轮(管理轮):
- 讨论您如何监控您的应用程序、维护插件质量和 PR 评论、指导经验、用户数据分析、您如何决定业务影响、您引以为豪的事情以及您如何处理冲突。如果您被分配了一项乏味的任务,例如在没有任何实际工作的情况下维护代码库,您会如何反应?有关文化契合度和工作经验的更多信息。
我的想法:
- 我可以肯定地说,OYO 的人非常勤奋。与许多顶级跨国公司相反,他们不想在采访中吹嘘。这些问题也相当标准,而不是我们需要想象和优先考虑新功能的那种产品经理问题。
- 描述也非常清楚,一点也不模棱两可。这完全是技术性的,我接受了 OYO Vacation Homes 的面试。
终于,我收到了offer letter。