面经分享:网友问我,怎样才能在谷歌匹兹堡办公室里写代码?上篇

Pablo Samuel Castro是谷歌Brain的一名高级研究员,其研究内容包括强化学习、机器学习等。近日,Pablo分享了他作为谷歌面试官的一些经验,以期对有意向到谷歌工作或从事软件工程工作的研究者有所帮助。

大家经常问我,怎么才能拿到谷歌的 Offer?虽然这个问题没有固定答案,但我还是有一些可以帮助其他人(包括我自己)的技巧。

我在谷歌的面试过程不算完美,但我确实感觉整个过程都很好、很客观。无论结果如何,请记住:你的个人价值不该由你是否得到了 offer 来定义。

背景介绍

我应该申请谷歌的职位吗?这是另一个常见问题。答案几乎总是肯定的!去谷歌面试不仅可以测试你的极限,还能让你发现自己的不足。如果你尝试过,就算最后没能成功,我也保证你会成为更加强大的程序员和面试官。

在获得 PhD 学位后,我立志成为一名学者,但那时(大概是 2011 年)的就业市场真的非常糟糕。在上司的建议下,我申请了谷歌的职位。这是我申请的唯一一份业界工作,也是我在业界最感兴趣的工作。

但是在我决定申请之后,我为面试做了很多准备。我确信,如果我在申请当天就参加面试,我是无法通过面试的:我花在准备面试上的时间是至关重要的。

当我参加面试时,我觉得我已经做好了最大的准备。我的努力得到了回报:我收到了加入匹兹堡谷歌的工作邀请,从2012年开始就在谷歌做SWE。

我在谷歌匹兹堡办公室的第一张办公桌。

以下文章的其余部分是我的经验:

为面试做准备

作为SWE在谷歌工作

进行数百次采访

主持数十个面试研讨会

成为招聘委员会成员

在谷歌内外,我与许多人进行了讨论。

这里的建议并不能保证你能得到谷歌的工作,但它应该会有所帮助。

如何准备谷歌面试?

你可以在谷歌求职网站上找到你认为合适的工作。

找人推荐会有帮助,如果你认识已经在谷歌的人,让他们推荐你。如果你不认识谷歌的任何一个人,你已经申请了职位,但是在一段时间里没有收到回复了,请随时把你的简历发给我,我看看有什么我可以做的。

注意,这仍然不能保证你会得到面试机会。不幸的是,我对应征者如何被选中参加面试知之甚少,在面试过程中的影响力也有限。

我如何准备谷歌面试?

至少有三个要素能让你在面试中表现出色:编程、算法和数据结构,以及个性。谷歌经常有研讨会,你可以做模拟面试。

编程

你要能写出函数式代码,最理想的情况是能够立即编译/运行。语言不是特别重要,但是你需要具体说明你想用什么语言面试,所以一定要掌握好。伪代码不是一种语言。

用 Barebones 编程

如果你写代码时依赖 IDE,请试着用 barebones!无论你用什么程序写代码,请关闭语法高亮和自动补全功能。尝试用什么都没有的 vim 写所有代码(即便是现在我还是在用非常简单的 vim 写大多数东西,包括这篇文章)。你也可以用 Emacs。

练习、练习、再练习

准备面试的时候,我主要用c++编程,所以我决定专注于此。我发现了一个在线编程比赛,它有以前比赛的日志,这样我就可以“假装”自己在比赛。很棒的是,这个在线服务可以以编程方式检查我的代码的语法和算法正确性。

我做了足够多的工作,最终可以从头开始编写c++代码来编译并解决这个问题。在做到这一点之前,我经历了很多很多的反复。很长一段时间,我仍然需要查找需要包含哪些库,如何正确地执行I/O等等。

我不记得我使用了什么网站,但似乎topcoder有一个实践问题领域,可以达到相同的目的。

topcoder 地址:https://arena.topcoder.com/#/u/practiceProblemList

浏览glassdoor这样的网站也是很有用的,那里有很多过去谷歌的面试。尝试解决所有这些问题!请注意,如果你在这样的地方看到了问题,你在真正的面试中被问到这个问题的可能性很小。

glassdoor 地址:https://www.glassdoor.ca/index.htm

在白板上写代码

试着在白板上写代码(如果没有粉笔或白板,也可以用手写)。在白板上写代码感觉是很不一样的,但这就是你在面试中要做的。最好是你已经有了一些经验,我的建议是在白板上练习写完整的程序,然后在你的电脑上编码,并确保一次编译/运行。如果没有,再试一次!

当别人在看的时候,在白板上练习编码也是非常有用的,可以让你适应潜在的焦虑反应。

虽然有一些语法错误是可以接受的,但是我们要注意的是,如果代码很粗糙,而且语法错误很多,这表明你使用的是你可能不太熟悉的语言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值