苹果面试经历
它在 IIT 的校园里。
提示:
不要只是跳入解决方案。他们判断你的思维过程。从最简单的解决方案开始,并在此基础上进行优化。
了解你的简历。他们问了很多关于我在简历中提到的项目和实习的问题。确保你能够描述你在简历上写的任何内容。
大声思考。确保在回答编码问题时处理所有极端情况。
一共进行了三轮。每轮50分钟。首先是编码轮次,然后是系统设计轮次,最后是 HR 轮次。
每一轮都从面试官介绍他/她的工作开始,然后是详细的技术或人力资源面试,然后是 5-10 分钟的面试者提问。
第一轮:
- 约瑟夫问题。
- 面试官想要分析解决方案。
- 一个基于 DFS 的简单问题。
- 面试官想要正确的代码,所有的角落案例都有正确的函数名称等。
- 最后,讨论了我在简历中提到的各种项目和实习。
第二轮:
- 设计一个游戏排行榜,显示来自不同地区的顶级玩家。
- 考虑系统设计问题的可靠性、可用性和延迟。
- 关于数据库选择的讨论:基于 SQL 与 NoSQL。
- 讨论延迟、可用性和可靠性(CAP 定理)。
- 系统的数据库设计。
- API 设计。
- 当您在 Web 浏览器上键入地址并按 Enter 时会发生什么。接下来是与 DNS 相关的问题,例如它是什么以及它是如何工作的等。接下来是一个关于我将如何设计 DNS 的问题。
- 随后讨论了我在简历中提到的项目。
第三轮:
- 讨论我在简历中提到的各种项目和实习。
- 讨论我实习期间所做工作的可扩展性。
- 关于我参与的一些开源开发的讨论。
- 一般人力资源问题。
- 关于苹果工作文化的讨论。