📌  相关文章
📜  SDE-2 的 Flipkart 面试经验(3.5 年经验)

📅  最后修改于: 2021-09-23 05:12:54             🧑  作者: Mango

接到了 Flipkart SDE 2 招聘人员的电话

第 1 轮(机器编码轮)

在这里,我们必须带上自己的笔记本电脑,其中已经安装了我们首选的 IDE 来编写代码。

设计一个具有多级缓存的计算机系统。
缓存分为三个级别。 L1、L2、L3,如果需要,我们可以添加更多或删除级别。
每个缓存都有不同的属性,如容量、读取时间、写入时间和驱逐

缓存应该支持两个主要操作:
命令:行为
获取密钥 -> 从最低层 L1 开始。检查密钥是否存在。如果找到,则向上传播该值。如果没有找到,则进入更深层次的 L2
Set Key -> 检查最低层 L1,检查是否存在,如果不存在,则将其添加到那里并继续进行更深层次的操作。如果已经在更深层次,从那里反弹。
STATS -> 最近“N”个操作的平均读取时间、最后“N”个操作的平均写入时间、可用容量、总驱逐计数

我们将有 90 分钟的时间。如果需要打包,可以要求额外的 15 分钟。

代码应该是可演示的、功能完整的、边缘案例处理、模块化、可扩展性,不应该是单一的等。

面试官确保您在开始评估之前完全理解问题。在开始思考和解决问题之前,一定要问所有澄清问题。

提示 :

1、不要紧张

2. 尝试在前 15-20 分钟内提出 LLD 以及代码的外观。仔细考虑边缘情况并在纸上试运行一个例子。在 15-20 分钟内无需编写任何代码。

3. 了解将如何实施之后,开始编写代码并在接下来的 1 小时内完成大部分工作。添加驱动程序和测试以在最后几分钟检查代码的正确性,应努力使其可演示且功能完整。

4. 向面试解释你为什么写一个类并以特定的方式构造你的代码,每个人的代码都会不同,重要的是我们解释我们采用一种方法而不是另一种方法的原因。


第 2 轮(解决问题):

1)类似问题,https://www.geeksforgeeks.org/minimum-iterations-pass-information-nodes-tree/
要求先告诉方法,时间复杂度,空间复杂度,然后编码。

2) https://www.geeksforgeeks.org/minimum-number-platforms-required-railwaybus-station/
与此类似但不同的域。

3)另外两个问题。不完全记得这些问题,但它们在 GFG 中几乎属于简单/中等级别。问刚好不需要写代码的方法。

询问所有人的时间和空间复杂性。

提示 :

1. 准备充分,涵盖 GFG 和 Cracking the Coding 面试的全部主题,应该能回答几乎所有问题
2.在纸上写代码,准备时大声思考有很大帮助。

第三轮(招聘经理轮):

1)对以前的项目进行一些深入的讨论。可扩展性、您开发的服务的 RPS、以前的团队动态(有多少成员团队?您承担了哪些责任?等)

2)你做过的具有挑战性的项目,解释一下。

3)团队冲突与团队管理。以前有任何冲突,你是如何解决这些问题的等等。与经理有任何冲突吗?

4)最近你学到的最让你兴奋的事情是什么?

5) 为什么是 Flipkart?你在找什么?什么最让你兴奋?

6)你的优点和缺点是什么? (技术上)。你有没有做任何事情来改善弱点?

还有很多类似的问题,主要与工作、性格、处理情况等有关

这更像是一场文化契合。

提示 :
1. 你应该能够定性地详细谈论你过去所做的工作。

2. 大多数情况下,当您开始解释以前的项目(或您以前解决的问题)时,会错过上下文。在这些情况下,首先简要定义问题,如果可能,尝试将其映射到通用域,然后开始解释您是如何处理的,花费了多少时间以及它产生了什么影响等。

第 4 轮(设计轮)

设计一个航班预订系统。

这通常约为 1 – 1.5 小时。它持续了将近2个小时。

这是最有趣的一轮,我们可以与面试官一起详细讨论所有问题并进行头脑风暴以解决手头的问题。被采访者有责任从采访者那里反弹想法并引导讨论朝着那个方向发展。

从范围界定、需求收集、预期要解决的问题开始,我可以忽略或添加此功能的可扩展性等
从 HLD 开始,您将要使用的组件、选择一个的解释和理由、数据库、消息代理、断路器、所有同步流的位置、异步流的位置、网关、代理、索引存储(如果需要)等。
DB Schema,花时间在这上面,因为如果要满足功能,数据建模很重要。
站点的工作流程、有哪些 API 以及它们如何工作、数据库条目是如何创建的、预订是如何进行的、处理竞争条件、一致性
以一个组件/流程为例,深入了解它的实现方式,即 LLD。主要是基于 OOP 的 LLD。
取下一个组件,系统将如何反应?一致性高于可用性?实现 99.9% 的可用性?超过包络计算RPS,每分钟订单,多少航班?我们需要多少数据?数据增长问题、扩展问题等。

提示 :
1.这一轮可以去任何地方,准备有很大帮助。

2. 尝试用不同的领域做不同的问题,比如出租车预订、送餐、多人国际象棋、自定义消息代理等。我们做的越多,就越容易。

3. 概述 HLD 概念,如消息代理、负载平衡、SQL 与 NoSQL、不同类型的缓存模式、CAP 定理等
参考这个 https://github.com/donnemartin/system-design-primer

4. 做模拟面试很有帮助。如果你连续面试,那会有很大帮助,经过前几次面试后,你的设计回合肯定会有所提高。

感谢整个 GeeksforGeeks 社区提供的所有资源和帮助。