📜  SDE-1 的 Swiggy 面试体验 |校外 2021(1)

📅  最后修改于: 2023-12-03 14:47:20.332000             🧑  作者: Mango

SDE-1 的 Swiggy 面试体验 |校外 2021

简介

本文是我在校外面试 Swiggy 担任 SDE-1 职位时的体验分享。在此,我将分享我的面试流程和面试官提出的问题。

面试流程

我的面试分为两轮。每轮面试约为 45 分钟左右。第一轮面试的重点是我的基本技能和经验。第二轮面试的重点则是我的解决问题和项目管理能力。

在第一轮面试中,我被要求回答一些基础问题,例如 OOP,数据结构和算法。我还被要求解释我的过去项目经验。

在第二轮面试中,我需要回答关于项目管理的问题,并解释我的解决问题的过程以及如何遵循最佳实践。

面试官在整个过程中都很友善和专业,并且给予了充分时间让我思考问题并回答问题。

题目示例

以下是我在面试中记下的一些问题示例:

第一轮
  1. 解释 OOP 中的继承和多态是如何实现的?

Markdown 代码块:

class Animal:
  def __init__(self, name):
      self.name = name

  def eat(self):
      print(self.name + ' is eating.')

class Dog(Animal):
  def __init__(self, name):
      super().__init__(name)

  def bark(self):
      print(self.name + ' is barking.')

  def eat(self):
      print(self.name + ' is eating loudly.')

animal = Animal('animal')
dog = Dog('dog')

animal.eat()
dog.eat()
dog.bark()

# 输出:
# animal is eating.
# dog is eating loudly.
# dog is barking.
  1. 什么是哈希表?如何实现它?

Markdown 代码块:

哈希表是一种基于键值对的数据结构,其本质上是一个数组。它利用哈希函数将键值对应的哈希映射到数组中的一个位置。

增加新项目:

  1. 计算哈希函数得到它在数组中的索引。
  2. 检查该索引的位置是否已被占用,如果没有则将键值对存储在该索引上,否则使用哈希冲突解决算法来找到下一个可用的位置。

删除项目:

  1. 通过键值使用哈希函数获取它的索引。
  2. 删除该索引处的键值对。
第二轮
  1. 解释你在早些时候工作中遇到了什么问题?你是如何解决的?

Markdown 代码块:

我在一个旧项目中遇到过一些问题,它的速度非常慢,这导致了很多用户的不满。

  1. 我首先分析了整个代码,并发现了一些潜在的瓶颈。

  2. 我对这些瓶颈进行了优化,例如将某些代码块从 O(n^2) 的复杂度降至 O(n log n) 的复杂度。

  3. 最后,我进行了一些基准测试,发现我的优化使得项目的速度提高了 50%。

  4. 如何进行团队管理并保持跟踪项目的进度?

Markdown 代码块:

我通常使用敏捷开发方法和 Scrum 进行团队管理。

  1. 我会将项目分解为较小的、可迭代的、小目标。
  2. 我会监督团队并定期开会,以确保项目按计划进行。
  3. 我还会使用 JIRA 或 Trello 等工具来跟踪项目的进度,并确保每个人都明确自己的任务和角色。
总结

整个面试过程是非常愉快和充实的。面试官提出的问题非常有挑战性,但我认为它们非常合理且有助于评估我的技能和经验。在整个面试流程中,我感受到了 Swiggy 的企业文化以及他们对员工成长和发展的重视。

最后,我很高兴地宣布我已通过了这次面试,并且我非常期待能够加入 Swiggy 团队并在这里取得更多的成就和成长。