Skip to main content

你应该准备好应对哪些技术问题?

在您深入探讨面试过程中可能会被询问的技术主题之前,请与您的招聘联系人联系,以了解您最有可能需要讨论和展示的课题/技能。一般来说,我们的技术访谈通常要求您在白板上编写程序和设计系统。同时请记住,发明创造刻写在我们的 DNA 内,而科技是我们用来发展和改进我们为客户提供的每一个体验的基本工具。在审查以下主题时,请把客户放在首位。

您将要面试需要至少 2 年经验的软件工程师职位吗?了解如何成功地在面试中展示您的技能

技术课题

在面试技术职位之前,我们并不要求您知道任何特定的编程语言。然而,熟悉一门显着的语言通常是成功的先决条件。您应该熟悉诸如 C, C++, C++14, C#, Go, Java7, Java8, JavaScript, Kotlin, Objective-C, PyPy2, PyPy3, Python2, Python3, Ruby, Scala 或 Swift 等语言的编程语法。您还应该了解一些编程语言的细微差别,例如内存管理是如何运作的,或者最常用的编码集,编码库等。

我们所做的大部分工作都涉及以有效的方式存储和提供对数据的访问。这需要员工拥有强大的数据结构掌握能力与背景。您需要了解常见数据结构的内部工作原理,并能够比较它们在各种应用程序中的使用情况。您必须懂得常用操作的运行时刻以及它们如何使用内存。

您的面试不会专注于算法的死记硬背。但是,熟悉理解最常用的算法可能会使解决某些问题变得容易许多。考虑检查通用算法,如遍历,分治,广度优先搜索与深度优先搜索,并了解每种算法的权衡。了解不同类别算法的运行时刻,理论局限性和基本实现策略比记忆任何给定算法的具体细节更重要。

您会被要求编写语法正确的代码 - 不能使用伪代码。如果您觉得编码没有 IDE 或使用特定语言进行编码让您决定有点生疏,现在是时候活动胫骨,并拿起笔和纸编码了。软件开发工程师在亚马逊上做的最重要的事情是编写可扩展,可靠且经过充分测试的代码。这些因素是您的代码的主要评估标准。确保您检查极端例子并确认没有错误的输入可以通过。这是您展示编码能力的机会。

良好的设计对于可扩展,无缺陷,长寿命的代码至关重要。我们知道任何给定的软件问题拥有几乎无限的解决方式,但是当软件需要可扩展和可维护性时,良好的软件设计对成功至关重要。构建持久性软件的一种渠道是使用面向对象的设计中的最佳实践方法。您应该具备一些常用和有用的设计模式的工作知识,以及如何以面向对象的方式编写软件。您基本上不会被要求描述具体设计模式的具体工作细节,但做好准备捍卫您的设计选择。

我们编写的大部分软件有数据存储的支持。在研究如何最有效地检索和存储数据以备将来使用时,技术人员会面临许多挑战。亚马逊一直在非关系型数据库迁移的最前沿。我们已经向开发者社区提供亚马逊网络服务(如 DynamoDB),以便他们利用非关系数据库的优势。您不必是非关系型数据库的专家,但您应该熟悉广泛的数据库概念及其应用程序。关于如何权衡关系型和非关系型数据库,您知道得越详细,对您的面试越有利。

亚马逊的系统必须在高负载和低容错性的状态下运作。虽然我们有一些内部工具可以帮助扩展,但了解几个基本的分布式计算概念很重要。例如了解面向服务的体系结构,MapReduce,分布式缓存和负载平衡等主题,可以帮助在您遇到的一些更复杂的分布式体系结构问题时作答。

您不需要知道如何从头构建自己的操作系统,但您应该熟悉可能影响代码性能的一些操作系统主题(例如内存管理,进程,线程,同步,分页和多线程)。

我们希望我们的工程师熟悉互联网的基本原理。了解浏览器如何在高层次上运行,从 DNS 查询和 TCP / IP,到Socket 连接。我们要求工程师对万维网运作的基本原理有深入的了解。

可能的问题是关于数据驱动建模,培训/测试协议,错误分析和统计显着性。例如,给定一个问题定义,您应该能够将其表述为一个机器学习问题,并提出一个解决方案,包括关于数据源、注释、建模方法和潜在缺陷的想法。了解基本的人工智能/ 机器学习的方法和算法 - 重温您的机器学期和人工智能的教科书吧。

 

我们知道面试需要涉及的主题很多。请记住您的面试官不会根据您是否记得所有细节进行评估。他们会看你是否有能力运用知识有效地解决问题。技术性面试的准备时间(有时)有限,我们建议您查看计算机科学基础知识,并在集成开发环境之外练习写代码。这样可能会事半功倍。

 

更多问题?

探索亚马逊面试。查看我们的常见问题解答
了解我们的福利。探索我们的地点

Software Development Engineer Interview Preparation (SIP)

Amazon Leadership Principles

This video provides valuable insight to help you be successful when interviewing for Amazon’s Leadership Principles.

Amazon Coding Sample

This video dives into a coding example and how candidates should approach, analyze and solve such problems when interviewing at Amazon.

Amazon System Design Preparation

This video tackles a system design example question and how candidates should approach, analyze and solve such technical questions.

SDE Interview FAQs

SDE Interview Coding Example