进军硅谷

陈东锋
献给我的妻子Emily和女儿Ella。 To my wife Emily and our daughter Ella. 前言 随着越来越多IT工程师寻找国外工作机会,介绍和总结国外热门IT公司面试过程及面试内容的需求尤为迫切。美国最新移民改革CIR方案更倾向于技术移民,这将使得今后会有更多国内程序员去美国工作。笔者亲身参与了国内和美国一些热门IT公司的面试,同时也作为面试官面试过不少人,熟知海内外IT公司招聘流程和面试方式。通常来说,去美国IT公司工作有三种途径。 •直接申请美国公司职位,拿H1B签证工作。不少热门IT公司直接在国内招人,比如Facebook、Twitter、Microsoft、Google等。越来越多的程序员选择这条路,一方面是因为美国签证放宽了,另一方面是硅谷公司面试并没有比国内公司难多少。 •在国内的跨国公司工作一年后,内部转组到美国的分部,使用L1签证。例如,从微软中国转至微软西雅图总部工作。 •申请攻读美国学校的计算机科学硕士或博士学位,毕业后再找工作,即由F1签证转为H1B签证。 这三种途径都需要成功通过公司技术面试。热门IT企业的面试方式大致相同:1~2轮电话面试,通过之后,又有4~5轮的现场面谈。其中80%的面试是技术面试,每轮技术面试大约45分钟,扣除双方自我介绍和提问时间,花在技术面试的时间大约为30分钟。由于技术面试时间的限制,面试的题目一般不会太难,比大学生编程比赛(ACM)的题目简单很多,但是,面试者需要一些编程面试技巧,以及对算法、数据结构熟练掌握才能在限定时间内完成。这对要求在白板上写程序和无Bug(Bug free)的公司来说尤其重要,比如Facebook。 在编程面试过程中,光有解法却写不出来代码是行不通的,这只会让面试官觉得你只会夸夸其谈,不会编程而已。在编程面试里,切记“让代码说话”这条准则。在本书面试题相关的章节…