📜  EzCred 面试经历 | SDE——班加罗尔

📅  最后修改于: 2022-05-13 01:58:18.965000             🧑  作者: Mango

EzCred 面试经历 | SDE——班加罗尔

第 1 轮:(在线编码)

这是一个在线回合,提供了一个签名的测试 URL,要求在提供的最后日期内完成测试。

这是一个 1.5 小时的测试,包含 2 个编码问题和 10 个基于软件开发和计算机科学基础(Java、代码调试、GIT、DBMS 等)的 MCQ。

我被告知根据这一轮的结果,我将被要求参加现场面试。

编码问题是:

  1. 最大水果数
    这是标准的“与相邻元素的最大子序列和在索引上至少有 K 个差异”问题,但语言和单词发生了变化。
  2. https://medium.com/@ombharatiya/lightsabers-problem-hashing-programming-in-c-b546c6f5331a

我解决了几乎所有的 MCQ,但由于时间限制,我完全解决了第二个问题和部分解决了第一个问题。

第 2 轮:(数据结构和算法)

这是现场回合。第二天我被叫到他们班加罗尔的办公室,第一轮是基于数据结构和算法的。
本轮由一名高级软件工程师进行:

  1. 编写一个函数来获取两个链表的交点
  2. 将数组分成三个相等的和段

第 3 轮:(数据结构和算法)

这一轮是由另一位具有 IIT 背景的高级软件工程师参加的:

  1. 计算数组中总和可被 K 整除的对

这是一个 1/2 小时的面试,我将这个问题解决到 O(N) 复杂度。

第 4 轮:(系统设计 - LLD)

本轮由技术经理进行。他问我之前的面试。

他刚刚在第三轮的 5 分钟内出现,直到那时我遇到了使用 Segment Tree 方法的 O(logN) 复杂度的最后一个问题的解决方案。他问我如何将 Segment tree 应用于各种问题,并且对我的回答和示例感到满意。

  • 来自Java的问题(静态、OOP、Singleton 等)
  • 各种身份验证机制和实现
  • 设计一个系统,可以仅使用他的名字和姓氏来验证一个人
  • 有关我的项目、当前雇主经验等的更多问题。

这是一个很好的 LLD 讨论轮,他的反馈看起来很好(例如不是很好),尽管我用我目前的经验用最好的解释回答了所有问题。

结果:未选中。

这是一家初创公司,拥有由 8 名技术人员组成的小型团队,共有 15 名在职人员。他们在各个方面看到候选人。由于我也已经在拥有 500-1000 名员工的初创公司工作,他们肯定会对我的很多事情有不同的看法,我尊重他们的决定。

对候选人的提示和建议:

  1. 当您尝试解决问题或设计系统时,请解释您的思考过程。这将帮助面试官知道您是否朝着正确的方向前进,并且可能会在您遇到困难时为您提供帮助。
  2. 请不要一开始就尝试用最优解来解决问题。如果你知道这种幼稚的方法,那就先这样做,这会给面试官一种你可以解决问题的印象。一旦你有了幼稚的方法,然后尝试通过讨论各种方法来优化它。
  3. 请不要在尝试 2 - 3 次后放弃,继续尝试不同的数据结构和算法来解决问题。这将向面试官表明您具有永不放弃的态度,并且您对其他主题也有了解。如果你遵循这种方法,你最终会以至少一种天真的方法来解决问题。
  4. 对于系统设计,您可以通过网站 https://www.education.io/courses/grokking-the-system-design-interview -Grokking System Design(付费课程但值得)和来自 https://www.youtube 的视频.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw – Gaurav Sen 系统设计
  5. 如果面试结果不乐观,请不要失望。请记住,无论面试是否顺利,公司都可能有各种其他理由拒绝候选人。如果您在面试中犯了错误,请从错误中吸取教训,并将这些经验用于以后的面试。