谷歌后台开发岗社招面经(接上帖)

onsite也基本上是在电脑上coding.你和面试官一人一个笔记本, code时共享屏幕,有时候题目面试官会在白板上写出. onsite的题目,明显就要比电话面试的题目难度高一些呢.但实际上比我想象中的要简单些.因为曾经想Google这样的公司面试恐怕连理解题目意思都要理解大半天吧.可能也是社招的缘故,社招整体感觉在算法的要求比校招就要低一些.这只是我的主观感受.  (确实自己在当面试官的过程中,在算法这块对社招的同学预期也会低一些)


我记得其中有一道题目就跟leetcode上的类似(再次声明不是原题,也不share原题), leetcode上那个题目应该是二维矩阵,最短路径相关的.用dp可以解决.只不过,一般题目会分为好几个小问题,难度一般从易到难.

同时也考察到了二叉树,仍然围绕着二叉树的遍历进行.需要熟知二叉树的各种遍历方式,非递归的方法(递归比较容易,一般不会让写这个).在遇到二叉树相关问题的时候,是否可以联想到二叉树的遍历上来.

另外有一道系统设计的问题,“知识图谱”的概念,围绕着”图”的相关算法,这个要求在白板上写出设计方案和伪代码.同时面试官会不断push你让你提出更优的解决方案.有足够多的计算资源,并行去跑,以及具体怎么实现.  这道题目我回答的不好(当初也知道不好,后面HR反馈也印证了这一点).

还有一道题目,是解决生活中的场景题目.需要你抽象出这个问题,用代码来解决.一般这种题目,就需要反复跟面试官去沟通和确认其中的场景,怎样把业务抽象成算法.  记得之前面试Amazon的时候也有类似的题目(只不过当初面Amazon考察的是OO Design,而本题是具体算法实现).

onsite一共聊了5轮,上午2轮,下午3轮,其中有两轮是英文面试(英文面试后面会说).整体来说,工程师岗位面试会围绕如下几个方面进行(以下参考HR提供的面试指南):

Coding:用熟悉的编程语言(不限)实现给定的题目.会重点关注解题目过程中的理解和沟通能力;

算法:涉及到 排序/搜索/分治/动态规划/贪心/递归,具体数据结构,以及也有可能会涉及到Dijkstra和A*等算法,需要会算法复杂度的分析;

排序:常见的排序算法,时间/空间复杂度,例如 快排/归并/堆排序/插入/基数排序等等;

数据结构:数组/连表/堆/栈/hash/数/二叉树等;

数学:可能会涉及到离散数学,组合数学,例如N个中选k个的方法等;

图:图的表达(例如矩阵/邻接表), bfs/dfs等;

递归:递归和迭代的转换;

其他:设计和操作系统等;

中午HR小姐姐会安排一个Google的工程师,带你吃饭,跟你聊天.有任何疑问都可以跟他沟通.  不得不说, Google的伙食还是蛮不错的.我当初就跟小哥哥聊了下他在Google工作的感受.

英文面试


英文面试,单独拿出来说一下.建议还是提前准备,练习一下基本的口语.不要因为面试过程中,突然让你只用英语沟通,让气氛变得紧张起来,导致发挥不好.自我介绍之类的肯定你可以提前准备,然后就是你可以尝试比如拿其中的题目自己模拟一下面试场景.主要是可能需要提前熟悉一下基本的计算机相关词汇,不要到时候想表达确表达不出.

整体来说, Google的面试确实很难,但确实也没我想象中的那么难.但要求确实是很高的,基本上一些边界case等也都是在考察范围内的. onsite面试完后,在第二天,我就得到结果通知,面试没通过.  事实来看没通过的结果反馈比通过反馈更快图片. HR会反馈你哪里表现得不够好,然后如果想进Google,就加油刷题,说1年后,可以再次尝试,保持联系哦.


#面经##社招##google##软件研发工程师#
全部评论
大佬在美国谷歌工作吗,好奇城市
点赞 回复 分享
发布于 2021-09-15 09:00
谷歌中国吗
点赞 回复 分享
发布于 2021-09-16 00:06

相关推荐

不愿透露姓名的神秘牛友
11-14 10:38
复旦微电子 嵌入式软开(AI部门) 24K*17 硕士985
点赞 评论 收藏
分享
评论
5
31
分享
牛客网
牛客企业服务