[心得] 欧洲 Facebook、Google、Booking 面试

楼主: suiting (好好好)   2016-11-01 22:30:51
最近结束了几个海外的面试,想留下一些个人心得。
如果刚好有机会帮助到人的话就更好了。
简短自我介绍
台大电机系毕,毕业后先后待过中央研究院资讯所 / Gogolook /
KKBOX / KKStream。由于从大学毕业后就一直有朝国外发展的计画,
但想去国外读书却一直申请失败,今年便兴起了直接找工作的念头。
公司 & 地点选择
根据一些大大的分享,近几年没有 OPT,要直接找到美国的工作不是
一件容易的事情;H1B 抽到的机率也一年比一年低,所以本次面试的
目标,全部都锁定欧洲的公司或在欧洲有分部的公司。
而考量到 VISA 的问题,找的公司都是比较大型的公司,处理 VISA
比较有经验。
以下是本次有面试的几间公司 (依面试顺序):
Booking : Backend engineer (Amsterdam)
Facebook : Production engineer (London)
Google : Site reliability engineer (Zurich)
准备 & 面试过程
跟大部份人的过程十分类似,因此不会写太多细节,例如 phone
interview 的进行方式之类的。会比较著重在个人心得的杂记。
准备履历
自己觉得履历没有写得很好,但原则就是多看多改。可以让人
Google 到的东西尽量要更新,例如 GitHub,LinkedIn。
投履历
尽量找该公司内部人推荐,没有的话再从网站上面投。
以个人的经验是,内推有 phone interview 的机率是 100 % (3/3);
反之则是 0 % (0/1)。
不过我没有投很多家,也许误差很大。
Online coding test
跟 Leetcode 很像,就是在线上解 Leetcode 类型的题目。
不是每间公司都有这关。
HR phone screen
大部份是一般 screen 的问题,只要可以用英文与 HR 沟通,
不会有什么大问题。
有些公司会有简单的技术问题,例如前一阵子有人在 Hacker News
分享面试 Google 的第一关问题,参考价值很高 (笑)
HR 也会在这个阶段解释接下来的面试流程,有不清楚的可以把握机会问清楚。
有特殊需求的也可以趁这个时候说明,例如需要公司帮忙申请 VISA,
可以赶快寻求共识。以免面试结束后发现你要的公司给不起...
Technical phone interview
由于我投的职位有些跟系统有关,所以分 coding & system 分享。
Coding
在过程中尽量跟 interviewer 沟通,了解是否在正确的道路上。
就我的稀少经验中,有几个 interviewer 给的建议都非常的好,
让我在开始踏上错误的方法前及时的回头。
Always think loud,把想到的事情尽量讲出来
例如“I am thinking if I can replace this part with blahblah,
the complexity can be reduced to O(n)”之类的。
最后通常会有机会可以问 interviewer 问题,这里指的是跟面试
本身较无关的问题。有些大大觉得问 interviewer 问题会影响结果,
就我个人的想法而言,我其实觉得不要问很离题的问题应该都还好。
因此我大部份问的问题就是跟工作 & 生活有关的问题。也得到了很多有趣的资讯。
System
非常非常非常广,可以说是一台现代 Linux server 上面有的都有可能出现。
举些例子:
process memory layout, inode, shell, IPC,
file system, DNS, TCP/IP, HTTP, signal, log
Interview 的方式也很特别,例如其中一个面试开始前,interviewer
就要求我离开键盘,不要使用 terminal & browser。
接着开始情境模拟,例如碰到一个怎样的状况,会从什么线索开始查,
可能的 workaround 是什么;如果想要解决 root cause 要怎么解决。
(印象中我最后就拿纸笔做些笔记而已)
(但不是所有的 system interview 都是这样子的)
个人感觉是 system interview 的准备难度比 coding 难上不少。
主因是 system 的问题可以不断的越问越深;但因为写程式的过程中其实
有不少的 abstraction,不一定有机会了解更深一层的运作方式。
另外就是 coding interview 的准备资源非常的多;但 system interview
就没有这么多可以抱佛脚的东西。
后续会推荐两本书籍,有兴趣的大大们可以参考。
Onsite interview
分三部份: coding & system & system design
Coding
Onsite 后基本上就是白板题,进行的方式跟 phone interview 没有太大
不同,只是要习惯在完全没有 IDE / editor 的帮助下,写人看的懂的 code。
由于是在白板上作答,有一些优点可以运用。
例如可以先用一些图像化的方式解释想做的事情。如果需要 binary search
就可以先画个图,说待会写的 code 是这样那样。
另一个优点是看的到人了,可以多观察 interviewer,例如觉得怪怪的时候
就尽快问是不是走错路了。
偶尔也可以喘口气思考一下,或者利用一两句话放松一下,整理思绪。
System
要有在白板上解释任何被问到东西的能力。
例如被问到 directory, regular file, inode 之类的关系的时候,
要可以在白板上利用一堆表和线解释出来。
或者可能会需要解释 OSI model 中,主要几层做了什么事情
从最底层到最上层的东西都可能会考。非常硬的一关。
System Design
在每一间公司都有遇到,题目基本上就是“Design XX”XX 可以是任何现代
网络的服务,例如 Facebook,Gmail,dropbox。
但实际上不可能要求在这么短的时间内设计这么大的东西,因此过程反而像是
跟 interviewer 讨论,是不是只做这些部份,剩下的就先不要。
在实际开始规划前,问的问题非常重要,会直接的影响怎么设计系统。
例如“How many users will use the system?”就是一个最根本,一定要
问的问题。
Imagine Dropbox with 10 users v.s. 10 million users.
问完以后就会在白板上画出需要的 components,
例如 HTTP server,DB,Cache,storage。
最简单的版本完成以后,就会根据这个版本慢慢的越变越好。
在改善的过程中一定会有一些很两难的问题,可以试说著说明各种方案的好坏,
tradeoff 是什么,也许在什么样的情况下我会选 A,而另一个会选 B。
一些参考方向:
* 基本的协定 (TCP/IP,HTTP,TLS,DNS) 要有一定的认识;
* 不要有 SPOF;
* 水平的 scalability;
* 常见的 modern web components 有哪些;
进阶的:
* 所有的 components 要怎么做 HA (这是一个非常难的问题.....)
结果
Offer:
* Facebook
Reject after onsite interview:
* Google
* Booking
Reject after sending resume:
* GoCardless (有点没准备就乱丢了...)
心得
在准备面试的过程中,压力非常的大;有时候会想说,我写程式也不一定
用的到这些。
Steve Jobs 在 史丹福大学的毕业生演讲中分享过:
“我没预期这些东西会对实际生活带来什么具体的作用。但是 10 年后,
当我们设计第一部麦金塔电脑时,它 (书法) 又浮现在我心中。”
我自己的想法是,把整个过程变成另一种提升自我的方法:
例如
* 准备 coding interview 的过程中,其实就是不断的提升自己写程式的
一些技巧。也许自己有一些思考的盲点,在练习的过程中很容易就可以发现。
* 准备 system interview 的过程中,收获更是丰富,几乎是把在网络产业
会需要用的东西都再读过一遍。
* 面试的过程中除了尽力展现以外,也是在学习别人面试的技巧,也许很快
就有机会在自己的公司内应用。
* 失败的面试就当成是一个免费的面试练习,只要有学到一点东西就很赚了。
* 全部都失败的话,至少这几个月的收获要让自己不虚此行。
在抱持着这样的信念下,不论成功与否,都会有很多收获。
另外,整个准备 + 面试的过程我并没有刻意拉得很长。
一方面是自己身体在压力大下并不是很健康;另外就是不想长时间的影响
工作上的表现。
在收到第一个 rejection 的时候,心里有短短的失望了一下。
但很庆幸自己有坚持下去,最近有一个还不错的结果。
另外在整个过程中,保持跟 HR 良好的沟通也非常重要。
跟我合作的 HR 里,在每次通知结果时,我都会问可否给我一些 interviewer
的 feedback。而他们也不吝于分享,因为对 HR 来说,recruiting 到好的人
是他们最重要的工作。这些 feedback 也在接下来的一些面试中有许多无形的帮助。
书籍推荐
* Advanced Programming in Unix Environment:
经典书,许多 system programming 的东西都有讲。
* TCP/IP Illustrated Vol. 1:
经典书,从 IP 开始,讲到 DNS / UDP / TCP,非常完整的一本书。
这两本书也许不是很适合拿来抱佛脚的书,因为两本书都超级厚,内容丰富
的程度非常适合拿来打底。
其实两本我也都还没有完全看完,也还一直持续在看,希望有朝一日可以看完他们 XD
致谢
Last but not the least。
在这些过程中受到非常多人的帮助,因此特地开一个 section 致上最深的谢意与敬意。
KKStream
简单介绍,我们是 KKBOX Group 的一间子公司,是 Multimedia Streaming
Service 的 total solution provider。
公司目前有稳定的商业模式,也一直在探索不同的方式。跟大部份公司一样,
一样会有各式各样的问题,但较为可贵的是我们愿意改变而变得更好。
对公司的感谢不是三言两语可以说完,想以简单的两行说明
* 如果没有出国的梦想,是愿意一起打拼的公司。
* 不是最好的公司,是一直在变好的公司。
而 KKStream、KKTV 和 KKBOX 的几位强者同事 & 主管们,让我一直有学习的
目标,打从心里感谢我的同事和主管们。
另外,我们也还一直持续的在寻找优秀的人,有兴趣的大大们可以参考以下网址
https://goo.gl/1QjHGE
或者想要找我聊,也都非常欢迎 (站内信)
(快点投履历的话,也有机会在公司聊聊天 XDD)
中央研究院 陈升玮博士
升玮老师是我在毕业后进入中研院的实验室老师
是非常非常强的实务派老师,好几次我抱着电脑看着他把我的 code 从数十行
改到不到十行(眼泪都快流下来了)
没有升玮老师的指导 & 鞭策,我绝对不可能有机会完成出国工作的梦想
如果有计画到中研院资讯所,也非常推荐升玮老师的实验室 :D
Others
另外也很感谢在过程中帮忙内推的同学与同事们,没有你们我应该连面试的
机会都没有 QQ
最后感谢在过程中一直为我打气在我身边帮我加油的人。
作者: shenevol (shen)   2016-11-01 22:39:00
好强喔!感谢分享~推
作者: newmilktea   2016-11-01 22:47:00
推!
作者: j6cl3 (Jhon)   2016-11-01 22:48:00
学长欸! 不过学长想出国读书机会应该很多吧?
作者: h5904098 (LBJ IS GOD)   2016-11-01 22:48:00
强!
作者: pttworld (批踢踢世界)   2016-11-01 22:51:00
重要资讯。年龄学识比值最重要的。KK我问过苹果等化器。
作者: hungys (hungys)   2016-11-01 22:53:00
朝圣!
作者: chehsunliu (阿勋)   2016-11-01 22:53:00
朝圣
作者: chupiggy (機器人)   2016-11-01 22:55:00
陈升玮老师超强
作者: duck10704 (duck)   2016-11-01 22:57:00
太猛啦 曾在KK帮推!!!
作者: w181496 (Kaibro)   2016-11-01 23:00:00
朝圣
作者: solonwu (绝对的信仰可以革新命运)   2016-11-01 23:05:00
恭喜
作者: john3212 (酱3212)   2016-11-01 23:06:00
朝圣
作者: amazing2014 (别断线拜托)   2016-11-01 23:07:00
推!
作者: hellomoto123 (Yong)   2016-11-01 23:10:00
作者: YungMH (M.H)   2016-11-01 23:12:00
推!
作者: eric541 (YcK)   2016-11-01 23:17:00
前战友帮推!太强拉~~
作者: he00244945 (吉卖仁)   2016-11-01 23:17:00
作者: srxrrr (干!我是肌董)   2016-11-01 23:18:00
推!!! 很详细的分享文!!!
作者: hizuki (ayaka)   2016-11-01 23:21:00
作者: pyk (圈)   2016-11-01 23:22:00
朝圣推! 也推KKstream!
作者: kiawe (未来 好远好远)   2016-11-01 23:29:00
朝圣推
作者: renny32 (DDDDDDDDDDDDDD)   2016-11-01 23:34:00
推推
作者: jadventures (jadventures)   2016-11-01 23:35:00
猛哭阿
作者: sean2449 (肉松)   2016-11-01 23:39:00
好屌...都面infra...
作者: danielbas (草酸)   2016-11-01 23:44:00
妈我在这 ._./
作者: y2468101216 (芸)   2016-11-01 23:45:00
作者: chao1120 (绿咖哩汤)   2016-11-01 23:48:00
推! 太强了
作者: mailliwL   2016-11-01 23:52:00
牛妹我同学,分我一点面试的运气QQ
作者: nichinichi (nichi)   2016-11-01 23:58:00
作者: iamshiao (CircleHsiao)   2016-11-01 23:59:00
受益匪浅
作者: MIKEmike07 (加油!)   2016-11-02 00:08:00
作者: olivehowell (Howell)   2016-11-02 00:09:00
推推!感谢分享!
作者: talenttb (CC)   2016-11-02 00:15:00
朝圣
作者: smdf (我依然相信)   2016-11-02 00:32:00
作者: pig0038 (颗颗)   2016-11-02 00:34:00
作者: frank11118 (想睡觉)   2016-11-02 00:36:00
作者: kkc (卡西)   2016-11-02 00:36:00
朝圣推
作者: ousapas (komica123)   2016-11-02 01:00:00
太神啦
作者: winken2004 (新竹肥宅)   2016-11-02 01:04:00
作者: cyliner (勇敢)   2016-11-02 01:09:00
推陈升玮老师
作者: sorryla (Mr.东)   2016-11-02 01:19:00
恭喜!
作者: Telemio (Telemio)   2016-11-02 02:48:00
作者: drajan (EasoN)   2016-11-02 03:34:00
伦敦FB的台湾人越来越多了 不错!推
作者: Hubert (Eyes can tell)   2016-11-02 05:11:00
贺!
作者: A4P8T6X9 (残废的名侦探)   2016-11-02 06:57:00
1推
作者: cookie1115 (大饼)   2016-11-02 07:51:00
作者: px1245 (二歪杨)   2016-11-02 08:18:00
强者!
作者: abc0922001 (中士abc)   2016-11-02 08:57:00
作者: yuka (yuka)   2016-11-02 09:12:00
推!
作者: polor (波罗儿)   2016-11-02 09:19:00
厉害
作者: qq1217 (...)   2016-11-02 09:34:00
厉害!
作者: freemail (freemail)   2016-11-02 09:51:00
好羡幕喔 已跪
作者: ian90911 (xopowo)   2016-11-02 10:03:00
推好文
作者: Argos (Big doge is watching u)   2016-11-02 10:28:00
作者: kenshin528 (成立奥凶帝国!!)   2016-11-02 10:41:00
太强了~~!
作者: FRAXIS (喔喔)   2016-11-02 10:56:00
作者: miyusuea (Superman)   2016-11-02 12:51:00
跑去伦敦面试感觉很酷
作者: willsbor (123)   2016-11-02 13:16:00
朝圣推m(_ _)m
作者: TFnight (二十四夜)   2016-11-02 14:13:00
谢谢心得分享m(____)m
作者: dayoro898 (如怨如慕如泣如诉)   2016-11-02 14:47:00
猛哥!
作者: Mingming1258 (铭铭)   2016-11-02 15:08:00
还记得你之前在graduate版发的文 学弟推
作者: ken1325 (优质水瓶男)   2016-11-02 15:46:00
靠 太强了
作者: Sidney0503 (Sidney0503)   2016-11-02 18:20:00
跪着推文
作者: sasoman (干 盗帐号勒)   2016-11-02 18:31:00
太厉害了 推~
作者: roger00 (Stage Column(?))   2016-11-02 19:14:00
好清楚仔细的心得文,赞!
作者: dnk4   2016-11-02 20:14:00
朝圣推XDDD
作者: superlive (阿兵龟)   2016-11-03 00:01:00
竟然没被m
作者: RadiationXen (Xen)   2016-11-03 00:38:00
用心推
作者: taxuan   2016-11-03 08:00:00
英国感觉是好地方
作者: SMNOONMS   2016-11-03 09:57:00
作者: zebraseven (Die walkuere)   2016-11-03 10:31:00
作者: popxpopxpop (爆爆爆)   2016-11-03 10:56:00
朝圣推
作者: hadoop (elephant)   2016-11-03 16:46:00
: )
作者: simpleplanya (三十年岁月 五十亿巨资)   2016-11-03 17:14:00
猛哥
作者: xamous (一天死去一点)   2016-11-03 18:04:00
强!
作者: ntddt (灭顶,降公投罢免门槛)   2016-11-03 22:11:00
朝圣推...
作者: chrome (老大是Google)   2016-11-04 10:05:00
推推
作者: moonslight (开心就好)   2016-11-04 13:29:00
跪着推
作者: fwangman (Lancelot)   2016-11-04 15:51:00
作者: zerofinal (人生~)   2016-11-04 16:15:00
推!!
作者: Fauns   2016-11-04 21:39:00
感谢分享!!
作者: JT0109 (蔡宗翰-啧啧)   2016-11-06 14:34:00
认真推,感谢分享!
作者: orange7986 (AnnoyingOrange)   2016-11-06 22:39:00
作者: viper9709 (阿达)   2016-11-07 23:48:00
感谢分享~
作者: lucky4283 (KENNY)   2016-11-11 16:27:00
强者推
作者: jmli1993   2016-11-12 19:07:00
朝圣
作者: Siriyakorn (DZAP)   2016-11-15 01:17:00
朝圣
作者: dannyyaou (担泥)   2016-11-18 08:40:00
推强者

Links booklink

Contact Us: admin [ a t ] ucptt.com