想去美国科技业请参考!Google、Facebook、Mic

想去美国科技业请参考!Google、Facebook、Mic

先自我介绍一下,我是国立台湾大学资讯工程学系学士以及硕士,研究领域为电脑视觉以及影像处理。从台大毕业后进入趋势科技当研发替代役的工程师。全职工程师经验约 3 年。主要擅长写 C/C++,役毕离职后决定开始行动追求以前的梦想:到美国软体业闯关,所以先跑来硅谷唸 UCSC extension 的学程班当作一个跳板。最近课程结束了求职也告了一段落,于是写了一些心得想分享给大家。

求职经历

以我个人这 9 个月的 CS求职经验来说,最重要的条件是有无在美国合法工作的身分,再来是工作经验,再来则是学历。由于 Certificate program是属于比较特殊的无学位学程,所以我经常得跟人资们说明清楚我的情况,像是我已经有硕士学位也有工作经验,念这个学程是为了合法身分等等,试图说服人资不要把我当作 new grad看待。

我在 2015 年 9 月到美国时就开始尝试着投履历了,但绝大部分都是没下落的,然后会有一些猎人头和人力资源公司的人联络,但这些人一开始就会先询问有无合法工作的身分,需不需要 VISA Sponsor,由于现在 H1B竞争激烈,需要靠运气才能取得,所以这一点变成很多公司徵才的第一要件。

愿意忽略身分问题而给面试机会的公司基本上都是跨国大公司如 Google、Amazon、Apple、Bloomberg 之类的,所以相较之下没身分的人要拿到面试的机会非常的低。我个人到美国的前半年只拿到了 JP MORGAN 和 Google 的面试机会而已。直到我快要取得 OPT前的三四个月,面试机会才开始增加。

我的求职策略是能请人帮忙内推就请人,没有的公司就海投,投个一两百家不为过。看到有 HR 在 FB 社团发文就传讯息问,Hacker News 上的职缺适合的就寄信,LinkedIn 上职缺都给他申请下去,总之就是免钱似的投履历就是了。不用想说这个职缺是否适合你,或你认不认识这家公司,因为八九成的公司是连理都不会理你,所以不用想太多。

这个策略主要的目的其实是想办法拿到面试的练习机会而已,能够有越多的面试机会,才能让刚从美国来、连英文都还不是很熟悉的人多一点练习的次数。不过即使是我这样的策略,我拿到非内推的面试机会也是寥寥可数,内推的面试机会则是有 50% 左右。

此外 LinkedIn 上面的履历尽量更新的丰富一点,有时候会有一些 Recruiter寄信来问,不妨多跟一些 HR 聊聊,即使他们公司最后没打算给你机会也没关係,只要你有跟他加到好友,那他的 HR 的朋友就可以从他那边看到你的履历,能见度还是会增加的。

美国 CS 虽然职缺也很多,但想应徵的人更多,而且大多数公司都想找有合法工作身分的人选。所以不要认为会写程式就可以轻鬆来硅谷找到工作,那是完全错误的。

面试心得

硅谷大多数公司的面试流程都是:

如果你过去对英文没有下过很大的苦心去练习,那来美国遇到的第一关电话面试就会让你吃足苦头。在 CS 界遇到印度人面试官是家常便饭的事情,印度腔英文、电话通讯的品质以及无法使用肢体语言的限制,会让电话面试成为初来美国求职的一大挫折。

以软体工程师的面试而言,刷 leetcode 练习是必要条件,但不是充分条件,绝对不是像乡民说的 leetcode 刷完就一定找的到工作,面试中解出题目其实只是评分的一部份,你如何跟面试官互动讨论,说明你的思考,如何测试你的程式等等都很重要。就算真的全都解出来,也不一定会拿到 Offer,还得看同时间的竞争者的程度如何。

练习 leetcode 可以熟悉一些面试常考的基础演算法和资料结构,但如果只是单纯背题目的话,一但遇到没遇过的题目就很容易慌,所以要练的是心法而非架式,要懂的是演算法而不是解题方法。除此之外,在面试前也可以多参考一下 glassdoor、一亩三分地、CareerCup 上面的面试心得,会有一些最近该公司考的题目,可以稍微思考一下如果被问到的是你,你会怎幺做。

以下是我个人的面试经验:

以下为一些公司的面试心得:

Cisco: 我是透过朋友直接内推给部门主管而拿到面试的,所以流程比较不一样,我完全没有接触到人资,从头到尾都直接跟用人主管接洽。一开始是先用 webex 来一场电话面试,是一个印度小哥,问的问题很多很杂,从网路基础 osi model, switch 到资料结构演算法的 coding problem 都有,面了约一小时才结束。过一个礼拜后联络主管而拿到 onsite,onsite 共有五关,基本上全都是 coding problem, 只有一关是偏 system design。

午餐是由朋友带我去吃公司的 cafe。寄信询问主管后主管说两个礼拜内会有决定,然后会通知我,但后来就完全没有消息了,所以最后其实拿到的是无声卡 XD。不过 Refer 我的朋友有跟我说面试官们对于我的 Coding 能力都觉得不差,只是有一两位面试官觉得英文能力还得再加强。同时那个职缺有另一个面试者因为还有 QA 的经验,所以当时比较倾向于录取那位有 QA 经验的面试者。

Facebook:Facebook 在去年底我刚开始唸书的时候就连络我了,当时我跟他说我 OP T 隔年六月才生效,不知道能不能先面试先抽 H1B,人资说还是希望我 OPT 开始前几个月才来面试,并跟我约隔年四月再连络。原本以为 Facebook 只是应付我一下,没想到隔年四月真的连络我了。面试的流程一样是电话面试然后 onsite 面试,由于当时刚好拿到 Nutanix 的 Offer,所以问看看人资能不能加快面试流程。不得不说 Facebook 的标语 move fast 真不是盖的,效率极高的结果就是将两个礼拜后的电话面试提早成两天后。

电话面试完隔天就说要安排 Onsite,Onsite 完隔两天就发 Thank you letter。Facebook 的办公室很宽敞,一整栋超大办公室连在一起,而且全都是开放式空间,顶楼还有个花园可以逛。Onsite 面试内容有两关是纯粹考 Coding problem,一关为 culture fit 和 coding,由于我是以 experienced role 来应徵的,所以还有一关是专门考 system design。收到感谢信后人资说虽然这次很抱歉没有录取,但希望未来还是有机会能够继续合作。

Nutanix: 一家稳定成长的 pre ipo 公司,由朋友帮忙内推而拿到面试。一开始电话面试有两次,第一次是印度人主管,考两题跟 binary tree 有关的问题。第二次运气很好遇到同学认识的中国同事,所以就用中文聊聊天就过了 XD 接着就接到 onsite 的通知,公司位于 San Jose 机场旁边的新创区,离 downtown 很近。

这边 onsite 总共有五关,内容也是 coding problem 居多,但有一关是考数学证明题,算是比较特别的问题。公司里面虽然没有厨房,但公司会提供午餐,我那天的午餐是美国蛮有名的一家 pizza,带我去吃饭的同事刚好是第二关电话面试的中国人,就跟他到个谢聊个天后结束午餐。面试完后隔了一阵子都没消息,所以寄信询问人资,人资收到信后就打电话一直问我对那个部门有兴趣之类的,却又不跟我说面试结果如何。最后我跟他说如果我的面试回馈是偏正面的话我想要取消其他小公司的面试,人资就联络我说要给我 offer 了。Nutanix 是间很不错的公司,package 也开的不差,可惜我因为 OPT 签证只有一年,选择新创公司在未来签证和身份取得的问题上会比较不方便。

YouTube:YouTube 是由 Google 人资转介绍给我的,因为当初我跟他们说我对 YouTube 比较有兴趣。由于这时候我已经拿到微软的 offer,所以跟他们说我希望可以加快面试流程。结果对方就决定直接跳过电话面试直接邀请我 onsite。公司本部在 San Bruno,办公室区域不大,约只有三栋建筑物,但里面还挺开阔的。这边我总共有 5 关面试,而且题目类型比较多变。

虽然也都需要白板 coding, 不是单纯的 leetcode 类型,而是 system design 和讨论。面试完后人资会通知说要不要送 hiring committee,如果面试平均分数过低就不会送,送的话才有机会进入下一步。我最后是在 hiring committee 被刷掉,人资说虽然被刷掉了,但觉得我很有潜力,所以希望未来我能再去面试看看。

Google: 在 YouTube 结果通知之后,我原本已经打算就去西雅图微软了,结果隔天 YouTube 人资说 Google 有另一个部门对我有兴趣,所以想问我要不要再试试看。于是我又在面试地狱里多打滚了一个礼拜。这次人资只帮我安排了三场面试,遇到的题目就是很标準的 leetcode 形式,面试官也不太废话,进来寒暄一下就开始写白板。这次我依然是挂在 hiring committee 这关,人资说有一个面试官觉得我的程式能力很强很好,但另一个觉得我没写出最佳解,所以 hiring committee 觉得我的能力还不够稳定,于是决定不录用。最后人资希望我能够再多练习一些题目,10 个月后再跟她联繫看看是否能够再度面试。

Microsoft: 微软这边的状况比较有趣一点,其实原本靠朋友内推都没有下文,自己在网路上投履历也没下文。直到我在一个 FB 社团看到一位微软人资 po 文徵才,我就私讯联络她,然后经过一些履历的 screen 之后我拿到了第一关的线上测验题。线上测验总共有三题,网页很简陋,就单纯文字描述的题目和一个 textbox 给你写答案。有两题是演算法题,第三题是 system design 题。由于当时已经先有了 Nutanix offer, 所以我就很放轻鬆的去写,第三题因为题目描述太简短,我直接回答说我看不懂题目 XD,一小时的作答时间我只用了 20 分钟就缴卷。不期不待的我就默默接到 onsite 的邀请. 微软的 onsite 面试公司会直接帮忙订机票住宿租车等等,餐费则是事后报帐。我参加的是现在微软比较新的徵才方式,有点类似海选般的活动。所有获得 onsite 的候选人会在同一天一起到微软的面试 building,然后一人分配一间会议室等着面试官进来车轮战。我参加的是上午场总共四关,从 8 点到 12 点连续面试。

题目也是演算法和资料结构居多,但最后一关考了题 system design, 而且很类似第一关线上测验的第三题那题我看不懂的问题. 有个有趣的点是上午场总共十几位候选人,大概有 1/3 是从 Amazon 来面试的。面试前人资跟我们说他们的 opening很多,不用担心其他人是竞争者,只要能力够就可以被录取。面试完后隔几天人资打来问说面试的感觉如何等等,然后说有两个部门主管想跟我多互相了解一点,所以又多安排了两通跟主管聊天的电话。聊完后人资请我选一个我比较喜欢的部门,最后获得该部门的 offer。

Two Sigma:Two Sigma 是唯一一个我没有靠 Refer 而拿到的 on site,一开始是在 hackerrank 网站上写该公司的线上测验题,通过之后对方人资打来安排电话面试。电话面试问了不少问题,包含简答题以及 coding 题。之后人资寄信通知说邀请我去纽约曼哈顿 SOHO 区的总部 on site 面试。面试为早上连续三关,中午吃完饭后会有早上的面试的回馈,如果有通过的话下午会再三关。

早上的前两关都是考 system design 相关的题目,第三个则是直接给你一台 Ubuntu 系统的电脑写程式编译跑过一遍,我是利用 vim+gcc 写 C++ 去实作问题。吃完饭之后人资通知说不好意思没有适合的位置给你,所以下午我就去玩乐纽约了。Two sigma 虽然是做程式交易的公司,但内部环境跟硅谷新创公司的风气很像,也有开放式空间、micro kitchen 免费食物等等,网路上是说这家公司开的 package 非常的好,所以要录取也是颇有难度。

Apple: 虽然我没有拿到 Apple 的 onsite 面试,但我觉得 Apple 这次给我的电话面试的方式我还蛮喜欢的。Apple 这次的面试跟其他公司不一样,不是考演算法和资料结构,而是利用线上偕同写作的网页来看我写 project。面试官一开始就在网页上贴了一份小 project 的程式码约 300 行,然后稍微跟我讲解一下这个 project 有哪些 components,然后叫我编译执行、debug、新增功能等等。这样的面试方式比较像是实际上在公司工作会遇到的事情,也比较能看出面试者在工作时会遇到问题的思考方式和做法。这是我第一次也是唯一一次在电话面试遇到这样的考法,所以做起来速度稍微慢了点。可能是完成的功能不够多所以没有进入下一关。

通常每一关面试完后都会有一小段时间可以问面试官问题,这边建议是至少问个两三题,让面试官觉得你对于该公司是有兴趣的,同时你也可以多了解一点公司的制度和风气。我个人是有準备一些经典问题,当没有特别想问的时候就拿出经典问题来问。我最常问的是工程师在贵公司的一天是怎幺样度过的,或是问说贵公司怎幺样衡量一个工程师的绩效、贵公司对于刚进去的新人有没有什幺帮助新人快速进入状况的模式。

由于我的 Offer 数量不多,而且刚好是两个不同地区的公司,所以要直接拿 Offer 去谈薪资不太容易,而且过去在台湾的工作薪资在美国并无参考价值,所以我并没有跟公司讨价还价,Package 跟我上网查的平均差不多后我就接受了。

若想进一步了解其他细节,请至作者 Githu。

欢迎加入「Inside」Line 官方帐号,关注最新创业、科技、网路、工作讯息
想去美国科技业请参考!Google、Facebook、Mic