SE-1 的 Zynga 面试体验(有经验)
采访在班加罗尔工作室进行。
超过 1 年的经验。
有 3 轮技术 F2F 轮次,所有轮次都是白登轮轮,其中将编写生产就绪代码(如果被要求)。
第 1 轮:1 小时
本轮共有 3 个问题:
- 解析并检查 IP 地址列表是否为有效地址 – https://www.geeksforgeeks.org/program-to-validate-an-ip-address/
- 将罗马数字转换为十进制 - https://www.geeksforgeeks.org/converting-roman-numerals-decimal-lying-1-3999/
- 扫雷游戏设计和代码——更多关于不同组件以及如何编写代码——可以使用 DFS/BFS 等图形算法来解决。
除上述问题外,深入讨论Java和 C++ 中的 Maps。地图如何处理碰撞——线性探测和链接概念。哈希函数是如何实现的。
讨论以前的工作经验和使用的技术。
第 2 轮:1 小时
- 详细讨论 OS 中的并发性——信号量、互斥锁、线程——二进制信号量与计数信号量。
- 讨论垃圾收集和线程等Java概念。垃圾收集器如何删除未使用的引用?
- 什么是 C++ 中的智能指针。
- 进一步讨论 Maps 和Java中不同类型的地图实现(TreeMap、Linked Hash Map 等)
- 设计和编码聊天 UI 如何处理有界屏幕(Whatsapp、Facebook 聊天屏幕)中的传入消息流。关于android UI的一些想法帮助我解决了这个问题。我使用 LinkedLists 和 RecyclerView(Android 概念)给出了一个解决方案。面试官对解决方案并不完全满意。关于 UI 上的滚动速度、手势控制等内容的讨论。
第 3 轮:招聘经理轮 – 1.5 小时
- 讨论以前的工作经验和所从事的技术。
- 关于树的问题 - https://www.geeksforgeeks.org/print-level-order-traversal-line-line/
- https://www.geeksforgeeks.org/zigzag-tree-traversal/ - 上述问题的变体。
- https://www.geeksforgeeks.org/given-a-sequence-of-words-print-all-anagrams-together/ - 首选使用哈希图和排序的解决方案。
- 关于地图和碰撞的讨论。
- 面试官让我粗略地画出我在以前的公司工作的应用程序的架构。他问我使用的技术和架构中每个组件的作用。
- 简要讨论 TCP 与 UDP。 TCP/IP 模型中的不同层以及每层负责的内容。
- 讨论以前的项目。
- 为什么我想加入 Zynga 以及对公司的期望。
我最终被选中并接受了这个提议。
面试体验真的很棒,面试官非常友好和乐于助人。