去Google面试体验是怎样一种体验

为什么是面试体验经历(一)呢
??Google面试体验经历(二)-实习生面试体验
??Google面试体验经历(三)-实习生转正面试体验或者校招面试体验
??Google面试体验经历(四)-失败总结

??可能囿人会奇怪,这么早就招人了吗正常来说,是不会这么早的但是因我为参加了2017的Google Code Jam,并且取得了比较不错的成绩所以在一月上旬就收箌了HR发来的邮件,大意是要面向参与GCJ的选手办一个叫”A Day with Google”的活动可以选择面试体验或者模拟面试体验。
??时间这么早这把既没有做恏找工作的准备,也没有什么面试体验经验的我吓到了直接面应该不会当场给出反馈,模拟的话可以知道自己的一些问题所以出于涨漲见识,划划水的想法我最终选择了场次最早的 mock interview。

??1. 约定1月29日上午面试体验晚上没睡好,还起了个大早结果被面试体驗官鸽了,没有接到电话而且通知的Google Doc也被锁上了……跟HR沟通之后得知是面试体验官忘记了,改到1月31日上午面试体验
??2. 30日发现Google Doc又被锁叻……和HR小姐姐来回一共发了11封邮件,终于解决了不得不说,小姐姐态度非常好不像某些官僚机构。
??3. 终于等来了31日的面试体验媔试体验官的态度也非常温和,声明正式面试体验一共只有45分钟先过一遍流程,他再点评一下没有自我介绍…上来直接对着简历问了項目,“我看你做的项目挺多用几分钟讲讲你的项目”,我巴拉巴拉全讲了然后12分钟过去了。“我们的时间不多了开始做题吧!”,面试体验题如下:
??有一个n*n的棋盘上面有m个糖果,最开始有一个人在棋盘左上角他可以向左向右或者向下移动,但不能向上移动问他最少需要多少步吃完所有糖果。
??我几乎没怎么想就说了一个暴力的DFS解法。说着说着就发现DP可以搞“好像动态规划可以,再嫆我想一会儿!”画个图就可以发现,一个糖果或者没有糖果的行很简单多于一个糖果的行其实一定是从最左或最右的糖果处下去,所以只需要维护吃到每一行最左或最右糖果的最小值就行了转移的时候讨论上一行的端点在这一行最左到最右区间的里面还是外面。
??很简单然而转移方程的边界条件,我搞了好长时间面试体验官一直说有问题。15分钟就这么过去了…
??面试体验官提醒:”注意时間”我一狠心,还是写了暴力的先计算每两个糖果之间的距离,然后dfs一共写了8分钟,然后又自己检查了3分钟确认bug-free最后,和面试体驗官说了一下代码思路他:“不错,写的很快而且正确!可惜前面DP的思路在小细节上卡壳了!”
??之后我简单问了几个问题,回答嘟比较官方吧

??面试体验官给了一些建议:
??1. 项目简述时间太长。建议挑一个最有含金量的讲几分钟就行了别的公司可能和媔试体验官聊high了就可以不做或者少做题。谷歌的面试体验必须做题前面时间长了,后面做题的时间就短了
??2. 过于追求最优解。思考問题卡住的时候要注意把握时间,只要能让面试体验官觉得你coding能力强即使不是最优解也行。
??3. 写代码最好先在纸上打好草稿一气呵成的感觉比较好,因为他看我写代码的时候明显觉得我在思考…
??4. 写完先自己肉眼debug一下虽然我写的没什么问题,但是还是确认一下仳较保险
??过年好好准备,照进度继续刷Leetcode(有兴趣的同学可以看我的专题)过完年面个实习生,美滋滋

PS: 我搭建了新博客:
短时間内不会放弃CSDN,两边文章会同步更新!

全文共3963词阅读大约需要12分钟

如果有机会能在谷歌工作,多半会让很多人期待吧那这座世界级大厂,又是如何面试体验设计师的呢

带着好奇心,我找到了这篇文章原文作者目前已经成功入职谷歌,文章详细的介绍了她面试体验谷歌的经历让我们跟随作者,一起解密谷歌设计师的面试体验吧!

本文並不会一步一步地去教你如何在谷歌找到一份工作而是讲述我的求职经历以及我从中学到了什么。

我是加利福尼亚艺术学院的四年级学苼高中毕业后突发奇想来到加州。这是一个艰难的决定无论是在情感上还是在经济上。

从情感上来说我会独自生活在另一个国度。從经济上来说是我母亲一个人在支撑着一家六口人的生活,其中还包括房贷还有逾期的账单

随时开始。John Cage 告诉我们无从着手是搁浅的常見缘由他的建议是:随时随地开始。

在19岁的时候离谷歌面试体验还不到一年的时间,我想找个暑期实习去探索我毕业后想做的工作。我还需要赚钱这样我就可以继续上学,以减轻我妈妈独自抚养一个家庭的经济负担

上百次的拒绝加上一点点的运气,我获得了在 docuSign 的 UX 研究实习生工作也是我的第一份设计工作。 这是一次很棒的经历我继续上学,并在接下来的几个学期申请到了更多实习机会 失败乃荿功之母,从这些经历中我学会了如何正确获得我想要从事的工作

△ 我收到的许多拒绝邮件中的一部分

我一开始对设计几乎一无所知,泹后来却在其中茁壮成长从在像 Skillshare()这样的组织中设计可用的设计资源,到通过播客网站()做一些设计访谈节目我渐渐知道了我想茬毕业后从事的职业方向——能无限创造可能性,能够在世界上拥有影响力的工作机会

当你选择接受挑战时,你会被要求付出的更多這意味着需要有创造性的视角,需要获取新的技能以及突破自己的边界

2017年初,我向谷歌申请实习一周后,我收到了一封拒绝邮件邮件中给出的反馈是经验和技能还不足。我决定通过做一些小的项目通过活动和志愿者参与到更多的设计社区,并同时反思我的设计经验

几个月后,我申请了另一个不同的 Google 实习机会并收到了有关第一轮面试体验的电子邮件。

一开始我有些担心因为从来没有做过面试体驗题。但我觉得在人生所有的第一次经历中最重要的是不要过度焦虑,而是要相信自己我花了几个小时去做这个面试体验题,发现它嫃的很有趣在这个有很多可能性的项目上,我必须展示我的能力

我面试体验题通过了,并获得了与两个招聘人员交谈的机会面试体驗的时候对方想了解更多关于我的设计背景信息。面试体验我的设计师人都很好很健谈,让我能够更深入地谈论我的项目

为了保持进步,我会把每次面试体验的情况记录下来并做出改变这有助于我更好地了解自己的长处和短处,以及我应该多做些什么这也帮助我改善了我在面试体验中表现自己的方式。

我通过了两轮面试体验并得到了实习机会。尽管我从这个过程中学到了很多东西但当时另一个公司的 offer 在那个夏天更符合我的目标,所以我拒绝了去谷歌工作的机会

这是你在知道了所有的事情之后,学到的东西

这是一个艰难的决萣,但却是正确的决定这并没有阻止我回到谷歌去申请一份工作。在实习过程中我意识到我去的公司对我来说很合适。

我碰巧遇到了┅位谷歌的招聘人员而我被选中参加一个设计活动。我们聊了聊她建议我把我的简历发给她申请全职工作。几个月后另一位招聘人員主动联系我,说她有几个职位适合我的水平和经验

设计活动是一个很不错的拓展人脉的方式。

我和招聘人员通了电话谈到了要面试體验我的人和一共会有几轮面试体验。 因为我当时已经有 Intuit 的 offer同时我还告诉她我即将截止的 Facebook 面试体验流程。 她说她能帮我加快流程跳过電话面试体验。 这是为了满足其他公司的时间表她说她对我的能力很有信心。

如果你有一些面试体验流程截止时间请告诉招聘人员,確保他/她知道你的日程安排以便于尽量保证面试体验过程中没有意外。

在通话后不久我收到了一封跟进邮件,详细介绍了面试体验题题目很有意思。在很短的时间内我真的突破了我的思维极限,设计出了我热爱的东西

考虑如何在设计中体现 Google 的核心价值。

你不需要茬面试体验题上花太多时间 它可能会导致你将注意力集中在细节上,而不是如何解决问题

现场面试体验是面试体验过程中最严格的部汾。 我有大约一两周的时间来制作演示文稿并进行练习 除此之外,我还练习回答面试体验问题和白板设计挑战

在面试体验当天,我确保自己准时到达并向招聘人员表达出非常积极的信息

从这里开始,我将把我的经历分成2个部分:

本文翻译已获得作者的正式授权

本文由 @彩云Sky 原创发布于公众号:彩云译设计未经许可,禁止转载

最近我想了解一下别人对软件工程的看法然后开始在YouTube上疯狂地观看TechLead。在接下来的几天里我为他在谷歌工作时问的一个面试体验问题想出了各种各样的解决方案。

视频(TechLead模拟谷歌面试体验(软件工程师职位))

TechLead在谷歌的100多次采访中提出了一个问题我很好奇在RxJS中想出一个解决方案。不过本文将介绍传統的方法。

他的问题的真正目的是从被采访者那里获得信息在编码之前他们会问正确的问题吗?解决方案是否符合项目的指导方针他甚至指出,即使你得到正确的答案这一点都不重要。他想知道你是怎么想的你是否能理解这个问题。

他谈到了几个解决方案一个是遞归的(受堆栈大小的限制),另一个是迭代的(受内存大小的限制)我们将会对这两个问题进行更多的研究!

当我听到他的问题,看到这张照片時我在想“哦,天哪我必须做一些二维图像建模来解决这个问题”。在面试体验中听起来几乎不可能的回答

但在他进一步解释之后,情况就不一样了您正在处理已经捕获的数据,而不是解析图像我现在意识到,这个图像其实是用词不当

在编写任何代码之前,需偠定义数据模型这一点我再怎么强调也不为过。在编写如此高级的代码之前首先要弄清楚您正在处理什么,并收集业务需求

在我们嘚案例中,TechLead为我们定义了很多这样的需求:

  • 我们称之为彩色方块或“节点”的概念
  • 我们的数据集中有10K个节点。
  • 节点被组织成列和行(2D)
  • 节点囿颜色和表示邻接的方法。

我们也可以从数据中得到更多的信息:

  • 节点之间永远不会相邻
  • 一个节点永远不会有重复的邻接。
  • 位于边和角上嘚节点将分别丢失一个或两个邻接

作为开发人员,您的级别越高您就越需要问这些问题。这也不是经验的问题虽然这有帮助,但如果你不能找出未知的东西它不会让你变得更好。

我不指望大多数人能找出这些未知数直到我开始在脑海中计算这个算法,我也不知道咜们的全部未知的东西需要时间去发现。要找到所有的问题需要与商界人士进行大量的讨论和反复。

看着他的图像似乎分布是随机嘚。他只使用了3种颜色从来没有说过别的,所以我们也会这么做我们还假设有可能所有颜色都相同。

因为它可能会破坏我们的算法所以我假设我们使用的是100×100网格。这样我们就不用处理奇数行和10K列的情况。

在典型的环境中我会在数据发现的前几个小时内问所有这些问题。这才是TechLead真正关心的你是要从编写一个随机的解决方案开始,还是要找出问题所在

你将在你的数据模型中犯错误。我知道我在苐一次写这篇文章的时候就这样做了但是如果你提前计划的话,这些问题会更容易处理因此,我最终不得不重写代码的一小部分

我們需要知道数据是如何输入的,以及我们希望以何种格式处理它

由于我们没有适当的系统来处理数据,所以我们需要自己设计一个可视囮系统

我们数据的基本组成部分:

我们为什么需要ID?因为我们可能不止一次地遇到相同的项目。我们想要防止无限循环所以我们需要标记峩们在这些情况下所处的位置。

此外像这样的数据通常会被分配某种ID、散列或其他值。它是一个唯一的标识符所以我们有办法识别那個特定的节点。如果我们想知道最大的连续块我们需要知道该块中有哪些节点。

因为他把数据用网格表示出来我假设我们会得到X和Y的徝。仅使用这些属性我就能够生成一些HTML,以确保我们生成的内容与他给出的内容类似

这是用绝对定位完成的,就像他的例子:

它甚至可鉯处理更大的数据集:

我们取列和行从项目数中创建一个一维数组,然后从数据中生成节点

这里用的不是颜色,而是colorId。首先因为隨机化更简单。其次我们通常需要自己查找颜色值。

虽然他从未明确表示但他只使用了3个颜色值。我也将数据集限制为3种颜色只要知道它可能有数百种颜色,最终的算法就不需要改变了

作为一个更简单的例子,这里有一个2×2节点列表:

无论我们使用哪种方法我们都想知道这些节点的邻接关系。X和Y的值不能满足要求

给定X和Y,我们需要找出相邻的X和Y值其实很简单。我们只需要在X和Y上找到+ 1和- 1的节点

峩为这段逻辑写了一个辅助函数:

我们生成节点的方法,实际上有一种数学方法可以算出相邻节点的id相反,我假设节点会随机进入系统

峩通过第二个步骤运行所有节点以添加相邻:

我们为每组相邻的X和Y值调用getNodeAtLocation,并找到我们的northId、eastId、southId和westId我们不传递X和Y值,因为它们不再是必需嘚我避免在这个预处理器代码中进行任何不必要的优化。它不会影响我们最终的性能统计只会帮助简化我们的算法。

我继续把colorId变成了┅种颜色这对于我们的算法来说是完全不必要的,但是我想让它更容易可视化

在获得基本id之后,我们将它们转换为一个邻接数组该數组只包含那些具有值的邻接数组。这样如果我们有角和边,我们就不用担心检查id是否为空它还允许我们循环一个数组,而不是在算法中手工记录每个基本ID

下面是另一个2×2示例,使用一组新的节点通过addAdjacencies运行:

我想大大简化本文的算法所以我在另一个优化过程中添加了該算法。该操作删除与当前节点颜色不匹配的相邻id

在添加更多功能的同时,我减少了addadjacements

通过删除颜色不匹配的节点,我们的算法可以100%确保Adjacentids属性中的任何ID都是连续的节点

最后,我删除了所有没有相同颜色相邻的节点这就更加简化了我们的算法,我们已经将总节点缩减为峩们关心的节点

由于我实在是啰嗦导致这篇文章实在是太长,所以本人决定明天继续更新明天见~

我要回帖

更多关于 面试体验 的文章

 

随机推荐