作者 | 阿司匹林
出品 | 人工智能头条(公众号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 文章数量最多的三个领域为:

机器智能
机器感知
自然语言处理

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

TensorFlow:一个大规模机器学习系统
Google 使用的 AI 工具
非官方的 Google 数据科学博客

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

  1. 1/x 的导数是什么?
  2. 绘制 log(x+10) 函数的曲线。
  3. 如何设计一个 针对客户满意度的调查?
  4. 投掷一枚硬币 10 次,8次正面和 2 次反面。如何分析掷硬币的公平性?什么是 p-value?
  5. 你有 10 枚硬币,每枚硬币掷 10 次(共 100次),并观察结果,你会修改算法来测试硬掷硬币是否公平吗?
  6. 解释一个非正态分布以及如何应用它?
  7. 为什么要使用特征选择?如果两个预测因子高度相关,那么对逻辑回归中的系数有什么影响? 系数的置信区间是多少?
  8. K-Means算法和高斯混合模型:K-Means 算法和 EM 算法之间有什么区别?
  9. 高斯混合模型适用于什么情况?(正态分布)
  10. 如果标签在聚类项目中是已知的,那么如何评估模型的性能?
  11. 对一个 Google 应用程序做了更改之后,如何测试某个指标是提高了还是降低了?
  12. 描述数据分析的过程。
  13. 为什么不使用逻辑回归算法?为什么选择 GBM 算法?
  14. 推导 GMM 方程?
  15. 如何衡量用户对视频的喜好程度?
  16. 模拟一个二元正态分布?
  17. 推导一个分布的方差?
  18. 每年有多少人申请 Google 账户?
  19. 如何构建中位数的估计量?
  20. 如果回归模型中的两个系数估计值都具有统计显著性,那么你是否认为两者的测试依然重要?

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

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

更多AI面试题汇总:https://www.tinymind.cn/collections/6



扫描二维码,和大家一起参加 #TinyMind 性别年龄预测 #竞赛


想去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. “我想进大厂做AI工程师”“你冷静一下”

    未来十年最紧缺职业的职业是什么,无论是中国的2025计划还是美国.德国的智能制造计划全部都指向一个目标:人工智能技术对应的人工智能工程师.由于人工智能发展时间短,技术门槛高,且难以通过短时间的学习掌握 ...

  5. 想去大厂做产品经理,有什么要求?

    大厂,其实都梦寐以求,其中之一的原因就是大厂的薪资确实诱人.比如,我们来看下阿里对于产品经理不同级别岗位所对应的年薪范围. 基本可以看出,只要能在大厂不断的往上爬,随着级别的提升,待上几年,不说实现财 ...

  6. 想加入Google AI中国团队?你可能得飞去美国面试

    李根 发自 虹桥机场  量子位 报道 | 公众号 QbitAI 如何加入李飞飞带领的Google AI中国团队? 不用在线等,也不用急. 量子位多方打探权威信息,独家整理了一份Google AI中国中 ...

  7. 想进Google先去华盛顿大学进修?西雅图大厂都在找什么人?

    如果说在北美,有哪座城市有望超越硅谷,那无疑是西雅图.毕竟这里曾诞生了两家市值超万亿的公司,微软和亚马逊. 而根据近年来的趋势,把西雅图称为"兵家必争之地"也不为过.大厂.人才的不 ...

  8. 做AI手语数字人,是让聋人用熟悉的方式去理解健听人的表达方式

    这个寒假,有一批失聪的大学生成了冬奥会的远程志愿者,他们来自天津理工大学聋人工学院.这些志愿者把电视新闻栏目的内容转换成手语顺序的文本,为冬奥会转播中需要的AI(人工智能)手语数字人提供大规模的语料支 ...

  9. 33岁想从头学做网页设计_从头开始设计字体-并在24小时内将其提交给Google字体...

    33岁想从头学做网页设计 by James Barnard 詹姆斯·巴纳德(James Barnard) 从头开始设计字体-并在24小时内将其提交给Google字体 (Designing a font ...

最新文章

  1. 六种GAN评估指标的综合评估实验,迈向定量评估GAN的重要一步
  2. 3.Tomact部署webapp
  3. eclipse配置tomcat8.5
  4. 信贷产品的架构设计总览
  5. 【数据结构与算法】非森林版并查集V1.1的Java实现
  6. 静态路由和DHCP/NAT/VLAN的配置实例
  7. Python游戏编程入门(一)——初识Pygame
  8. 数据库 --- 约束
  9. 放大镜 讲课_《放大镜》的教学设计
  10. Tomcat9及以下升级Tomcat10 部署操作
  11. Värde Partners任命新合伙人并增设副首席投资官
  12. [译]网格着色器渲染数亿面片的模型
  13. java 时间处理工具类
  14. 软件安全实验——栈溢出漏洞利用
  15. 限流10万QPS、跨域、过滤器、令牌桶算法-网关Gateway内容乔哥都给你总结在这儿了...
  16. UTC和东八区时间转换(python)
  17. SPFA算法(最短路径)
  18. Cadnece安装过程提示已经存及删除全部注册表方法
  19. 学习笔记(07):JavaWeb基础核心技术-11. 佟刚_JavaWEB_GenericServlet
  20. 手机安装app总是显示未安装

热门文章

  1. 使用summernote实现复制图片即可实现图片上传
  2. SpringBoot项目打成war包部署到外部Tomact运行
  3. 绩效管理领域对管理者的任务和能力要求
  4. openstack对比其他有什么优点
  5. java——逻辑运算符与(和)或(|和||)
  6. Linux软件的安装,更新与卸载
  7. 自动化运维工具----ansible
  8. POJ.3207.Ikki's Story IV-Panda's Trick(2-SAT)
  9. Oracle Sales Cloud 实施(二)
  10. 结对开发--求二维数组的最大子数组