Paytm 软件工程师 FTE 面试经验(校内)
我于 2020 年 11 月 11 日接受了采访。总的来说,有 4 轮 - 1 轮在线编码,2 轮技术轮,1 轮技术 + 管理轮。所有回合均为淘汰赛。
第 1 轮(在线编码 70 分钟): 3 道编码问题
给定一个整数,你只需要改变数字。 (3 分) 这是一道简单的题。
0 - 9, 1 - 8, 2 - 7, ... 9 - 0.
示例:转换以下数字。
Input: 420 Output: 579
这个问题类似于(3分):https://www.geeksforgeeks.org/largest-sum-contiguous-subarray-have-unique-elements/
这个问题是基于一棵树和这个的轻微变化(5分):https://www.geeksforgeeks.org/print-nodes-distance-k-leaf-node/
这一轮是在 CoCubes 平台上进行的。三道题我都答对了,答对了2道题得8分以上的人也被要求参加面试。这一轮是中等水平的一轮,那些经常接触编码的人能够轻松破解这一轮。共有76名学生参加了面试。所有的面试轮次都是在 Google Meet 上进行的。
第 2 轮(技术面试 1 小时):这一轮由一名高级软件工程师进行(我已经查看了他的 LinkedIn 个人资料:p)。面试官超级友好和酷。他问我过得怎么样,今天过得怎么样,让我感到很舒服。然后他要求自我介绍。我做了,然后他就像我不想听到技术性的东西一样。告诉我一些关于你的事情。所以我告诉他我的爱好,然后他问了一些关于我的爱好的问题。这一轮基本上是作为人力资源轮开始的。然后,他问我关于我的项目。关于项目的讨论持续了 15 分钟。他询问了我在项目中使用的所有技术。我的项目基于Python、图像处理和 CNN,所以他向我询问了这些。然后他跳到编码问题上,他与我分享了一个谷歌文档,并让我在上面写代码。
- 生成一个最多为整数“n”的斐波那契数列,找出该数列中的所有质数并打印它们。
这是一个非常简单的问题,我告诉他斐波那契的递归方法。然后他让我优化它,然后我使用 DP 生成斐波那契数列并使用筛分算法找到素数。他对这种方法很满意,并要求我为此编写代码。我在5分钟内写了代码,一步一步告诉他我在代码中所做的一切。我用他给我的一些例子来干运行代码。他对代码很满意。然后他继续下一个问题。
这是基于数组寻址和指针,他给了我一个代码,并要求我编写相同的输出。
鉴于:
int a[15];
a[0] = 10;
a[14] = 100;
find- *(a), *(a + 0), *(a + 14), *(a) + 10
这很容易,因为我已经通过了大门,但他试图迷惑我。我对我的回答很有信心,然后他继续回答第三个问题。
给定一个图,检查它是否是一棵树。
他问我,什么时候图会变成一棵树,什么时候不会变成一棵树。我回答了关于周期和连通性的问题。然后他问了我关于实现和一些 DFS 相关的问题。我回答,他很满意,最后让我写代码。我是用 DFS 做的。他给了我一些跑步的例子。我成功地做到了。当我做对时,他非常高兴。
然后,他问我在我的项目中使用了哪个数据库,并继续回答与 DBMS 和 OOPS 相关的问题。
- 什么是 SQL 中的 DDL 和 DML,SQL 中的元组?
- 什么是主键?主键和候选键的区别。什么是外键,为什么与示例一起使用?
- OOPS 的 4 个支柱、不同类型的继承以及示例是什么?
问题是基本的,如果您正确阅读了 DBMS 和 oops,那么这对您来说应该是小菜一碟。我能够全部回答。然后他说他已经完成了采访,如果我有任何问题要问他。我问了他一些与他目前在 Paytm 从事的技术相关的问题,他在 Paytm 的体验如何,他们对 Paytm 的新生有什么期望,covid 之前和 covid 期间的工作量。他都回答了。然后我问了他我的反馈(我总是向每个面试官问这个,以便我了解这一轮的进展情况以及我应该在哪里改进)。他给我的反馈说,“从早上开始我已经接受了 6 次面试,你的是最好的。这一轮我给你满分。”这真的让我很高兴,对其他回合更有信心。
1.5 小时后,我收到了下一轮技术面试的邮件,大约有 55 人接到了电话。
第三轮(技术面试45分钟):这一轮以打招呼开始,然后他让我介绍一下,以便他查看我的简历。介绍完后,他让我解释他选择的一个项目。我向他解释,然后他问了一些与项目相关的简单问题。他分享了一个文档链接,然后转到了编码问题。
问题 1:给定一个一位数的单向链表。我们必须一次考虑 3 个连续的节点并添加它们。如果加法大于 9,则使这三个节点在链表中反向。
例子:
Input: 1 -> 5 -> 2 -> 4 -> 3
Output: 1 -> 4 -> 2 -> 5 -> 3
Nodes 5, 2, 4 make sum 11 which is greater than 9. So reverse them.
我告诉他使用递归的解决方案他很好,然后他让我编码。涉及到很多指针操作,所以他给了我三个示例来试运行我的代码。我做到了,他很满意。下一个问题是基于阵列中频率计数的轻微变化。我也能够使用 C++ 中的地图来解决它。很容易。之后,他问我 BFS 和 DFS 以及现实生活中的应用程序。然后他转到 DBMS 并给了我 2 个表。基本上,我必须创建这两个表,使用 SQL 填充值,然后他给了我 2 个与 group by 和 joins 相关的查询。我能够写出一个正确和一个错误的查询。
他说没事,面试就结束了。我问了他问题,然后是我的反馈——他告诉我,我的编码部分是食物,并且更多地关注 SQL。所以,我向他保证,我一定会提高自己。我对接到关于下一轮的电话持怀疑态度。
但是我在下一轮面试的 5 分钟内收到了一封邮件,大约有 27 人接到了电话。
第 4 轮(技术 + 管理 30 分钟):这一轮首先简要介绍了他和我。然后他转向项目,他深入询问了我的项目。我是如何制作它们的,小组成员的数量,我在其中的角色?做项目的困难,成员之间的一些冲突,我是如何解决的。他深入 ML 部分,问我如何发现项目的准确性。如何改进。我的项目需要多少时间来提供输出。然后他问我如果数百万用户使用我的项目的可扩展性。我能够满意地回答他们。所以,我想向大家建议你应该对你的项目有一个透彻的了解。之后,他问了我一些简单的OOPS概念。然后他让我给Java(满分 5 分)。我给自己打了 1 分(因为我不太了解Java )。他很惊讶,问我为什么?我告诉他我只用 C++ 和Python编写代码,所以在生活中很少使用Java 。然后他跳过了Java问题。我们已经来不及了。然后他问我关于我的家庭和我的爱好。然后他问我喜欢的位置,我说孟买,但我准备搬家。然后他说,但我们提供诺伊达,如果你得到这份 Paytm 的工作,然后你得到另一份工作,总部设在孟买怎么办。你会离开支付宝吗?我告诉他,如果我现在拿到Paytm,我就不能坐在校园里的其他公司。因此,没有机会离开 Paytm。我们俩都笑得很开心。然后我问了他一些问题。
之后,他直接告诉我,享受这一天,你在。把这个好消息告诉你的父母。但是在 HR 与您取得联系之前不要告诉任何人。这是我生命中最美好的时刻之一。那一刻,我的眼眶湿润了。我们俩说再见。
所有这些艰苦的工作都到位了。我得到了最好的排灯节礼物。
这是一个为期一天的过程。终于,我在午夜收到了一封邮件。包括我在内的15名学生被选中。
我真的很感谢 Geeksforgeeks 提供了最好的内容,他们在我的准备过程中帮助了我很多。而那些准备面试的人,我会建议他们定期编码,好好学习技术方面的东西,对面试充满信心,你可以在任何技术面试中脱颖而出。感谢您的时间。