📅  最后修改于: 2023-12-03 15:20:02.958000             🧑  作者: Mango
近来,我参加了Paytm在校园招聘流程,并且最终被选中作为SDE。这里我将分享一下面试的经验和招聘流程。
Paytm的校园招聘共有三轮面试:
第一轮的技术聊天是基于Paytm的一些竞赛题。这些题目大多包括算法、数据结构和基础的计算机科学问题。这轮面试主要是考察你是否能够在较短时间内思考出一些高质量的代码。此外,Paytm也会开始考察你的编程风格和可读性。
第二轮是技术面试,这轮的难度比技术聊天要高一些。这回,他们主要会是在DS和算法的一些高级问题上进行考察。我被问到了图像识别、求聚类中心、单独成对的代码等等问题。这些都比较基础但是要求实现的精度比较高。另外,这轮也会考察你的系统设计和代码优化能力。所以,你需要对操作系统、数据库、网络协议等领域都要有一定的理解。
最后一轮,HR会问你一些关于学习能力、公司文化、团队管理和关于个人正在追求的方向等问题。这轮不是很具有考察性,主要是试图挖掘一些个人特质和个人成长历程。
首先,我想说的是,先准备理论和基础知识是有帮助的。其次,你需要亲自动手实现一些常见的算法和数据结构,例如排序、哈希表、图的搜索等等。
其次,代码实现的可读性和可维护性很重要。我在面试过程中看到很多人只是尝试着通过某些巧妙的编程技巧来解决问题,但是他们并没有考虑程序的维护性。但是,实际上,代码保护和维护对于Paytm公司来说是非常重要的。
最后,我的建议就是专注于各种场景中的优化。在Paytm这样的公司中,总是存在一些追求高效的代码,例如,搜索引擎、机器学习算法等等。在实际的工作中,这些算法需要很好的时间空间复杂度。所以,你需要把握好时间和空间复杂度的统计学和优化,以更好地达到工程设计的目标。
下面是我被问到的一个问题,它涉及到在一个函数中找到一个小于目标整数的最大值。看看我是怎么写的:
def find_largest_less_than(numbers, target):
"""
This function finds the largest integer less than the
target integer from a list of integers.
"""
found = False
for i in reversed(numbers):
if i < target:
found = True
return i
if not found:
return None
这个代码挺简单的,但是有一些好的实现。原因是,我在写这个函数时,我考虑到了代码的易读性和优雅性。我首先考虑一个人阅读代码时将想到什么,再写的时候适度地利用python语言的一些特性和语法。 这个函数可以减少代码量和提高性能.