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

2024-09-03 16:18

本文主要是介绍想去Google做AI?面试题在手,全程无忧!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

感谢博客:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/79901364




  • 412

这里写图片描述

作者 | 阿司匹林 
出品 | 人工智能头条(公众号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. 如果回归模型中的两个系数估计值都具有统计显著性,那么你是否认为两者的测试依然重要?

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


  • 412

这里写图片描述

作者 | 阿司匹林 
出品 | 人工智能头条(公众号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. 如果回归模型中的两个系数估计值都具有统计显著性,那么你是否认为两者的测试依然重要?

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

这篇关于想去Google做AI?面试题在手,全程无忧!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133425

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的