Google(上海)软件工程师面经

Google在我眼中一直是神一样的存在,这次面试能近距离走进Google也让我十分满足了。Google的招聘流程是很标准化的,效率很高,通常一周内肯定会有消息。我经历了5轮面试,一轮电面,四轮Onsite。
首先,因为我走了内推的渠道,直接简历递给我师兄,跳过了HR筛选的一关,通常Googler都是愿意帮忙的,因为成功了他们可以拿到referral bonus。不过内推也还是要通过一轮笔试的,笔试比较简单,前面选择题,问的都是计算机相关的基础知识,后面两个简单的简答题。
下一步是电话面试,持续了45min,问到了自我介绍和两道算法题目,一定要事先准备下英文自我介绍,虽然技术岗对英语要求低一点,但是别因为这一点丢了Offer。
  • 1st Phone Interview(一个香港小哥)
面试官:自我介绍一下
我:blablabla
面试官:介绍下你简历上的项目,你在项目中扮演什么角色?学到了什么?
我:blablabla
两道算法题(面试时需要在online docs写代码,面试官可以看到你写的实时代码)
Problem 1:打印一个n-ary树从底向上,从右到左;follow-up:如何在O(1)空间实现;
Problem 2:LintCode : 把排序数组转换为高度最小的二叉搜索树
题目地址:http://www.lintcode.com/zh-cn/problem/convert-sorted-array-to-binary-search-tree-with-minimal-height/
参考答案:https://www.jiuzhang.com/solution/convert-sorted-array-to-binary-search-tree-with-minimal-height/


接着过了几天,HR通知电面过了,准备onsite,一共四轮,两轮老外两轮中国人。
我个人认为,面对面绝对比电面好,更容易留下印象。
注意写代码需要使用白板,可能有点怪怪的,但是面试官很Nice,不会让你感到紧张,还会给一些提示,一定要展示出自己最棒的状态。
下面,我简单说一下我遇到的一些题目:
  • 1 st Onsite Interview
简单寒暄了一下,要我做一下自我介绍,之后就开始出题了。
linctode原题:Frog Jump的改编版 ,要求出frog从起点到终点的最短路径。
  • 2nd Onsite Interview
有n个点,[0,1,2],输出序列为:[0,1,2,1,0,2,0] 满足: 0->1, 1->0, 0->2, 2->0, 1->2, 2->1, 求得最短输出序列。有n个点,[0,1,2],输出序列为:[0,1,2,1,0,2,0] 满足: 0->1, 1->0, 0->2, 2->0, 1->2, 2->1, 求得最短输出序列。
  • 3rd Onsite Interview
LintCode 原题 —— 二叉树的序列化和反序列化
题目地址:http://www.lintcode.com/zh-cn/problem/binary-tree-serialization/
参考答案:https://www.jiuzhang.com/solution/binary-tree-serialization/

  • 4th  Onsite Interview
给一个旋转过的数组(4 5 1 2 3)找target(2分法变形)
follow up : 数组有重复怎么办?


面试下来的感受就是要一关又一关,题目很有难度,但是面试的整体体验很棒,员工素质很高。

最后简单说说我的准备流程:
  • 需要注重算法基础,推荐阅读《Programming Interviews Exposed(编程面试攻略)》和《Coders at Work》,前者用来强化知识,后者用来开拓职业思路。
  • 刷题!我把Lintcode刷了两遍,面试中居然遇到了一道frog jump的原题。另外,Lintcode ladder里有一个美国大公司题库,Facebook, Google, Amazon这些公司都有涉及,建议做一下感受面试难度,早点知道自己的差距
  • 翻看各种新鲜面经,了解Google公司大概会考些什么内容,偏向于哪些方面,同时通过别人的经历,给自己打气。
最后祝大家好运!
个人资料
Tony
等级:6
文章:20篇
访问:2.5w
排名: 19
上一篇: [Hive]Union使用指南
下一篇:Google软件测试工程师面试经验(上海)
猜你感兴趣的圈子:
Google笔试面试圈
标签: lintcode、onsite、interview、面试、一关、面试题
隐藏