第 1 轮(技术轮):我从介绍开始。关于介绍中提到的技能的问题很少。
- 正如我在简历中提到的 celery,面试官询问了用例、它们的实现以及在实现 celery 时使用的代理。
- PythonList 和 Set 之间的区别以及示例。
- 生成器和迭代器之间的区别以及示例。
- 编码问题:给定一个由 0 和 1 组成的无限长排序数组。找出第 1 次出现的索引。
- 讨论过去的项目、这些项目中使用的 AWS 服务以及每个服务的用例(主要是 AWS Lambda、EC2、S3、ECS、RDS、RS、Cloudwatch)。
- 关于项目管理和团队管理的一些讨论。
第 2 轮(技术轮):再次,我首先介绍和讨论所有以前的项目。面试官让我解释我在过去的项目中解决的最复杂问题的用例和实现。我解释了此类实例的一些场景以及用例和实现。有一些反问和讨论。面试官并不完全相信。
编码问题:
1. 给定一个已排序的数组和数字 N,编写一个程序来找出总和等于 N 的数字对。
我解释了两种方法。他深信不疑。当我坚持实施这些方法时,他给出了一些提示。
2. List 和 Tuples 的区别以及示例。
关于装饰器的各种Python基础问题。关于元组不变性的问题,例如假设一个元组 x = ([1,2,3], “str”, 5) 给出。我们可以修改这个元组索引 0 上的列表元素吗?
我用Python的参考内存概念解释了 Yes 以及整个解决方法。
他通过一个例子向我询问了列表切片和列表理解的概念。
3. 编写一个代码,使用列表推导打印以下模式。
Pattern = [1, 1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64]
我写了逻辑,但犯了一个可怕的错误。我在实现嵌套列表理解时颠倒了循环的顺序。面试官试图暗示循环的顺序,但我无法理解。
正确的一个是
Python3
# num, num^2, num^3 ....repeat for (num+1) then (num+2) ... so on
lst = [ base**power for base in range(1, 5) for power in range(1,4)]
print(lst)
他询问了我的整体工作经验,以及转换的原因。另外,在采访结束之前问我是否有任何问题要问他。我询问了他在 JPMC 的经历和角色。