在我的 Apple 暑期软件开发实习面试过程中,我经历了几轮有趣的挑战。首先,在 4月5日 的第一轮面试中,我与团队的一名工程师进行了 45分钟 的讨论,主要围绕我的简历和我之前项目中使用的技术栈。这一轮感觉进行得相当顺利。
接下来的第二轮面试是在 4月17日,这是一次更为技术性的面试,使用了 CoderPad,并与另一名工程师合作,持续了大约 一小时。这一轮主要包括三个部分:首先是 系统设计,我被要求设计一个停车场系统,并从头到尾阐述我的设计思路;其次是 编程,我在一个可以即时编译 React 代码的在线平台上写了一些简单的React代码;最后是实现一个 最近最少使用(LRU) 缓存,并讨论了如何使用 LinkedHashMap 来实现它。这轮面试结束仅十分钟后,我就被邀请参加了 4月19日 的最终面试。
最终面试当天,我本以为会主要面对 行为问题,结果面试官花了一小时深入询问我关于 React 的技术问题。虽然我的简历上只有一个关于React的项目,但面试官显然希望找到同时具备 React 和 Python 经验的候选人。面对这些出乎意料的技术问题,我感到有些措手不及。整体来说,这次面试经历虽然挑战重重,但也让我学到了很多,尤其是在如何更好地准备技术面试方面。