全文共1974字,预计学习时长7分钟
图源:unsplash
除了正常的招聘渠道,谷歌还有一个秘密触发的招聘“彩蛋”,只有受邀者才能参加这一编码挑战。本文就将揭开这一秘密招聘挑战的神秘面纱!
缘起
一个周日晚上11点,我用谷歌搜索着Tensorflow文档,没有哪个正常人会这个时间做这样的事。就在这时,谷歌搜索页面突然弹出了以下消息:
这感觉就像电影《战争游戏》里的角色一样,我立刻点击“I want to play”!随着闪烁的光标,我来到一个UNIX风格的界面:
随后,故事拉开了帷幕。我设法打入Lambda司令的邪恶组织内部,通过所有等级的关卡,毁掉她的LAMBCHOP 世界末日装置(Lambda的反物质生物燃料撞击强子氧化增效剂)。这满满的中二气息真是够了哈哈!
进一步,界面上会弹出一个问题,页面提示我可以用Python(版本2.7.3)或者Java提交解决方案。我迅速编写了一个解决方案函数,并输入到“verify solution.py.”框中进行验证,所有测试都通过了。
接着我又拿到了一个新的挑战,探索继续。第一晚,我解决了几个初级问题,而完成所有挑战是在大约一个月之后了。
总共有9个挑战,分属5个不同的难度级别,难度随着级数增加而增大,为你分配的答题时间也会随着关卡的增加而变长。前几个挑战的答题时间是32个小时,最后一个挑战的时间则超过3周。
考验和磨难
图源:unsplash
由于自己的数学背景,我本能地从纯粹的数学角度处理大多数问题,然后编写代码进行计算。我在IDE(集成开发环境)里写好代码并测试,然后复制粘贴到Foobar环境里提交。
对一些问题来说,这个方法十分奏效,我可以在几行之内迅速解决问题。但对其他需要深入研究计算机科学算法的问题,这个方法就不再起作用了。
一开始出的题目都非常简单,是类似FizzBuzz测试那样的挑战。实际上,前三个等级的挑战都不太费力。接着谷歌会询问联系方式,然后题目难度就开始暴增。
在最初的几个挑战里,唯一让我头疼的问题是需要在Python2里执行解答。我的IDE运行的是Python3版本,因此我经常遇到版本切换相关的问题。
缺少控制台的Foobar环境成了早期最大的难题。我不知道为什么代码无法正常工作。是因为它返回了错误的值吗?它是否存在漏洞?或是速度太慢(是的,因为代码运行有时间限制)?我不清楚答案,只知道代码无法通过某些隐藏测试。
等到我遇到更难的问题时,之前这些问题就显得so easy了。这时,我完全理解为什么解决问题所需要的概念往往就要花费更长时间了(虽然通常不超过几天)。挑战涉及的方面包括在图论、群论、数论之内,也包含一些经典的计算机科学问题,如旅行推销员和最大流问题。
我的建议
如果你有兴趣尝试这个挑战,我可以分享一些建议,就算你不是算法专家或编码专家,也不必担心。
图源:unsplash
在开始挑战之前,你可以用Python很好地编写代码,Foobar会给你有充足的时间研究当前题目。即使你在算法方面是个行走的百科全书,并且闭着眼睛就能写出分治法,面对这些精心设计的问题,你也需要从头开始,挨个处理。
解决这一系列挑战,你需要广泛的知识面,但在每个方面并不需要太深入。这是因为你如果能够识别出类似的问题或挑战所涉及的一般领域,就会有解题出发点,这将引导你研究该领域,并找到解决该问题的更多信息。
谷歌搜索引擎是你忠实的朋友,这条经验出现在这里或许有点儿滑稽。但如果你也试过花无数时间研究学习各种话题。能够对这些事情保持好奇心,就会明白谷歌的重要性。
速成技巧
图源:unsplash
· 做好研究。了解当前的主题,然后深入研究。这将在解决问题时得到回报,你还能学到新知识,何乐而不为。
· 编写伪代码并绘制图表。我习惯于视觉思考,所以图表对我很有用,当然你也可以选择最适合自己的方法。在使用IDE之前,写下算法的运转方式和整个解决方案的思路。我会花大量时间来涂鸦,试图解决问题。
· 学会舍弃。别惧怕放弃所有从零开始。有时我会在一种方案上纠结好多天,然后想出一个截然不同的新解决办法。
· 去散散心。碰壁是难免的,出去走走,让新鲜空气帮你理清思绪,或许还能创造许多“灵光乍现”。
外卖
解决4级问题时我采用的便利贴模型
别搞错,我说的不是必胜客。虽然谷歌确实在用Foobar挑战招聘,但很少有人收到谷歌的回复。不过,只是为了收到答复不该是你参与挑战的原因。
在这个过程中,我学到了很多关于计算机科学和各种算法的知识,以及如何分析各种解决方案的利弊。比如何时选择深度优先搜索而不是宽度优先搜索之类的。
我不仅学习了硬技能,还学会了如何进行最优运作,以及如何最大化利用头脑解决问题。我甚至还创建了一个牛逼的youtube音乐编码播放列表!
把他当成一个闯关游戏,全情投入地解决问题,一路下来,你绝对会收获良多!
一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)