今年 30 岁,已婚,无房无车,在北京。
惨!!!
虽然收入水平名义上已经远超平均水平,但是过得很窝火。所以想离开。
第一目标当然是美国,但是等不起 H1B,并且好的公司不一定要我(至今 G 和 F 都没回我简历,当然我也没投其他家)
第二目标是日本,喜欢日本文化,动漫,游戏,blablabla 一大堆,也想去看看东京是不是真的那么热。但是试了一下,还是没人要我。
最后拿到了荷兰 Amsterdam 的 Booking 的 offer。从一开始的不了解,到最后的感慨良多,甚至挺感激 Booking 给了我这次机会。整个过程都很棒。所以我强烈建议想肉身翻墙的朋友们,考虑考虑 Booking,考虑考虑欧洲的机会,不用只盯着北美。
由于刚从 AMS 回来,还在倒时差,脑子有点晕,没写完的话以后再补充。写下此次的感想,回馈给各位朋友。以下内容分为 3 个部分:
- 面试准备
- 我总结的技术面试流程
- 面试过程
- 关于欧洲和美帝待遇的感想
###面试准备和心得###
- 第一点,我所有的面试都是自己在网上找信息,然后投简历的(一共投了大概 5 家),除了 G 和 F 没回,其他都回了,并且都过了 OA,给了 Phone 面试机会。这告诉我们,除了 GF 这样的超级大公司,不一定需要内推( A 也回了我简历的,但是那时候已经几乎把心给了 Booking 了)虽然内推很有效,但是还是要好好写简历,并不见得你就能找到人给你内推心仪的公司。
- 其实一开始抱着试一试的心态,所以没怎么准备,所以电面都挂了。每失败一次,就特别丧气一次,然后鼓足干劲更加好好准备一次,结果面到第三次 Booking 的时候,感觉自己已经准备的很全面了(虽然还不够)。这个事情告诉我们,真想好好找工作的话,真得认真准备。回想起来,要是好好准备了,前面几次电面过得可能性也很大,确实犯了非常明显的不该犯的错误(后面会提)。尽量不要像我抱着试一试的心态去,不然错过心仪的公司真的挺可惜。好在我没错过。
- 能力再强,也需要了解一下公司是怎么面试的,他们需要你展现什么。这很重要。
- 准备面试的时候,把 glassdoor,一亩三分地和 careercup 上面别人的面试经验都看一遍,看看别人遇到过什么问题。例如我看到有人说会问“ agent model 和 merchant model ”,就第一时间搜了一下,HR 第一次给我打电话的时候就问到了,然后至少觉得我有去了解,印象挺好。不仅要注意算法和系统设计,有些时候也会因为非技术问题被挂的。
- 算法不只是刷题,一定要注意面试过程。一般的过程是:问问题,搞清一些特殊边界情况,讨论算法,讨论复杂度,优化算法,最后才是写代码和调试。上来就写代码的真的几乎就挂定了,我前两次几乎都是这样。
- 系统设计的问题也是这样,问问题,讨论特殊情况,初步解决方案,分析瓶颈,优化方案。
###我总结的技术面试流程###
不管是算法和还是系统设计都可以遵循这个流程和经验
- 大声的问问题,确保你弄清楚题意,有些时候面试官就是故意不告诉你一些细节,看看你会不会问。如果不问的化,从一开始就被扣分了。算法题还好,系统设计我一开始真不知道从哪里开始问问题,例如“设计一个批量给用户发送个性化广告邮件的系统”,这个怎么问问题?我的经验是一个词一个词的问!!!批量,量多大?用户,哪些人,有多少?个性化,怎么才算个性化,个性化的算法可不可以假设已知?这样你至少可以问出最基本的一些问题了。
- 讨论特殊情况,极端案例,举几个常见的用例。再一次确保你搞清楚了所有事情,搞清楚你要做的就是面试官想你做的。
- 设计一个基本的解决方案(对系统设计而言就是在一个机器上解决问题)。好多时候大家都会直接给个最优方案,这样真的不好。大多数面试官是要看你怎么解决问题的,而不是问题的结果。他们会有无数 follow up 等着你。所以要展示的是你给出一个方案,然后说出哪里不好,然后改进这样一个过程!这个过程才是面试的目的
- 分析瓶颈(算法:时间复杂度;系统设计:系统瓶颈,主要是高并发怎么办,哪里会出问题)
- 根据上面的分析改进
- 能做到上面 5 部基本稳了,写写算法,测测 bug 啊,应该没问题。大多数面试都不一定要求 bug free
###面试过程###
Booking 最让我感慨的就是跟我联系的 HR,非常专业,反馈非常迅速。整个过程没有超过一天的等待反馈时间。
- 网上投简历
- 第二天收到 OA,当天做完发回去
- 第三天收到 HR phone interview 预约,然后预约好时间
- 按照约定时间接 HR 电话,然后问了前面提到的“ Agent model ”和其他一些问题,约定好电面时间
- 电面是一个印度小伙和一个不知道哪里的小伙,感觉要挂,因为真的不适应印度口音
- 第二天收到 HR 电话,先是调戏我,问我自己感觉怎么样,我说“ Not bad ”,解释了一下不适应印度口音。她说那显然你实际表现要比你认为的好多了。然后安排了 onsite 时间
- 申请签证,然后去 AMS。当然 Booking 支付来回机票和 4 晚酒店费用,你只需要选好你想要的航班号和时间。等待去 AMS 的过程中 HR 给我打了电话,问我准备的怎么样,我说很好啊,她说那你这个是怎么准备的,那个是怎么准备的,另外一个又是怎么准备的。每一项都要求我仔细回复了以后,满意地结束了对话。这一点我其实真的触动很深,那一刻我是真的觉得 HR 在帮助我获得 OFFER。虽然她没给我任何建议,但是她确实在关心甚至监督我
- 在 AMS 瞎溜达,等待面试
- 第 0 轮是 HR 跟我聊聊天,中间问了问我觉得 booking 哪里可以改进?然后我提一个我的想法,当场让她感叹我是真的下功夫了(我确实下了功夫,功能很小很不起眼,但是一说出来马上就觉得说得很对,甚至根本不需要讨论),她说来面试的几乎没人能提出问题,对我印象进一步提升。第一轮算法面试两个俄罗斯小哥(做安全的),第二轮系统设计一个俄罗斯小哥一个阿根廷大叔,第三轮美国纽约搬过来大叔。感觉第二轮要跪,因为阿根廷大叔问了太多细节问题了,没有相关经验真的不好回答,不是 general 的系统设计问题。第三轮相谈甚欢,我准备了好多内容但是最后简历就问了一句,然后我们就开始天南海北地聊,主要是我提问,他来回答,例如买房子没啊?哪里买好啊?纽约和阿姆更喜欢哪一个啊?税怎么扣啊?最后他直接说,我觉得你的 motivation 很充足也很适合我们团队,我个人非常希望你加入。。。
- 面试是周三,HR 说尽量周五给答复,最迟下周一,我说周五我可能在飞机上,那就下周一吧,最后她说争取了一下,周四就给我口头 offer,需要我确认。速度之快,无法置信。所有面试都是第二天就确定下一步,考虑到还有时差,那就更快了
- 给 offer 的时候说,第一轮不错,第三轮很好,就是第二轮挺不好的。最后他们考虑还是给我 offer。我在其他论坛上有看到,有人第二轮被追问了很多问题就挂了,跟我的情况很像。可能最后一轮美国大叔帮了我,但是我更觉得可能是 HR 帮了我,因为可能我确实是回答了很多其他面试者无法回答的问题,证明了我确实深入了解了 Booking。所以哪,可能你拿出了热情去了解了别人的公司,别人也能感觉到,说不定最后帮你一把呢?
###最后简单对比一下欧洲和美帝的待遇###
我相信,如果你要在欧洲和美帝中间选择的话,最担心的就是待遇差别。
美帝待遇确实没得说,比欧洲高太多。
Booking 给的待遇虽然在欧洲中等偏上,但是感觉还是比美帝基础职位都要低。关于这一点我的看法是:
欧洲税实在太高!!!
所以公司愿意把钱花在福利待遇上,让你去享受。至少目前我体验到的 Booking 福利真的很高。面试来回机票和酒店,Relocation package (比亚马逊高太多),签字费。。。。。。
举个例子,Booking 午餐公司食堂自己掏 2.5 欧其他公司出,成本可以很低;自己去吃至少要 7 欧还比食堂差得多,booking 给你发 10 欧,你交完税剩 7 欧吃个午饭。无论怎么算都是前面那种方案,公司花得钱少,自己花得也少,吃得也更好(我当然知道很多公司免费,做人不能奢求那么多了)
因为税太高,公司通过发福利的方式,既帮个人合理避税,也帮公司合理避税。这可能是欧洲低工资的最主要的逻辑吧?
另外,听说欧洲的教育等福利比美帝好太多。
最后提一句关于英语能力的问题。我没有出国读书经历,国内本科毕业以后,工作 7 年没有碰过英语。准备面试前连续两个月每天背 300 个单词找回状态,面试过程中还是一大把语法错误,但是这都不重要,重要的是你敢说。希望这能鼓励到那些觉得自己英语不够好的朋友。希望以上我的经验能够帮助到有需要的朋友。
感谢一路支持我的老婆。