📌  相关文章
📜  初级Python工程师的 Fynd 面试经验(1 年以上经验)

📅  最后修改于: 2021-11-18 01:09:57             🧑  作者: Mango

大家好,希望你一切都好。今天我将分享我对初级Python工程师角色的 fynd 面试经验。希望它可以帮助您准备下一次编码面试。因此,事不宜迟,让我们开始吧。

我通过 Linkedin 工作门户申请了该职位。第二天,我接到了人力资源团队的介绍电话。我得到了有关 Fynd 的简要介绍,然后她安排了对一位拥有 5 年以上经验的高级工程师团队成员的采访。

第 1 轮:我们从介绍开始。它持续了超过90分钟。

问题概述:

Python 的基础开始。

数据类型

  • 无类型
  • 数字 -> int、float、complex、bool
  • 序列类型 -> 列表、touple、str
  • 映射类型 -> dict
  • 设置类型 -> 设置和冻结设置(问区别)

数据库管理系统基础

  • RDBMS 和 DBMS 之间有什么区别。
  • 你有没有用过 sql 数据库。它与关系数据库有何不同。使用它们有什么优点和缺点。
  • 询问索引。如果我们在所有列上放置索引会发生什么。它会变得更快还是更慢?
  • 要求分析数据。这是多对多关系(过程 – 配方)的一个例子。问架构。我定义了 3 个表。流程、配方和流程配方映射器。然后要求写下查询以检索所有数据。所以我使用了 django Prefetch 相关和 Select 相关的概念。他还让我用 SQL 写下查询。花了一些时间,它并不完美(因为我没有在专业经验中使用过),但是面试官明白了我想要实现的目标。

Django 基础:

  • 我们讨论了 django 中简单的 HTTP 请求流。 API 调用期间发生的情况说明了流程。

简单无需使用内置函数即可轻松实现代码。 https://www.geeksforgeeks.org/reverse-words-in-a-given-string/

第二轮(任务轮):

  • 任务轮次:面试官知道我有 DRF 背景。因此,为了挑战,他们要求我使用您选择的 Flask/Sanic/Fast API 框架来实现电影 API,其中包含流派、评级、导演、演员列表(仅姓名)简短的非常基本的 API。(我选择了 Sanic 和 Mongo ) 和 SQLite/Mongo 数据库。
  • 没有任何具体的截止日期,但我在一个周末完成了任务。此外,我还写下了测试用例、实现了缓存、用于文档目的的 Swagger 和 Docker,并在 AWS EC2 上部署了代码。
  • PS 由于我的额外努力,我被直接分配到第 4 轮,他们跳过了技术轮。基于这个经验,我给读者的建议是,如果你被赋予了一项任务,那就不要害怕。尽力而为,你不知道接下来会发生什么!至少从任务中学习最终会帮助你!

第 3 轮(技术):由于我的额外努力,他们跳过了技术轮

第 4 轮(首席工程师轮):我们从介绍开始。

  • 他向我解释了 fynd 和即将开展的项目。
  • 然后他问我 C 和Python什么区别。我回答说,一种基于功能/过程语言,另一种遵循 OOP。他笑着说这是教科书的定义!告诉我一些我不知道的事情。我尽我所能,解释了我想到的每一点。
  • 然后他问我用哪种语言执行代码更快?我回答C。他又回答,这是教科书的定义,解释我怎么做!我们讨论了一些编译的操作系统概念。在 c 代码中经历了不同的阶段:链接器、汇编器、编译器,但即使在Python解释器中执行 .pyc 文件。我无法向他解释最佳答案。
  • 然后作为提示,他问了我浅拷贝和深拷贝的概念。
    示例代码:
    Python3
    # code
    a = 5
    b = 10
      
    b = a
    a = 7
    print(a, b)


    Python3
    # code
    a = 5
    b = 7
      
    print(id(a), id(b))
      
    a = 5
    b = 5
      
    print(id(a), id(b))


    并请我解释内存分配,我告诉 a 和 b 将分配给不同的内存分配,并且都将消耗 8 个字节(int 大小)的内存。

  • 然后他问我如果我运行这个会发生什么:

    蟒蛇3

    # code
    a = 5
    b = 7
      
    print(id(a), id(b))
      
    a = 5
    b = 5
      
    print(id(a), id(b))
    

    PS:尝试自己得到答案!

  • 然后我们讨论了一点数据库索引,规范化。
  • 他还问了我单体应用和微服务架构的区别。
  • 下一个问题是,当我在浏览器上写下 fynd.com 时会发生什么。我们讨论了 DNS、路由(基础)、网关和系统架构的基础。
  • 编码问题:类似于滑动窗口最大值。 (需要工作代码)。

第 5 轮:基本 HR 类问题。

  • 为什么要加入Fynd,你对Fynd了解多少
  • 你为什么要离开你目前的组织,等等。