远足面试经验 |第 7 套(适用于 SDE iOS) | 2年以上经验
我最近参加了德里办公室的 iOS 开发人员 Hike Hiring Drive。候选人是 0-2、2-4 和 4 年以上的经验。我在 LinkedIn 上得到了招聘人员的推荐。
第 1 轮:移动应用程序 -(1:30 小时)他们提供了 Flickr Api,任务是构建 iOS 应用程序,使用搜索栏输入获取图像并显示图像。确保 UI 不应该被阻塞,用户输入时的多个请求处理,代码结构,分页和可读性以及图像缓存是加分的,如果你已经实现了 .
我在 50 分钟内构建了应用程序 – 链接查看 https://github.com/Vasu05/Hike-Messenger-Hiring-iOS-Test
应用完成后,我的应用由iOS经理审核。他很酷,很友好。他问我遵循的模型结构,我的应用出现崩溃,问我调试,我做了,告诉他崩溃的原因。他询问GCD,询问代码优化。他询问如何检测用户是否滚动页面底部。他彻底检查了应用程序,他正在键入、取消、清除数据以查看应用程序的行为。他印象深刻,因为我已经使用代码优化构建了所有主要功能。然后我们讨论了我目前正在从事的项目,我过去所做的事情。这一轮审查大约持续了 1:20 小时。他让我吃午饭,等第二轮。
第 2 轮: DS 算法(30 分钟)–
- 在 Array 中找到两个总和等于值 x 的元素。我使用 hashmap 做到了。
- 树是否是 BST。
- LRU 实现
- iOS中线程处理的讨论
需要正确的代码,他们给了足够的时间思考并要求更好的方法。我在船上对所有三个进行了编码并进行了解释。面试官印象深刻,让我再等一轮。
第三轮:这轮应该由公司副总裁参加,但他正忙于其他候选人,所以另一个领导来找我再参加一轮。他问了两个问题
- 检测链表中的循环并删除循环。
- 获取两个链表的合并点。
同时我在纸上写第二个问题的代码,他说他已经面试完了,让我去见 VP 再做一轮。
第四轮:本轮由公司副总裁主持。他介绍了他做了什么,他们在关注什么,并谈论了他们与市场上其他消息传递应用程序的不同之处。他问我你更喜欢纸笔还是在屏幕上写字,然后他让我参加,我应该在三星电视上用笔写代码。他问 -
- 无限的词流你必须告诉k个最常出现的词。我告诉他使用 heap 和 trie 的方法,他让我使用另一种数据结构进行搜索,我给了他三叉树方法,他仍然期望更好,并给了我使用 map 的提示,然后给出了使用 heap 和 hashmap 的解决方案。他让我编码。
- 检查二叉树是否是最小堆。他离开了房间,问我想优化解决方案。他在我写了二叉树和堆的属性之间的 30 分钟休息后来了,然后写了检查树是否是最小堆的代码。他很满意。
- 他给了我设计问题——他让我在用户输入时构建贴纸搜索选项。我告诉他关于内存缓存的事情,他问我可以使用哪些类型的缓存。我告诉他有应用程序、磁盘内存和网络内存维护的应用程序缓存。我已经制作了搜索查询如何逐步工作的图表。然后我们讨论了用户输入时的多个字符处理,我说我们可以使用计时器来处理新的请求。然后他问我在用户与 screen 交互时不应阻塞主线程。我告诉他使用 GCD,我们对此进行了长时间的讨论。他很满意,这是一个漫长的回合,当我被卡住时他在帮助我。然后我们讨论了公司文化,他是否还在编码,他是如何开始使用 Hike messenger 的。他让我再等一轮。
- 还有很多问题我不记得了。
这一轮进行 1:40 小时。
毕竟我已经很累了,因为我已经正确地给出了所有的问题,这个持续的评估是从早上 10:30 开始的。
又是5点30分左右,他们又安排了一轮面试。
第五轮:面试官扫描了我的简历,让我简单介绍一下。我向他解释了我目前的公司项目和大学项目。他是高级后端开发人员。他开始问我Java问题。我告诉他我已经 1.5 年没联系上了,他仍然问。
- 为 1 个作者和 n 个读者问题编写代码。我告诉他我们可以使用锁(静音和信号量)并给了他解决方案。
- 他问虚拟指针——我告诉他我不记得了。
- 堆栈与堆内存。我用例子给他解释。
- 单例类,为什么我们使用这个。他对解释不满意。
- 他问了一些基本的Java问题,比如什么是公共的,私有的,为什么Java中只有一个 main函数。
毕竟这个招聘人员要求我离开,第二天他们说最后一轮不符合预期。我没有被选中。提示 - 像大学安置一样准备面试,即使与您的招聘职位无关,他们也可以提出任何问题。