📌  相关文章
📜  Amazon SDE-1 面试经验 |哇-2020(1)

📅  最后修改于: 2023-12-03 14:39:05.826000             🧑  作者: Mango

Amazon SDE-1 面试经验 |哇-2020

引言

面试是每个程序员职业生涯中必经的一道坎。本文将分享一位应聘Amazon SDE-1的面试经验,供大家参考。

面试过程
第一轮:在线编程

在线编程环节是面试过程的第一轮,本轮面试采用谷歌在线编程平台。面试官在收到简历和个人信息后,会安排面试时间和在线编程题目给出链接。本次面试编程题目是“找出数组中重复次数最多的元素”。

def find_most_common(arr):
    """
    找出数组中重复次数最多的元素
    """
    d = {}
    for i in arr:
        if i in d:
            d[i] += 1
        else:
            d[i] = 1
    return max(d, key=d.get)
第二轮:肆意挑战

第二轮面试是一轮肆意挑战,面试官会针对个人简历和工作经验,来问一些细节和挑战性问题。以下是本轮面试的问题:

  1. 你对Amazon有什么了解?
  2. 在你的历史项目中,你面对过哪些技术上的挑战?
  3. 你如果要重构一段代码,你会遵循哪些原则?
第三轮:面向对象设计

第三轮面试是一轮面向对象设计。面试官会要求面试者根据特定场景和需求,设计一个符合面向对象设计规范的类和对象。以下是本轮面试的场景和需求:

场景:一个汽车制造商公司正在制造一辆具备智能驾驶功能的新能源汽车。

需求:

  1. 设计一个符合面向对象设计规范的Class,并实现智能驾驶功能。
  2. 这个Class有哪些属性、方法?
class ElectricCar:
    """
    符合面向对象的电动汽车类
    """
    
    def __init__(self, model_name, battery_level, gps, camera):
        self.model_name = model_name
        self.battery_level = battery_level
        self.gps = gps
        self.camera = camera
    
    def recharge(self):
        """
        智能充电功能
        """
        if self.battery_level < 20:
            self.battery_level += 80
        elif self.battery_level < 90:
            self.battery_level += 10
        else:
            self.battery_level = 100
    
    def navigate(self, address):
        """
        智能导航功能
        """
        if self.gps.is_available():
            self.gps.navigate(address)
        else:
            raise Exception("GPS is not available.")
            
    def auto_park(self):
        """
        智能停车功能
        """
        if self.camera.is_available():
            self.camera.park()
        else:
            raise Exception("Camera is not available.")
第四轮:Leadership Principles

Amazon的一大特色就是Leadership Principles.每次面试都会有至少一轮面试官问到Leadership Principles,通过面试者的行为,来判断其是否符合Amazon的文化。以下是Amazon的所有Leadership Principles:

  1. Customer Obsession
  2. Ownership
  3. Invent and Simplify
  4. Are Right, A Lot
  5. Learn and Be Curious
  6. Hire and Develop the Best
  7. Insist on the Highest Standards
  8. Think Big
  9. Bias for Action
  10. Frugality
  11. Earn Trust
  12. Dive Deep
  13. Have Backbone; Disagree and Commit
  14. Deliver Results

在这一轮面试中,面试官提出了一些问题,要求面试者分享说明自己的Leadership Principles是如何贯彻于日常开发中的。

第五轮:总经理面试

本轮面试是Amazon的总经理面试,面试官需要综合考虑前面所有面试官的反馈,以及面试者的简历和个人表现,来决定是否给予offer。总经理面试主要考察面试者的背景和适合性,以及如何与团队一起合作完成任务。

总结

Amazon是一家拥有严格面试流程和高质量工程团队的公司。通过面试,面试者可以深入了解Amazon的文化和技术水平,并了解自己在当前市场的定位。从本次面试经验来看,Amazon的面试过程主要分为在线编程、肆意挑战、面向对象设计、Leadership Principles和总经理面试,分别从编程正确性、软件设计能力、领导力和文化适合性等方面考察面试者的能力和素质。如果你正在在线找工作,我相信Amazon是一个不错的选择。

欢迎到我的博客 wyong's blog 交流学习。