万普插件库

jQuery插件大全与特效教程

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

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


在白板上写代码


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


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


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


控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言