前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >非名校毕业,如何在六天面试六家顶尖科技公司,并拿到全部Offer?

非名校毕业,如何在六天面试六家顶尖科技公司,并拿到全部Offer?

作者头像
大数据文摘
发布2019-03-04 13:15:59
7070
发布2019-03-04 13:15:59
举报
文章被收录于专栏:大数据文摘大数据文摘

大数据文摘出品

来源:blog.usejournal.com

编译:周家乐、小蒋、Aileen

能在硅谷顶尖公司工作是每个行业人士的梦想。这位作者在2018年8月13日至8月20日的六天内,分别于LinkedIn、Yelp、Apple、Amazon、Facebook和Google进行了面试,获得了全部六份工作邀约!

他并非出身名校,不自认为是大神,甚至可以说基础知识非常缺乏,但持之以恒的学习和总结帮他拿到了心仪的工作。获得一份dream job并不是那样遥不可及。他在自己的博客上与我们分享了自己准备面试的经验和教训。开工第一天,一起来看看!

从去年开始,我就在计划跳槽的事情。由于不想在全美国来回飞,所以我决定把所有的面试安排在一起,把它们一次都解决掉。

虽然我面试的是移动应用方面的职位,但对于其他领域的职位,相关的研究方法、技巧和建议应该是通用的。

希望我能激励那些和我一样,对现在的工作不是非常满意,对硅谷的生活抱有梦想,但在“学习准备”方面却严重缺乏的朋友们,放手去试试看吧!

简介和一些数字

我知道我想在硅谷找到一份可以使我在通讯移动行业快速成长的工作。我以前在初创公司工作过,我很喜欢初创公司的体验,但出于一些原因,这次我想去一个大公司。

我不确定自己想在哪里工作,也不确定自己能获得多少报酬。但是我知道,我不想再像大学毕业时那样海投100多个申请了。

我共计申请了20家公司,被其中4家公司(Reddit、Nest、Stripe、Uber)明确拒绝。剩下的16家公司中,10家公司没有任何回复(lyft、airbnb、dropbox、instagram、youtube、square、robinhod、twitter、snap、slack)。我获得其余6家公司的进一步面试机会。在这6家公司中,我成功从每一家公司都获得了电话面试,网络面试,以及最终的工作Offer。

回顾我的日历,我的进展大概是:

  • 10天内7次招聘筛选
  • 11天内7个技术面试
  • 8天内29次现场面试
  • 3次后续电话面试

综上所述,我在73天内接受了46次面试(包括面试之间等待的时间)。这让人筋疲力尽,这意味着连续几周我大部分的午餐休息时间都是面试。我必须很早就开始工作,这样我才能早点离开公司,回家接电话。

一边面试,一边认真完成自己的工作对我来说也是一种挑战,我始终把现在的工作放在第一位,如果两者之间有冲突,我会更改面试时间。我不会请假去面试的。因为这会让人看起来很不敬业,如果没找到新的工作,还会给原来的单位留下坏印象。

六家公司的整体印象(按照面试顺序)

LinkedIn

我在LinkedIn面试时的的心率图

LinkedIn的移动应用程序实际上相当精巧,它们对开源社区有一些坚实的贡献。在整个与LinkedIn的面试过程中,他们的企业文化和专业技术,都给我留下了深刻的印象。

Yelp

我在Yelp面试时的的心率图

Yelp有一个非常漂亮的应用程序,展现了iOS的许多微妙之处,显示出其对平台的理解。我喜欢面试现场的气氛,他们有一座漂亮的大楼,我很想和我的任何一位面试官一起工作,它比我申请的其他公司小得多,但在所有方面都显示出了它的优秀。整个面试过程很紧密也很快。

Apple

我在Apple面试时的的心率图

Apple曾经是iOS的重要组成部分。我是个狂热的苹果迷(至少从12岁开始)。Mac是我编程的启蒙,iPhone SDK鼓励我构建和发布第一个应用程序。他们邀请我参加面试并给我offer简直不可思议,兴奋喜悦之情难以言喻。

Amazon

我在Amazon面试时的的心率图

我根本不认为亚马逊是一家“移动优先”的公司。不过,这个职位/团队符合我提出的标准。我不喜欢我去面试的帕洛阿尔托大楼,这是一个临时的办公室,之后会搬进Amazon-y大楼,所以这个面试时机不太好。和我交谈的人似乎很专注于他们的产品。虽然每家公司都喜欢告诉我“这真的像一家初创公司!”,但Amazon是最名副其实的。

Facebook

我在Facebook面试时的的心率图

我在Facebook的最新大楼面试,由于连续五天在睡眠不足的情况下面试,我对面试本身的细节有些印象模糊,但总体上我觉得很棒。我记得我很喜欢和我交谈的人,并且体验了很有洞见的午餐面试。

Google

我在Google面试时的的心率图

我感觉谷歌对这个职位进行了相当“通用”的面试。我在iOS上与谷歌最大的产品之一的许多成员进行了交谈,但我并没有专门为该团队的职位进行面试。在通过谷歌的招聘委员会后,我进入了团队匹配阶段,最终与一个团队匹配。其他公司的面试相比,这是一个非常非常长的过程。

学习计划

说实话,一开始,我大概30分钟内可以完成大部分Leetcode里的"简单"级别的问题(https://leetcode.com/problemset/all/),能够没有时间限制地解决仅仅25%的Leetcode"中等"级别问题。对那时的我来说,解决Leetcode"困难"级别的题目就太难了。简言之,我有很大的基础缺口。

为了学习算法,我首先从《Cracking the Coding Interview》开始。每个星期天早上,我会起床去一家咖啡店,在Objective-C中解决一些问题。一旦我在这本书中做了足够多的问题(我想我解决了大约35个问题),我会在我读过的章节中回顾一些Leetcode问题。这样持续几周之后,我觉得我已经有基础了,然后进入下一个阶段。

随着基础知识的完成,我开始着手学习《Elements of Programming Interviews》,这本书比前一本书要困难得多。这本书使我找到了之后一直坚持的学习计划,其中有一项计划需要四周,我顺利的完成了。在我看来,对着一个人在白板上解释问题或模拟电话面试是至关重要的,不是“非常重要”中的“重要”,而是“至关重要”中的“重要”。在学习时,你应该将其视为绝对要求。或许没有它你也能找到一份工作,但这是我经过实践之后的最佳经验。

如果有人想模拟iOS的电话面试,我很乐意帮助,也许我们可以在时间允许的情况下解决一些问题。除了我以外,还有很多人愿意帮忙。这个过程会很尴尬,但如果不尴尬的话,你也就不需要练习了,不是吗?如果你开始在电话或白板上练习并且觉得有点尴尬,这表明你正在做你应该做的事情:练习。一直练习到不尴尬为止,就成功了。

经过大约一个月的每天持续练习后(每天2-3小时,周末更多),我开始主要做Leetcode的“热门面试题”。我没有把它们全做完,但我做得“足够”多了。准备算法面试的关键是让自己在面试中指出问题,而不必知道如何解决每个问题。因为这是不可能的。在长达一周的现场面试中,我听到的问题对自己来说几乎都是 “新的”,但它们与我见过的问题类似。这也是行业中大多数的发展方向。你也会有很多类似的问题,只不过特定的用例有着特定的约束条件。

热门面试题:

https://leetcode.com/problemset/top-interview-questions/

经验教训

我将把我学到的内容以要点形式呈现(不分先后顺序)。下面列出的所有内容都是我相见恨晚的,无论是技术方面的准备还是在日程安排和其他非技术技巧方面。这些内容不是针对iOS的,而是广泛适用于我们行业的所有面试。

  • 坚持下去。当我刚毕业找工作的时候,我总是在学习一到两个星期后就放弃了。我的理由是我根本不适合学习这些东西。在我第一次开始学习的几个星期以来,进展很小,那么浪费更多时间又有什么意义呢?这一次,我想我别无选择。最终,事情开始步入正轨。这需要付出大量的努力,但学习的意愿最终会帮你成为成功的候选人,在众多申请人中脱颖而出。
  • 实践几乎就是一切。你当然需要一定的天赋能力,但练习(即学习)可以填补非常广泛的能力差距。公司不会根据人们与生俱来的知识来雇用员工。他们会雇用那些能够履行职责并表现良好的人,无论他们是在何时何地获得这些知识。
  • 与朋友一起练习。无论是在白板上还是Codeshare之类的平台上,在一定时间内,与某人进行模拟面试会让自己对面试减少很多恐惧。因为你的大脑适应了,你会克服面对面试官说出一些完全愚蠢的东西时的尴尬。最好的方法是,确定帮助你的朋友懂那个你以前从未见过的问题,因为他们可以给你一些提示,帮助你找到解决方案。说真的,这种练习非常宝贵。
  • 这是一个数字游戏。你可能大量的练习后仍然没有找到工作,因为合适的人还没有看到你的简历,或者你没有及时找到白板问题的解决方案。你可以做的最好的事情是最大化你的几率。这意味着你可以去申请任何符合你工作需求并且你想要工作的地方,而不仅仅只申请自己的首选工作。我申请了心仪的前20个工作岗位!
  • 专注于解决问题的过程,而不是结果。靠记忆是不够的。我在一周内遇到的大约20个算法问题都可能是我之前看到过的一类问题(并且我让我的面试官知道这件事,尽管许多人不认为应该这样做)。我看到过很多常见的模式,并且我能够很快地提出解决方案。
  • 不要气馁。很多次面试中,我不知道解决方案,所以面试者不得不引导我找到解决方案。我仍然收到了我面试的所有公司的offer。而且,我觉得有一次面试彻底失败了(那天的五次面试中有四个我认为是被完全拒绝的),但公司后来给了我一个offer。显然,任何事情都可能发生。:)
  • 不要轻易忽视问题。有很多次我和一个朋友一起练习,他对特别困难的问题不以为然,认为没必要知道。奇怪的是,我记得他说过四种“永远不会”出现的类型,但其中两个就是出现了。虽然不是我们要练习的确切形式,但是非常相似。如果你在练习中经常出现某个概念,请学习它。
  • 不要低估行为问题的重要性。我认为我成功的原因之一是我诚实的回答是公司想要的。我的理论是,许多开发人员拥有强大的技术能力,仍然难以找到完美的工作,这是因为他们粗鲁、不诚实,或者不愿意和技术环境以外的人交谈。在我看来,这些都是拒绝候选人的合理理由。请像练习技术问题一样练习它们。
  • 如果你了解更多的东西,请展示出来。在我现场面试的时候,有很多次我回答一个问题并提到我其他的一些知识,但解释说我没有时间在面试中完全实现这个解决方案。回答有关字符串的问题?展示你的Unicode知识或解释如何支持Unicode。实现私有方法?讨论方法的Objective-C代码约定。更新表格视图?谈谈可以支持的不同动画。如果你并不了解,就不要说了,但是如果了解的话,它可以让你在问题所提供的狭窄窗口之外展示知识储备。
  • 不要努力清除障碍,要努力设置障碍。面试表现显然决定你是否能够获得某个公司的offer,但它也决定这份工作的内容是什么样的。如果你到了自认为足以得到offer的地步的话,那就太好了。但请记住,“勉强够好”和“绝对足够好”之间存在着很大差异。要努力争取后者!尽管我相对缺乏经验,但我最初(即还没有谈判)获得的offer相当不错,我相信面试表现发挥了很大的作用。

结语

差不多就是这样了!这是一次疯狂的旅程,我没有遗憾。我真的,真的希望上述内容可以帮助大家克服困难,找到梦寐以求的工作。如果对iOS方向特别感兴趣,我可以发布一些技巧,所以请评论并告诉我。

其他也许有用的信息:这次跳槽是我大学毕业之后的第二份工作。在我的简历中,只有大约两年半的工作经验,没有任何特别华丽的实习或雇主;我毕业于一所非常小的学校,其招聘会中都没有知名的软件公司;我在4月下旬开始准备,在6月/ 7月开始申请;最后,几个月后,我获得了自己梦寐以求的工作。

我最后再一次推荐CS Career Hackers社区。如果你正在寻找一个地方练习,并想和类似情况下的其他人交谈,请了解一下这个社区。在我签下offer的几个月之后,我才发现它,真的是一个很棒的地方。

祝大家学习愉快!

相关报道:

https://blog.usejournal.com/i-interviewed-at-six-top-companies-in-silicon-valley-in-six-days-and-stumbled-into-six-job-offers-fe9cc7bbc996

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档