以前总觉得拿台湾学历到国外公司工作这条路有点不直觉
然而过去几年在得到一些贵人的提点与帮助后,误打误撞地走上这条路
趁著刚口试完颇有余裕的时候,分享些我所知道的资讯
希望能对大家有所帮助 (尤其是现役与未来的土博们)
背景: 台大电机系学士/台大电子所硕迳读博(1+7)
研究领域: 3D Computer Vision
面试单位: Facebook Reality Labs (原称为Oculus Research,最近改名了)
申请职位: Research Scientist
由于我在两年前的暑假曾经在Oculus Research实习
所处的团队主要是做人机互动与电脑视觉领域的研究
而自己实习时所做的研究成果有投上去年底的一个人机互动领域的会议
或许是刚好结果还不错 (运气很好地拿了个小奖)
也可能是在实习的过程中和整个团队相处融洽
会议结束后主管跟我说如果有兴趣回去工作的话记得连络他
后来他寄信提醒我说由于我的身分必须要申请工作签证才能合法在美工作
所以如果可以的话最好在二月以前走完所有面试流程
假设面试顺利通过的话,才能在三月时准备抽H1B工作签证的文件
以赶上四月的美国H1B申请截止日
因此大概十二月底时他请HR和我联络,安排之后现场面试的日期
(由于曾是实习生的关系,跳过了电话面试阶段)
(但因为是研究职,所以没有return offer可以直接拿,还是需要完整的现场面试)
那段时候刚好碰上美国过年 & 台湾过年
因此最后是在二月底(2/27)时才去现场面试
另外由于我还没服兵役,预计明年七月才能上工
可能从面试到要上工中间得等个一年半,原本担心这样可能行不通
不过公司方面是说这问题不大
(一般似乎是拿到offer一年以内要上工,但当兵时间应该可以不算在等待期限内)
面试的地点位于大西雅图区的Redmond
所有费用(机票、食宿、地面交通等)都是公司负责
基本上从踏出家门那刻起直至回到家门,中间旅程的所有花费都不需要自己出
这点好像是大部分科技公司的标配
所以即使是台湾学生也不用担心为了面试买机票与订旅馆而破财
另外像我们这种海外求职者,脸书是安排两天前(2/25)到公司附近的饭店住宿
让求职者有两天可以稍微调点时差
美国本土求职者应该就是前一天到
当天现场总共分6.5关
08:30~09:00 和HR聊天
09:00~10:00 给个研究演讲
10:00~11:00 (1-on-1) 考白板程式
11:00~12:00 (1-on-1) 问研究相关问题
12:00~13:00 (1-on-1) 和主管聊天 & 吃饭
13:00~14:00 (1-on-1) 问研究相关问题
14:00~15:00 (1-on-1) 考白板程式
15:00~ HR展示公司产品Demo (Oculus Rift)
和HR聊天的内容基本上就是再次确认我的背景、可能预计的上工时间
以及当天的流程,顺便帮忙设定投影机
研究演讲则是有点像学位口试,把读博班做的研究成果和大家分享
这个求职者的演讲资讯会在面试前几天在公司内部通知所有员工,有兴趣的都可以参加
当时在实习时也参加了几次,对于员工来说算是快速补充新知的一种方式
对于求职者来说则有点像是博班口试的预演
第一关1-on-1的白板程式比较偏团队实际碰上的一些程式实作问题
和leetcode风格不太一样,需要一些领域知识
但程式本身不算难,大概顶多leetcode的medium等级
第二关的研究问题也是团队实际碰上的一些开放性研究问题
没有真正解答 (因为他们目前也不知道怎么处理比较适合)
基本上过程像是在互相讨论与分享经验
第三关与主管吃饭面试,我觉得可能偏向是behavioral interview
不过因为我已经和主管认识好一段时间了,所以过程比较像在闲聊
其中一个较有印象的问题是之后工作地点的选择
由于我们的团队在脸书总部(湾区)与西雅图都有位置
主管本人是每个礼拜在两地各待一半的时间
湾区的房价高我想也不是新闻了,且州税也是高得吓人
(西雅图所位于的华盛顿州是免缴州税的)
因此我还是选择了Redmond (也就是面试的所在地,同实习地点)
第四关面试是面试官问我以前的研究
基本上把研究好好地解释一遍即可
其中也会问一些做研究时需要用上的数学背景知识,但都不算难
感觉是面试官真的想好好补充相关知识而已 (?)
(毕竟即使是同团队,每个人擅长的研究领域也不完全一样)
最后一关是纯leetcode类型的白板程式面试
难度都是约medium等级,有好好练习leetcode的应该都没问题
从两年前实习面试时到正职面试的期间我总共写了约350题
从easy开始写,写完换medium
但由于leetcode题目的成长速度太惊人了,medium只写不到一半就捏著LP上了
还好面试官人很nice,没有考得太难
另外除了这一关的面试官是software engineer外,其他的都是research scientist
三点的产品Demo原本预计是去一个专门体验VR的小房间,有点像是三创的Vive体验区
不过因为我之前玩过了,加上当时有一点累
(当天大概只睡四小时,四点就因时差关系醒了,便开始继续练习当天的研究演讲)
头发也有抓过,不想再戴VR头套,就跟HR说我想跳过这个阶段
他人很好地说完全没问题,并告知我面试过程至此已全部结束,我若没事就可以先离开了
当天晚上上飞机前便接到HR电话说公司愿意给我offer,只差数字细节还需要讨论
下飞机后又接到HR来电说明最后版本的数字,也试探地问我是否会接受
我故作沉思,让对方觉得我好像在犹豫
(其实我只是在想要怎么用英文讲我愿意接受这份合约)
约一秒钟后给了他肯定的答复
(我其实也只面一家,并没有其他选择可以让我多方比较)
之后没多久便收到HR寄来的offer letter (email)
事后回想,如果可以的话还是多面几家会比较保险
把最想任职的单位安排在后面一点,前面多几间练习的机会,可能心里会更踏实些
(不过要其他公司等一个陌生的求职者一年半时间我想应该也颇难就是)
当然,除了现场面试的经验分享外
我可能也应该要把怎么拿到实习机会的过程写出来
因为这个或许更关键 (没有前面实习的经验应该就没有后面的面试了)
大约三年前,由于研究一直做得不是很顺
且本身的研究主题和指导教授(以下称简P)本身擅长的领域并不一致,简P能给的建议不多
他便帮忙寄信询问一位在电脑视觉界的大师(以下称杨P)是否能共同指导我及另一位学弟
(最主要的契机是我们一起合作的某篇投稿paper被审查者狠狠的洗了脸)
杨P是在美国当教授的台湾人,在还不认识他时只知道他很有名,研究也做得非常出色
但不太知道他是否愿意花时间指导我们
(虽然他的回信内容是说没问题,但当时我怀疑可能只是假客气)
幸运的是,杨P完全就是个言行合一的人
所以即使他平常事情已经非常多了,他还是愿意每个星期挪出两个时段和我们讨论研究
并且和我们一起写paper,寄过去的信件也几乎都是秒回
我想我是找到大腿了,当时便下定决心要死抱着不放
后来几个合作的研究成果靠着杨P的大力carry也顺利地投出去并最终被接受
要不是他,我可能到现在还在吃土
约在2016年年初时,他约了几个学生吃饭
(有的在台湾读书、有的在美国读书,但都是台湾人)
我还记得当时的餐厅是中正纪念堂旁的杭州小笼汤包
而我们几个学生在当时和他虽然都有些研究上的合作关系,都不算是他的正式学生
席间他问我们有没有兴趣到美国公司实习
如果有兴趣的话他知道有几家公司的研究单位还有在找人
当时我们是都说很有兴趣
不过我内心其实隐隐觉得这应该是在美国读书的学生才会有的机会
后来杨P和我们要了履历,并且真的把大家的履历寄给各家公司
还加码在信件中帮忙介绍每个学生的擅长主题与人格特质
真的很难想像
一个在电脑视觉界名人堂等级的学者会愿意拨出时间替我们这群小鬼投递履历
而我们甚至不是他的正式学生
简单来说,杨P就是个很爱台湾、并且极度乐意帮助台湾学生的佛心老师
从他的角度而言,他认为台湾学生很多其实都非常优秀
只是接触到的资讯不够充足,或是和他人的连结不够多
所以不知道有些路其实是可行的
而他非常愿意帮大家把桥梁建起来
之后也真的有几家公司寄信和我询问实习意愿,并且安排电话面试
打破了我原本以为美国公司的实习只会找美国学生的想像
杨P总共大约帮我们投了十来家公司,基本上都是投研究单位
每家的领域不尽相同,有些比较偏计算摄影学,有些偏3D,有些则是机器学习
当时第一家联系我的是snapchat
这家的面试过程其实颇为尴尬
因为当时snapchat里面的K君 (也就是杨P在snapchat联络的对象)
有特别提醒我们要练习写程式,因为我们的履历是K君帮忙丢给HR看的
当时K君刚到职没多久,他希望透过他内推的人可以有好的表现
不过由于约到的面试时间是大年初三 (年假还没放完就得赶紧从南部北上)
且那时对于程式考试并没有什么概念
(毕竟我是电机系出生的学生,又是读电子所,刷题这种想法对当时的我而言并不存在)
自以为平常有写点程式就可以应付这种面试,加上时间有点赶
因此大约在面试前在leetcode上写了十题左右就上场了 (也是那时才开leetcode帐号)
结果面试过程惨不忍睹...原本英文就讲得没有非常顺了
程式又写不太出来,完完全全地搞砸,当然也是没意外地被拒了
(面试过程是用Google Hangout分享萤幕画面,直接开IDE写面试官的问题)
除了非常对不起K君外,也对杨P感到很抱歉
虽然杨P好像完全不在意,他认为就是缴学费 (我感觉他挺会安慰人的)
K君则是我不知道怎么在email中和他提这种事 (可能也是自己有点逃避、不想面对)
也一直没有机会在其他场合当面和他陪个礼
直到现在对于那次面试的结果我依旧耿耿于怀...
因为当时再过没几天就是google的面试了 (也是过年前就约好的)
我赶紧搜寻这种面试应该如何以正确的方式准备的资讯
后来得到最重要的二字诀就是“刷题”,也是在此时才开始彻彻底底觉悟
要面试上这些科技公司就是得认命刷题,否则研究做得再好一样乖乖下去
因为我们平常为了做研究写的程式其实面向不够广
遇上了一些不常碰上的算法问题,即使以前修算法课程的时候大概知道内容是什么
但真的碰上了写不出来就是写不出来,面试官大概也会认为求职者的能力不够健全
因此后来在几天之内刷了一百多题,也渐渐对于这种程式考试的感觉有了些许掌握
google的电话面试是用Google Hangout沟通,并且共同编辑同一份google doc
有两个电话面试,各一小时,连续两小时安排在同一天
第一关面试过程颇为顺利,从最初了问题到后来的延伸都写得规规矩矩
第二关面试刚开始时也都写得还算顺利,不过中途面试官觉得我的写法不太优
请我换Breadth-first search (BFS)算法实作
当下突然脑袋一片空白,怎么写也写不出BFS来
回想起来,在当时leetcode练习的过程中其实我完全没有写到任何需要用到BFS的题目
或是可能有题目可以用BFS写但我用其他方式处理了
总之第二个面试后来也是悲剧收尾
(我想修过算法的人大概了解BFS是个很常见的算法,写不出来真的会令人满头问号)
没几天后HR寄信来说由于两次的面试结果无法让团队能有效评估
说需要在几天后再安排第三次面试
我赶紧把一些BFS相关的题目练习一次 (又多刷了几十题)
后来第三次面试果真也需要使用到BFS,而且这次面试我认为是三次面试中表现最好的
写得飞快、答得肯定
原本以为第三次面试会是一次定生死的局,如此惊人的发挥我想大概是妥当啦
...结果后来还是被拒了
我之后有寄信问HR原因,对方说并不是第三次决胜负的概念
而是蒐集三次的面试结果让各团队参考,所以面试两好的结果还是胜过两好一坏
而且当时时间有点晚了(约三月中),大部分的实习位置都已有人
团队的标准会设得较高
补充一下,其实google在确定要面试时有寄一份文件给我,名称为
“Preparing for Google Technical Internship Interviews”
里面有提到整个面试主要流程是
1. 写程式
2. 第一阶段审核
3. 专案配对
4. Offer
所以其实程式只是第一关,还要之后有适合的团队配对成功才能拿到offer
另外整份文件其实也有透漏可能的试题方向,当然也有提到需要熟悉BFS
但我自己本身只把原本的理论再次了解一遍,疏忽于练习相关题目
因此也算是咎由自取
所以如果大家之后有机会面试程式的话,建议每种题型还是要都做过几次会比较保险
在google面试后我又把这份文件拿出来前后仔细阅读
并练习里面提到的任何类型算法实作
(所有题型在leetcode上都找得到相关的)
虽然文件不能公开,但有几个要件应该是和软件公司面试的基本配备
1. 算法复杂度
2. 各种资料结构 (tree, hash table, stack, array, linked list, queues, heap)
3. 排序算法实作 (主要就是quicksort和merge sort,可以把程式码直接背下来)
4. traversal and manipulation algorithms (ex: BFS, DFS)
这些资讯在网络上应该都找得到,当时就是花时间把这些东西都再熟悉一遍
并且真的在leetcode上练习了各种算法相关的题目
没多久后当时脸书的oculus research便和我联系了
不同于google是统一面试程式再分发单位
当时脸书的作法是团队里面的人直接面试我
总共分为三次 (分别在不同天举行)
过程是用Bluejeans分享声音与视讯 + 共同编辑codepad写程式
第一次主要是自己的研究结果分享,对方问一些基本的领域知识的问题
第二次则是聊研究与考程式,程式的题型比较像组里碰到的真实情况改成考题
难度大约是leetcode的easy到medium,写得也颇顺利
结果二面完过没几天组上说人已征满,可能已经没缺了
我如果有其他实习工作的机会就先去吧,不要考虑oculus research了
收到信的当下其实非常沮丧,因为在当时我根本也没有其他实习offer,这嘲讽开真大
不过为了表现出台湾人的热情与风度
我还是很有礼貌的寄信谢谢对方愿意花时间和我面试,并期望未来有机会能再合作
想不到这次老天爷终于对我展开笑颜
再过没几天对方突然又说有位置了,不过时间有点赶
需要马上再次安排面试 (当时已是三月底)
我当然马上回信说没问题,然后又再刷几题练练手感压压惊
第三次面试的内容也是谈研究与考程式
程式内容是需要使用BFS实作的题目 (又是BFS! 好像冥冥中注定似的一直来)
这次也是真实情境题,难度大概是medium
由于在那时我已练了无数次各种类型的BFS,所以当下也写得很顺畅
面完后不到半小时便收到offer letter了,隔天便决定加入
因为当时已是四月初,公司马上开始帮忙我办J1签证
文件来来回回,最终约五月中时办好签证,六月初上工
另外在决定去脸书之前其实也有面试bosch与intel
后来有拿到bosch的offer,不过因为时间卡到所以回绝
而intel则是还在等二面的时候我便跟对方说已决定去其他公司
当时为了实习的面试前前后后总共约刷了180题
(所以在准备正职面试时又刷了约170题)
接着分享一些台湾学生在海外实习的经验
当年我的实习日程是6/6~8/26,第一天在湾区总部参加orientation
(前一天从西雅图飞下去,当天晚上再飞回西雅图)
第二天才和团队见面,并且开始选择之后要做的题目
最后在8/24要给个结案演讲,一样是公司内部寄发信件让所有人知道
有兴趣的都可以参加
而oculus research其实并不是以发表paper为导向的部门
他们虽然还是会发,但题目要很适合才行 (非未来产品主线+有学术价值)
当初主管是给了我两个题目选择
A题目比较保守,可以稳妥妥的作完,但是发表机会不高
B题目比较有挑战性(团队较不熟悉的side project),结果很可能不是大好就是大坏
而我当时实习的唯一目标就是希望能有个好的发表,因此毫不犹豫选择了B题目
由于大概只有两个半月左右的时间可以使用
时程上颇为紧迫,因此这段期间我好好地发挥了台湾价值
加班做功德,吃苦当吃补,常常是待到最后一班公共汽车要来时才离开公司
最后也顺利地生了一个完整的系统出来
(讲起来是满轻松的,但当时是在报告大限前一天凌晨才把系统建置完成,有点极限)
另外当初原本想说脱离原本熟悉的舒适圈,换个艰困的环境刺激一下自己
结果后来发现公司环境实在好得没什么可以挑剔的
光是椅子一张就要一千镁,其他设备就更不用说了
感觉好像就是从奥克拉荷马搬到旧金山一样,整个人反而更快活了起来
所以即使是从台湾过去的学生我想也不需要太担心人在国外的不适应
只需要充满热忱好好地做下去
把握机会 避免蹉跎
如果缘分到了 研究自然会找到出路
另外在实习的过程中其实我陆续问了几次主管这个题目发表的可行性
但因为当时结果一直都不太好,主管也没有给出明确的答案
后来是在实习最后一天中午吃饭时
主管说他已询问了他的主管M君 (也就是oculus research的chief scientist)
并且获得了M君的许可,可以把这个研究成果写成paper发表出去
当下真是开心到差点要进入圣人模式! 熬了这么久终于出运啦
(而这个研究成果日后也变成我博论中最重要的代表作)
不过由于J1期限只到8/26,已经无法继续在公司待下去把paper写出来
除非再申请一次或延长签证 (但当时其实也来不及了)
我后来选择先回台湾继续完成原本在敝实验室的研究项目并投稿死线在年底的会议
(结果这篇后来被拒)
后来想要继续进行公司的专案时准备去年的paper投稿时
由于没有员工身分的话是无法拿到公司内部资料的
为了能够让我合理取得资料,脸书又与我再签了一次约,并再次帮忙申请J1
所以在去年年假后我又回到西雅图两个月把paper与相关实验数据补完整
paper被接受后由于要准备参加会议需要的口头报告与demo的材料
又需要拿公司资料,因此公司又再次与我签约至去年底
并且把笔电与其他相关物件寄至台湾,让我透过笔电使用公司资料 (这次没回西雅图了)
前后三次签约都是有薪资的约,不过后两个约其实我满心虚的
因为那些事情本来就是我要完成的,而且也是我要求想完成的
但对方实在太守规矩,因此让我合约签了又签,薪水伦了又伦
(好吧或许也不算太伦,毕竟每一段合约期间我都是尽心尽力将任务做好做满)
也许主管与其他团队成员认可了我在这段期间的表现,才得以换到之后全职面试的机会
而面全职的过程已在一开始时说明,这里便不再赘述
能在这一年顺利找到工作并毕业,首先当然是要感谢简P
即使在我博班的前好几年都没什么好的研究成果
他也不曾责备我,或是要求我换个电子所比较喜欢的硬件题目 (我本身算是做纯软)
反而是寻找各种可能的资源帮助我在自己有兴趣的领域中有所突破
就像他找杨P帮忙共指,这点我相信很多教授是不愿意这么做的
而每次需要长期待在国外的时候,只要和简P讲一声,基本上他就会放行
实验室里所有计画的proposal或是报告书也几乎是他一人负责扛下
让我们可以专注在自己的研究上
虽然晚了好几年,不过终于也是要毕业了,也幸运地找到了适合自己的职位
这一切没有简P的成全都不可能成立
而杨P算是我生命中的贵人了
很难想像一位如此德高望重的教授愿意花时间帮助一些和他不算太有渊源的学生
能够拥有如此愿意提携后进的前辈真的是我们台湾学生的福气
我也期许自己未来能够像他一样,即使人在国外也可以用各种方式帮助台湾人
当然,这篇其实也不是一味鼓励大家到国外工作
只是博班的题目在国内不一定有适合的职位可以发挥
大家或许可以选择先到领域中的顶尖单位再多练功个几年
等到各方面能力都已完备时,再效仿当年张忠谋般把更先进的技术与产业带回台湾
毕竟这是我们的家乡,虽然平常在媒体上吵吵闹闹
我相信大家都还是希望美好的台湾可以变得更美好
另外最近也有不少新闻指出台湾有越来越多青年学子选择到中国读书
从文稿中也隐隐透露出对于台湾高教的忧心
我个人觉得台湾教育还是挺扎实的
就以敝校台大来说
电机系张耀文老师的算法、黄钟扬老师的资结程设
资工系庄永裕老师的数位视觉效果、林轩田老师的机器学习
对于我本身的研究领域而言都是非常有价值且实用的课程
在当年实习的过程中也不觉得有什么特别缺乏的技能
(好吧英文讲得还是不够流利,无法像说中文一样地嘴,这点实在满困扰的)
当然也有部分老师的课程令人不敢恭维
像是台大目前的电脑视觉这门课,我很好奇它怎么过得了教学评鉴
最后分享个小故事
2016年我在西雅图实习时
在某饭局中认识了一位当时还在微软研究院做博士后的资工系学姊
她说预计暑假过后回台大任教
当时我是满惊讶的,毕竟学姊顶着CMU博士的头衔,加上华丽的发表成果
要在美国各大公司找到一份薪水丰厚的职位绝对都不是问题
(可能就跟姆斯上篮有没有得分一样,只是要不要而已)
当下便战战兢兢地问她怎么会选择回台 (当时才初次见面彼此还不太熟)
结果学姊只是淡淡地说:
“没办法,就爱台湾啊。”
真是帅到出水了,马上一秒变粉丝 <3
虽然我也是自称爱台份子之一
但如果脚色互换我也没有信心能轻松做出相同的选择
不过好在我本身研究普普通通,基本上不可能胜任教职
而在台湾也没多少能发挥自身专长的业界工作
所以只能选择先去外面蹲个几年
但之后若时机成熟,我第一个回台
以上的经验和各位分享,希望该揭露的资讯都有揭露
也希望能让大家在未来做选择时能多些参考
如果有其他问题欢迎下方留言或站内信询问 :)