本文发表在 rolia.net 枫下论坛Interviewer 是个加拿大小伙,刚到Seattle的Kindle team 两个月,从Ottawa去的。知道我在多伦多,距离拉近了不少。互相介绍后,他开始问一些简单的热身问题:OO 基本概念,design pattern, singleton vs.static class,adapter vs.wrapper etc。然后让我打开collabedit写code。想着他会出些什么算法之类,谁知是设计一个小的扑克牌游戏。题目本身也就相当于OO design homework的水平。唯一tricky的地方是需求故意搞的很笼统,看你能不能在很短时间内从Interviwer 那里明确基本要求。因是电话面试,只能think aloud。开始coding才意识到平时依赖IDE的坏处。工作中常用ctrl+space提示API,这collabedit只有syntax highlighting。写完后他开始提问题,为什么我要这么设计,优缺点之类。在如何实现洗牌上讨论了好久。最后我说服了他我的随机洗牌是O(1)算法而且牌不会重复。一小时很快过去了,轮到我问他了:Amazon有什么地方吸引你从千里之外relocate到Seattle。他说Kindle开发非常exciting而且Amaozon给的offer很好。这点和glassdoor上Amazon员工对公司的review一致。当晚,收到recruiter的email,定下了一星期后第二轮电话面试的时间。第二个Interviewer是他那个team最老资格的-到Kindle team 11 个月,从MSFT跳过来的。可以想象他们的飞速扩张。详细问完我的经历后,又开始写code。有了上次的经验,没什么好紧张的了。又是OO design。先定义ObjectPool interface然后implement。我知道ObjectPool的概念但N年没用过。告诉他我先定义minimum APIs。心想从简单开始吧。用java generics定义了interface,边写code边解释如何用这些API。看他对interface没什么异议,我code up了thread pool class 来implement。Interviewer 是个老手,指出了一处破绽。好在我已意识到这个问题,加上了size checking。一小时面试时间到了,第二轮就这么结束了。他看来比较满意,但让我不解的是为什么没有考algorithm 和 data structure。我申请的是Sr.SDE 但这两项是免不了的。也许他们留着到onsite interview。
两轮Phone screen 是标准套路。Amazon根据两个interviewers的反馈决定是否 "move forward"。第二天,recruiter发来email邀请去Seattle onsite interview,包机票旅馆。这时我才真正思考去美国工作意味着什么。长考三天。就我自己来说,确实是一个进入目前最hot的领域的好机会。但以我目前的家庭情况,留在多伦多会更好些。既然决心以下,去Seattle面试已无意义。晚上,回了email婉绝邀请。生活回复到三星期前,但这次准备面试的经历让我重新拾起对算法的兴趣,也算是一大收获。更多精彩文章及讨论,请光临枫下论坛 rolia.net
两轮Phone screen 是标准套路。Amazon根据两个interviewers的反馈决定是否 "move forward"。第二天,recruiter发来email邀请去Seattle onsite interview,包机票旅馆。这时我才真正思考去美国工作意味着什么。长考三天。就我自己来说,确实是一个进入目前最hot的领域的好机会。但以我目前的家庭情况,留在多伦多会更好些。既然决心以下,去Seattle面试已无意义。晚上,回了email婉绝邀请。生活回复到三星期前,但这次准备面试的经历让我重新拾起对算法的兴趣,也算是一大收获。更多精彩文章及讨论,请光临枫下论坛 rolia.net