📜  Flipkart 面试体验 |第 30 组(适用于 SDE 2)(1)

📅  最后修改于: 2023-12-03 15:15:06.610000             🧑  作者: Mango

Flipkart面试体验 | 第30组 (适用于 SDE 2)

最近,我有机会参加Flipkart的面试,并想要分享我的经验。这次面试适用于SDE 2级别的候选人,但我相信这些经验也可适用于其他级别的职位。

面试前

在面试之前,我研究了Flipkart的技术堆栈,并仔细阅读了他们的招聘职位描述。这为我提供了一个很好的理解他们正在寻找什么,以及我需要准备哪些主题的基础。

一面

我的第一轮面试由两个部分组成:技术面试和系统设计面试。技术面试最初主要关注数据结构、算法和系统设计方面的基础知识,并在后来涉及更高级别的主题,如多线程编程和缓存。系统设计面试重点关注我的设计思路,是否能考虑到不同的边缘情况并在最短时间内做出决策。

技术面试问题

以下是我从我的技术面试中遇到的一些问题的摘录:

  • 解释HashMap的工作原理,并为其数据结构提供示意图。
  • 什么是伪随机数生成器以及该如何实现它?
  • 解释有向无环图(DAG)以及如何查找两个节点之间的最短路径。
  • 解释什么是二叉树平衡,并提供示意图。
  • 你听说过分布式哈希表吗?并提供一个高可用性系统如何处理它的示例。
系统设计问题

以下是我从我的系统设计面试中遇到的一些问题的摘录:

  • 请设计一个安全凭证的存储系统,包括用户注册、登录、注销和禁止访问的功能。
  • 如何设计一个高性能Web API,可以同时支持大量用户,并保证资源不足的情况下不会出现大幅度延迟或故障。
  • 请设计一个水平扩展的缓存系统,可以在不影响主要业务功能的情况下处理短期请求量的突增。
  • 如果要在全球分布式系统中提供按地理位置聚合的数据分析,请设计出一个方案并亲自解释其工作原理。
二面

我的第二轮面试由三个独立的技术面试组成,并在每个技术面试之间分别进行了一些小型的“游戏化”面试环节,例如编写代码并进行快速代码审查。

技术面试问题

以下是我从我的技术面试中遇到的一些问题的摘录:

  • 解释什么是智能指针并说明如何实现它。在Java中是否需要实现智能指针?
  • 请解释一下操作系统中的死锁问题,并说明如何在设计时避免它。
  • 给定一组无序整数,请提供一种算法,从中找到两个数,使它们的和等于给定的目标整数。
  • 有两个进程在共享内存区域中使用同一个变量。他们中有一个进程将该变量的值增加1,而另一个进程将该变量的值减1。请提供一种有效的方案来避免多个进程同时操作该变量,并确保线程安全。
总结

面试过程总的来说非常具有挑战性,以及在技术、系统设计和编码方面都具有很高的要求。我感到很高兴有机会参加这个面试,从中获得了很多宝贵的经验和知识,同时也向我表明了到达一定水平所需具备的技能和知识。

如果你也想参加Flipkart的面试,我强烈建议你充分了解他们的技术栈和要求,并准备好讨论和展示你的技能。我希望这些经验能帮助到你,并对你的招聘过程有所帮助!