之前MSRA的是内推,mentor给我打了个电话聊聊人生聊聊前途……
这次是Google London。面的原因是Google的猎头看到我简历然后
打电话来问有没有兴趣面个伦敦暑假实习。
不知道为什么我都没看到过英国的中国人去面google london/dublin/zurich ……
自己写面经好了。
第0轮:
HR打电话来:
"别紧张,放轻松,都读到PHD了,快速排序你会吧?你知道TOPCODER么?
(点点点...我简历上有一排ACM经历...)
电话面的时候会给你一个google doc,就在上面写代码,记住是代码啊不是伪代码。要写可以跑的那种。"
第1轮:
打电话的是个英国人。
先问你最近的research是在做什么呀,然后问了一些基础问题,浏览器相关,按住我们diadem项目的crawler就不放了,泪。我说那部分不是我做的,他失望地说,那咱们开始问一些算法问题吧。
于是我就笑了。
然后他问了点基本算法什么的,hash是什么呀,排序啊,时间复杂度啊。初级编程题:写个计算n阶乘吧。
我问:要写高精度么
他:……不用了。
于是我就写了循环。
他说,你还能想出一种方法么?
于是我就写了递归。
然后他说下面出个难的,于是出了一个二叉树插入节点。
总之基础题他秒我,算法题我秒他。
这个人是做android浏览器的,怪不得对浏览器感兴趣。
2周之后HR发信说过了。第二轮电话面吧。
第2轮:
打电话的是个东欧那边的人,那个口音真是太纠结了,前10min我俩都处于互相pardon阶段。。
Coooooooolld jiiiiiiiu pleeeeeeeez = could
you please 之类的。。
说完我在做什么的时候他就开始说,那咱们谈论谈论算法和时间复杂度吧。然后我就笑了。
他问hash是什么,然后开始提到各种情况下让我各种分析,然后就说,LRU HASH你会么
我当时就死机了。。。
HASH。。是要肿么LRU HASH啊……
我俩拼命讲了半天,他忽然说,噢,可能我发音不太好,是C-A-C-H-E。不是hash……
我了个去……
之后写算法题就是给个大整数,每一位存在数组里,把大整数+1.
以及写完了他看时间很多,又问如果你要向100个服务器拷文件怎么拷速度最快,1台服务器只能同时拷给1台。然后各种变换条件问怎么拷速度最快。分析时间复杂度之类的。
题都问完了时间还是剩下很多,于是就聊了很多天。
忘记在一个什么地方求min的时候他看我随手设初始值是2147483647这个数,于是说brilliant。
做过OI的都知道2147483647吧= =
这个人说自己是做算法的和系统优化的。
这场面试我是觉得稳过的。
第二天HR就发信说过了。我以为可以去on-site了,HR说,第三轮电话面!点点点……
第3轮:
约的时间是早晨10点,我做实验室的事儿到半夜4点多然后订了9:10的闹钟,想着吃了早饭还有富裕时间。
结果9:05打电话了…… 瑞士打来的,然后我说,不是一小时之后么,然后那大哥很愧疚说看错时间了。
我就带着强烈的起床气在脑子几乎不转的情况下面了。
谈自己的research先谈了15min
然后问了和编程语言相关的一些东西。譬如他很好奇我们lab为什么要用DLV。
总不能说:DLV是我老板发明的所以我们要用这个。
然后出了个题,给一个排好序的不重叠线段数组 [1,5],[10,15],[20,25].
和一个新线段[7,16], 插入新线段到数组里,维护排好序且线段间不重叠。
特别鄙视我自己:从他开始出题到写完再讨论完复杂度优化什么的
我一共用了几乎半小时……
这个人是做google calendar的。怪不得会出线段的题……= =
我还以为自己要栽了,那道题用时太长。 1个小时之后HR发信说恭喜。
竟然没有on-site。点点点……我还想去看办公室呢。
选location的时候默默地写1伦敦2苏黎世3北京。
派我回北京吧。
-------------------------
鉴于英国计算机教育是这样的->
teaching
classs上
一道题是找一个数组里有多少个数满足这个数左边所有的数都比他小。一个牛津计算机系的本科硕士博士一路读上来还考first的人花了十五分钟给我写了一个O(N^2)
的方法里面还用了Boolean. 还跟我说他要去当算法课的助教。
所以,英国Google的面试真是比国内的简单太多了,而且我猜应该比米国的也简单吧。