作者 | 阿司匹林

出品 | 人工智能头条(公众号ID:AI_Thinker)

凭借强大的技术实力和良好的工作氛围,Google 对求职者一直有着强大吸引力。

虽然 Google 在几年前就已经退出了中国大陆市场,但是在北京、上海等国内城市依然保留着办公地点,而且一直在对外发布招聘需求。特别是去年底,Google 宣布在北京成立 AI 中心,更是为中国的 AI 人才提供了又一个好去处。

为此,我们整理一份 Google 面试指南,并搜集了 20 道 Google AI 的面试问题,希望对感兴趣的读者能有所助益。

当然,如果你想申请国外的 Google 岗位,这份资料也同样适用。

Google 面试方式

首先,Google 为求职者提供两种面试方式,一种是电话面试或者通过 Google Hangout 进行面试,一种是现场面试,面试方式视情况而定。

电话面试

在电话面试或者 Google Hangout 面试中,面试官将会是你潜在的同事或者经理。

如果你面试的是软件工程岗位,那么面试时间将持续 30~60 分钟。在回答编程问题时,你需要一边在 Google Doc 里面写代码,一边告诉面试官你的思考过程。我们建议你使用免提耳机或者扬声器,以便腾出手来打字。

电话面试的内容包含数据结构和算法,你需要做好准备,用你最擅长的语言编写 20~30 行代码。

  • 面试官会提一个开放式的问题,你可以让面试官将问题解释清楚。

  • 你需要用算法来解释它。

  • 用代码来实现算法(提示:不要担心不够完美,因为时间有限。先将你想到的写下来,然后再完善,确保考虑到了 corner case 和 edge case)。

  • 优化代码,用案例来测试代码,然后找出所有的 bug。

如果你申请的是其他职位,那么电话面试时间大约为 30~45 分钟。

面采

面试官通常有 4 位,包括潜在的同事以及一些跨职能的员工,每位面试官拥有 30~45 分钟的时间。作为求职者,你有机会表现你在以下四个不同领域的优势:

  • 一般认知能力:我们会问一些开放式的问题来了解你是如何处理和解决问题的。这些问题没有固定的正确答案,我们更看重解释思考过程的能力以及使用数据来指导决策的能力。

  • 领导力:说明你是如何使用自己的沟通和决策技巧来调动他人的。比如,你是如何在某个组织中晋升到领导职位的?或者在不是正式领导的情况下,你是如何帮助团队取得成功的?

  • 与职位相关的知识:我们感兴趣的是,你如何将你的个人优势与经验相结合,从而发挥影响力的。我们关注的不仅仅是你现在能做些什么,而是你未来在不同岗位上的发展潜力。

  • “谷歌范儿”(Googleyness):你在单独工作或者团队协作时的工作方式?你是如何帮助他人的?你是如何驾驭不确定性情况的?又如何走出舒适区,让自己成长的?

对于软件工程师候选人,我们希望了解你的编程技能和技术领域专业知识,包括编程工具、编程语言、以及数据结构和算法基本知识。在面试过程中免不了会有一些讨论,因为我们喜欢互相推动,学习不同的方法。因此,请你做好要深入讨论你提出的解决方案的准备。打破自己的边界,找到最优答案。

Google 的技术面采历来用的是白板,但为了节省时间,同时提供更加真实的编程环境,我们已经开始在一些站点提供 Chromebook,用于编程面试。这些电脑上安装了一个面试程序,你可以选择自己偏好的语言。

在整个面试过程中,你可以随时让面试官作出解释,确保自己完全理解面试官的问题。此外,你也可以“采访”我们,问一些与工作、团队、文化等相关的问题,帮助你决定这份工作是否适合自己。


Google 软件工程和技术职位面试

如果你选择的是软件工程相关的岗位,在面试前你最好先掌握以下几个方面的知识:

  • 编程实践:你可以在 CodeLab、Quora、Stack Overflow 等网站上找到一些编程示例。Cracking the Coding Interview 这本书也是一个不错的资源。在某些站点,你可以选择在 Chromebook 或者白板上编程(提前询问招聘人员,这样你可以先行练习)。一定要测试代码,确保代码易于阅读,而且没有 bug。不用过分关注细微的句法错误,比如在给定方法(start, end or start, length)时应该使用哪种 substring,选择一个,告诉你的面试官即可。

  • 编程:你应该熟练掌握至少一门编程语言,最好是 C++、Java、Python、Go 或者 C。你需要知道 API,面向对象的设计和编程,如何测试代码,以及  corner case 和 edge case。注意,我们关注的是你对概念的理解而不是记忆。

  • 算法:同时用自下而上的算法和自上而下的算法来处理问题。你需要了解算法的复杂性以及如何改进算法。Google 里常用的包括排序算法(加上搜索和二分法检索)、分治算法、动态编程/记忆、贪心算法、递归算法、链接到特定数据结构的算法。了解大 O 符号(Big O notation,比如运行时),并做好讨论  Dijkstra 和 A* 等复杂算法的准备。我们建议你在写代码之前讨论或概述你所想到的算法。

  • 排序:熟悉常用的排序函数以及了解它们对哪些输入数据有效。从运行时(runtime)和内存占用的角度思考效率问题。例如,在特殊情况下,插入排序(insertion-sort)或基数排序(radix-sort )比一般的快速排序/合并排序/堆排序(QuickSort/MergeSort/HeapSort)答案好得多。

  • 数据结构:你应该研究尽可能多的数据结构。最常用的数据结构有数组、链表、堆栈、队列、哈希集、哈希映射、哈希表、字典、树和二叉树、堆和图( arrays, linked lists, stacks, queues, hash-sets, hash-maps, hash-tables, dictionary, trees and binary trees, heaps and graphs)。你需要彻底了解数据结构,以及不同算法对不同数据结构的偏好。

  • 数学:有些面试官会问一些基本的离散数学问题,因为我们经常碰到各种计算问题、概率问题、以及其他的  Discrete Math 101 问题。面试前,你可以花时间复习下(或者自学)基本概率论和组合数学的基本知识。你需要熟悉 n-choose-k 等同类型的问题。

  • 图算法:考虑一个问题是否可以应用图算法,如距离,搜索,连接,循环检测等(distance, search, connectivity, cycle-detection)。熟悉三种基本方法——对象和指针,矩阵和邻接表——的利弊。了解基本的图遍历算法、广度优先搜索和深度优先搜索,以及它们的计算复杂性、优缺点、实现方法。

  • 递归:许多编码问题都涉及递归思考,而且可能还要对递归解决方案进行编码。针对那些能够用迭代解决的问题,你需要找到更简练、更优雅的递归方法。

Google AI 职位面试

如果你应聘的是 AI 相关的职位,那么你最好先对 Google 的 AI 有一个全面的了解。

首先,Google AI 文章数量最多的三个领域为:

机器智能:

https://research.google.com/pubs/MachineIntelligence.html

机器感知:

https://research.google.com/pubs/MachinePerception.html

自然语言处理:

https://research.google.com/pubs/NaturalLanguageProcessing.html

其次,下面的内容需要你重点阅读:

TensorFlow:一个大规模机器学习系统

https://arxiv.org/pdf/1605.08695v2.pdf

Google 使用的 AI 工具

https://ai.google/tools/

非官方的 Google 数据科学博客

http://www.unofficialgoogledatascience.com/

在对 Google AI 有了比较全面的了解后,你就可以看一下这份由众多求职者分享的 Google AI 相关的面试问题了。

  • 1/x 的导数是什么?

  • 绘制 log(x+10) 函数的曲线。

  • 如何设计一个针对客户满意度的调查?

  • 投掷一枚硬币 10 次,8 次正面和 2 次反面。如何分析掷硬币的公平性?什么是 p-value?

  • 你有 10 枚硬币,每枚硬币掷 10 次(共 100 次),并观察结果,你会修改算法来测试硬掷硬币是否公平吗?

  • 解释一个非正态分布以及如何应用它?

  • 为什么要使用特征选择?如果两个预测因子高度相关,那么对逻辑回归中的系数有什么影响? 系数的置信区间是多少?

  • K-Means 算法和高斯混合模型:K-Means 算法和 EM 算法之间有什么区别?

  • 高斯混合模型适用于什么情况?(正态分布)

  • 如果标签在聚类项目中是已知的,那么如何评估模型的性能?

  • 对一个 Google 应用程序做了更改之后,如何测试某个指标是提高了还是降低了?

  • 描述数据分析的过程。

  • 为什么不使用逻辑回归算法?为什么选择 GBM 算法?

  • 推导 GMM 方程?

  • 如何衡量用户对视频的喜好程度?

  • 模拟一个二元正态分布?

  • 推导一个分布的方差?

  • 每年有多少人申请 Google 账户?

  • 如何构建中位数的估计量?

  • 如果回归模型中的两个系数估计值都具有统计显著性,那么你是否认为两者的测试依然重要?

最后,欢迎大家在评论区分享自己的答案以及面试经验。

参考资料:https://careers.google.com

招聘

AI科技大本营现招聘AI记者和资深编译,有意者请将简历投至:gulei@csdn.net,期待你的加入!

AI科技大本营读者群(计算机视觉、机器学习、深度学习、NLP、Python、AI硬件、AI+金融、AI+PM方向)正在招募中,和你志同道合的小伙伴也在这里!关注AI科技大本营微信公众号,后台回复:读者群,添加营长请务必备注姓名,研究方向。

AI科技大本营公众号ID:rgznai100

☟☟☟点击 | 阅读原文 | 查看更多精彩内容

想去Google做AI?先看完这套面试指南(附面试题)相关推荐

  1. 想去Google做AI?面试题在手,全程无忧!

    作者 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) 凭借强大的技术实力和良好的工作氛围,Google 对求职者一直有着强大吸引力. 虽然 Google 在几年前就已经退出了 ...

  2. 想去苹果做AI?看看你够不够格

    翻译 | 王柯凝 出品 | AI 科技大本营(公众号ID:rgznai100) 苹果手机很常见,苹果工程师却不常见. 国内的网络上活跃着诸多 Google.微软.亚马逊.Facebook 的工程师,而 ...

  3. 去苹果做 AI 一共分几步?看看这套面试指南吧(附面试题)

    翻译 | 王柯凝 出品 | 人工智能头条(公众号ID:AI_Thinker) 苹果手机很常见,苹果工程师却不常见. 国内的网络上活跃着诸多 Google.微软.亚马逊.Facebook 的工程师,而且 ...

  4. 字节给的比我想的还多?网友看完:打死也要去

    曾经的互联网是PC的时代,随着智能手机的普及,移动互联网开始飞速崛起.而字节跳动抓住了这波机遇,2015年,字节跳动全面加码短视频,从那以后,抖音成为了字节跳动用户.收入和估值的最大增长引擎. 自从字 ...

  5. 工作流程及常见问题,想做工作认真看完

    工作流程及常见问题,想做工作认真看完 特别声明:所招聘的岗位不收任何费用!(有任何收费行为请投诉!谢谢配合) 因业务需要急招兼职-需求会上网,有购物经验者优先!承诺不收取任何费用! 1. 有上网条件, ...

  6. 运维学python用不上_作为运维你还在想要不要学Python,看完这篇文章再说!

    原标题:作为运维你还在想要不要学Python,看完这篇文章再说! 本文由马哥教育Python自动化实战班5期学员推荐,转载自简书,作者为Li.Yingjie,内容略经小编改编和加工,观点跟作者无关,最 ...

  7. 云小课|想实现资源全自动备份?看完这篇秘籍,不再蕉绿~

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:在给备份系统设置& ...

  8. 你是怎么看完《JavaScript权威指南》《JavaScript高级程序设计》等这类厚书的?

    参考博客原址:https://www.cnblogs.com/tonykair/p/7502276.html 你是怎么看完<JavaScript权威指南><JavaScript高级程 ...

  9. 别看是面试问烂的题目,一面试你照样还是不会系列MySQL四种隔离级别,看完吊打面试官!

    别看是面试问烂的题目,一面试你照样还是不会系列MySQL四种隔离级别,看完吊打面试官! 什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也 ...

最新文章

  1. 字符集详解 ------------------------ UNICODE +UTF8
  2. 虚函数实现多态---C++
  3. 谈谈我的编程之路---WAMP(二)
  4. zabbix—自动发现端口并监控
  5. windows的ftp命令小结
  6. JavaFx导出文件
  7. 关于HTTP协议相关的文章
  8. linux 下搭建postfix服务器
  9. Flutter入门一——W7环境下使用VSCode配置Flutter开发环境(脱离Android Studio安装)...
  10. 全局变量 局部变量 静态变量
  11. 华为:鸿蒙 Harmony OS 明年将正式登陆欧洲
  12. 做自媒体如何快速实现财务自由
  13. 《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门
  14. 【电商】电商后台设计—促销模块(上)
  15. 定价是什么意思_直接定价发行是什么意思?什么是直接定价发行?
  16. RestTemplate post提交方式的一些总结
  17. 360加固保so动态脱壳
  18. 在Android上用PHP编写应用- PFA初探
  19. 【Proteus仿真】【51单片机】智能雨刷器设计
  20. matlab二叉树计算期权价格,[转载]期权二叉树定价——SAS/IML初步 (一)

热门文章

  1. ForefrontTMG关于单一的网络适配器限制
  2. php mysql sql mode_Mysql之SQL Mode用法详解_MySQL
  3. Eigen矩阵运算的混淆问题
  4. C++从键盘读取字符
  5. java kryo_Kryo框架使用方法代码示例
  6. JSP基本语法:文件结构、脚本元素、指令元素、动作元素
  7. 2018-4-17论文《一种基于了领导策略的狼群搜索算法》
  8. PHP学习课程和培训方向学习路线分享
  9. pytest 9 pytest-datadir读取文件信息
  10. Servlet 3.0 新特性概述