📜  亚马逊面试经历 |设置 432(SDET 关闭 - 校园)(1)

📅  最后修改于: 2023-12-03 15:36:06.076000             🧑  作者: Mango

亚马逊面试经历 |设置 432(SDET 关闭 - 校园)

背景

作为一名校园招聘的 SDET,我参加了亚马逊的面试。在这次面试中,我收获了许多经验和教训,以下是我亚马逊面试的经历。

面试过程

亚马逊的面试主要分为在线笔试、电话面试和现场面试三个环节。

在线笔试

在线笔试主要涉及技术和算法。我需要在不到两个小时的时间里完成 7 - 8 道题目。这些题目涵盖了数组、字符串、递归、二叉树等多个方面,难度大部分属于 LeetCode 中等难度的 level。

相对来说,此环节难点主要在于考查候选人的代码能力,以及对数据结构和算法的掌握熟练度。对于准备充分的同学,过关并不算难。

电话面试

电话面试主要是面对面进行的一对一交流与问答,通常会有一个面试官对应数位面试者。这部分更重要的是考量候选人的项目经验与应聘后未来在公司具体的工作流程能力。

在电话面试中,我被问及了多个技术背景和性格相关的问题。如:

  • 你日常最爱用的代码工具有哪些?能提前预测项目中会用到哪些工具吗?
  • 从高层设计到低层实现,你理解的工程架构与开发流程是怎样的?
  • 在你之前所任职的公司,你扮演了怎样的角色?你认为自己贡献了哪些价值?
  • 你通常如何在对待个人代码质量与交付周期之间权衡?

通过电话面试后,我受到了 invite 信,被要求前往公司本部进行面试。

现场面试

现场面试是最后一个阶段,主要是与亚马逊公司内部专业人员深入交流。我被安排了三个不同的面试时间,两个技术面和一个管理者面试。

其中,技术面试和电话面试类似,我被要求就这些话题进行笔谈:

  • 你是如何在单元测试中定位并修复 bug 的?
  • 你知道是如何利用反射 API 来进行私有成员变量或方法调用的吗?
  • 你是否了解或学习过 Kotlin 语言?如果有的话,它可能有怎样的优势?

另外,最后一轮面试则是聊天与交流为主,如:

  • 你对生活中有何广泛的兴趣爱好?
  • 我们工作时可能会遇到挫折,你在处理它们时的方式是怎样的?
  • 就职于我们公司的三年后,你希望自己成为怎样的领导者?
经验与总结

总的来说,亚马逊的面试环节主要以技术与管理背景的问答为主,强调技术能力、项目经验与未来团队协作的能力,并越往后阶段越倾向于人文素质与与企业文化沟通的体验交流。以下是我总结出来的面试准备经验:

  • 对于笔试,提前透彻地掌握 LeetCode 相关的数据结构与算法,提高编程能力。
  • 对于电话面试,应尽可能清晰地展示自己的项目经验,比如构建过哪些 App 以及为公司带来了哪些贡献等等。
  • 对于现场面试,建议提前搜集一些面试官的资料并做好批判性分析,比如他们负责哪个部分、个人喜好等等。这有助于筛选出不同的优势点并加以利用,令他们眼前一亮。

在面试中,我同时需要准确和自然地与面试官沟通,表达出自己的思路与想法,建议应该充分准备,尽可能多联系练习。事实上,每次面试的机会均可以作为实践改善自己能力的经历!

下面是一个参考代码段:

def get_common_chars(str_1, str_2):
    """
    Find common characters between two strings.
    """
    from collections import Counter
    
    # Calculate frequency of each character
    counter_1 = Counter(str_1)
    counter_2 = Counter(str_2)
    
    # Find common characters
    common_chars = set(str_1) & set(str_2)
    
    # Return a list of common characters, ordered by frequency
    return [char * min(counter_1[char], counter_2[char]) for char in common_chars]
小结

总而言之,亚马逊的面试非常注重应聘者的技术能力和对企业文化的理解度。在准备和参与面试过程中,应聘者需要充分准备,跟进最新技术趋势,对相关企业文化及公司业务有所了解,并尽量注重整体修养,技术技能更是应该面面俱到。