我如何在硅谷成功进行了六次采访

从2018年8月13日至8月20日,我花了六天时间采访了六家硅谷公司(LinkedIn,Yelp,苹果,亚马逊,Facebook和Google),并分别收到了一份工作邀请。



在准备过程中(我在下面描述),我在很大程度上依赖于去年的职位 -是他一次促使我考虑是否该该迁移到另一家公司了。 我不想一直徘徊在该国的另一端并寻找理想的工作,所以很明显,我必须集结我的意志并计划所有面试,以使他们能够相继进行。 我的目标是与移动开发相关的职位空缺,但是所描述的培训方法,技巧和窍门也适用于其他情况。

我希望我的故事能激发一个现在担任同一职位的人(对目前的工作不太满意,想搬到海湾地区,但准备工作有些欠缺),敢于-知道他们的未来会怎样。

介绍与统计





我坚决决定要在海湾地区工作,在那里我可以成立一家大型公司并作为移动开发人员认真成长。 我曾经在初创公司工作过,这是一次很好的经历,但是这次出于几个原因,我正在寻找一条更大的鱼(我的意思不仅是团队的规模,也是资本)。 我还知道我还没有任何特定的公司,并且了解我需要的薪水,以免与我的薪水相比有所损失。 最后,我不想寄出一百份履历表,就像我刚大学毕业时那样。

考虑到所有这些,我将简历发送给了二十家公司。 他们中的四个人(Reddit,Nest,Stripe,Uber)在收到这封信后立即拒绝了我。 在其余的十六个人中,十个人(Lyft,Airbnb,Dropbox,Instagram,YouTube,Square,Robinhood,Twitter,Snap,Slack)根本没有提供任何反馈。 简单的算术表明有六家公司做出了回应,并建议我与招聘人员交谈。 结果,我收到了六份电话面试邀请,六份-在办公室面试和六份工作邀请。

在Google上查看我的日历后,我估计它的分配方式如下:

  • 在10天内与招聘人员举行7次会议
  • 11天内进行7次技术面试
  • 8天之内29次办公室采访
  • 3电话面试的采访痕迹

将这些数字加在一起,我们可以计算出:我在73天内进行了46次面试(如果您计算各阶段之间的间隔)。 辛苦了,好几个星期我不得不把所有的午休时间都花在开会上。 我开始很早地工作,以便能够提早离开并晚上通电话。 由于必须在当前的工作中继续正确履行职责这一事实造成了麻烦,但是,我一直试图优先考虑这一点,并在情况需要时重新安排会议的时间。 我本来不想放任自己,以方便面试。 这是不道德的,给人留下了不好的印象,此外,它可能最终找不到新的地方,并破坏了您在旧地方的声誉。

公司(按时间顺序)


领英(加利福尼亚州桑尼维尔)



实际上,LinkedIn开发了相当不错的应用程序,它们为开源社区做出了巨大贡献 。 在我们互动的所有时间里,公司文化和工程解决方案给我留下了深刻的印象。 如果您在整个过程的开始和结束时比较iOS信誉级别中的排名,在我看来,这家公司的涨幅最大。

Yelp(加利福尼亚州旧金山)



Yelp应用程序看起来很棒:谈论iOS平台的全面知识,您会感觉到敷料的精致。 我喜欢他们办公室里的气氛。 建筑物本身非常漂亮,我很乐意与任何接受采访的人一起工作。 与我列表中的其他公司相比,这家公司规模很小,并且影响到所有方面,但有积极作用。 团队似乎工作得非常好,工作流程进展得非常快。

苹果(加利福尼亚州库珀蒂诺)



长期以来,苹果一直是iOS市场不可或缺的一部分(哈哈)。 我从小就一直是他们的狂热粉丝(当然,从12岁起)。 多亏了他们的Mac计算机,我才得以编程。 iPhone SDK帮助我创建并推出了第一个应用程序。 当他们邀请我到办公室面试,然后成为团队的一员时,就像在梦中一样。 我什至不知道该说些什么。

亚马逊(加利福尼亚州帕洛阿尔托)



我不会称亚马逊为主要专注于移动开发的公司,相反。 但是,这个职位和团队符合我一开始为自己设定的标准。 我在帕洛阿尔托(Palo Alto)的办公室没有给我留下深刻的印象,但这是一个临时避难所,很快他们就应该搬到更符合亚马逊风格的建筑物上。 所以在这方面,我只是没有时间的运气。 与我交谈的人对他们的项目非常热情。 从我听到的每家公司的字面上看,“我们在这里就像初创公司一样有氛围!”,但是对于亚马逊来说,这确实是真的。

Facebook(加利福尼亚州门洛帕克)



我在他们最新的大楼里接受了采访。 总的来说,一切似乎都很酷,但是我记得会议的细节含糊不清:这是我连续第五天接受采访,而且睡眠不足使我感到很自在。 我只记得与员工沟通使我感到很高兴,晚餐时的会议证明了我的见识。

Google(加利福尼亚山景城)



据我了解,在Google中,某个职位的面试或多或少都以某种方式进行。 我设法与团队的许多成员进行了交谈,这些成员正在研究公司最大的iOS产品之一,但是我申请了一个与他们的活动无关的职位。 招聘委员会批准后,我被转到下一阶段,在那儿他们选择合适的团队,最后找到合适的选择。 与我与之交谈的其他团队的谈判速度相比,这是一个非常漫长的过程。 我必须不断地让其他雇主知道我们如何与Google和Google进行业务往来,以及我们对其他公司提出的建议。

培训计划


我将明确说明:开始时,如果您未设置时间限制,那么从理论上讲,我可以在大约30分钟内解决Leetcode中“简单”部分中的大部分任务,并解决“平均难度”部分中约25%的任务。 然后为我解决“复杂”部分中的任务,就像试图证明NP和P类的相等性一样。总之,我还有很多工作要做。

为了加强算法,我首先转向《 破解编码面试 》一书。 在星期天的早晨,我起床,走到一家咖啡馆,在那里我解决了Objective-C的任务。 在完成本书中相当数量的任务(大约35个)之后,我转而使用Leetcode并检查了与我完成的章节相对应的任务。 经过几周的此类培训后,我觉得我已经很好地学习了“基础知识”,并进入了下一个阶段。

凭借我的基本知识,我学习了《编程面试要素》 。 这本书比上一本书要复杂得多。 那里给出了推荐的课程计划,我尽量不要偏离它们太多。 如果我没记错的话,其中一个被设计用于四个星期的培训,而我几乎完全经历了这一过程。 我认为,练习解决董事会上的任务或与某人进行电话彩排至关重要。 此外,“非常重要”不仅指“有用”,还应视为课程必不可少的要素。 我毫不怀疑,有人将没有这份工作,但是对于我自己,我没有找到更好的方法来发展自己的技能。

如果有人需要合作伙伴来排练有关iOS相关帖子的采访,那么我将很乐意为您提供帮助。 您可以在CS Career Hackers中找到我-如果您不是很忙,请与我们联系,我们会以某种方式达成协议。 如果没有,还有其他人会愿意支持您。 当然,您会为难。 这就是重点。 如果一切都自己解决了,那么练习就没有意义了,对吗? 如果在黑板上或电​​话上进行彩排时感到非常尴尬或感觉不适,那么您正在做的正是您需要的-预先训练自己。 就个人而言,起初我感到很受限制,然后在某个时候通过了,所以培训远不止于此。

每天完成一个月的工作后(工作日两到三个小时,周末更多),我专注于Leetcode的“ 热门面试问题 ”部分。 我没有经历所有的人,但是经历了足够的。 为了准备有关算法的面试,最主要的是要达到在面试过程中可以找到解决方案的水平。 记住所有的决定是不值得的,这是不可能的。 在那一周的面试中,我遇到的几乎所有任务对我来说都是新的-但同时,它们看起来就像我已经看到的那样。 毕竟,开发过程本身是根据相同的方案进行的。 通常,许多任务会互相概述,但是每种情况都有一组特殊的限制。

我学到了什么


在下面,我将以随机顺序列出我为自己得出的结论。 如果我提前知道所有这些建议,这些建议对我将非常有用-那些与准备技术面试有关的建议,以及那些与计划无关的计划和其他细微差别的建议。 它们中没有什么可仅适用于iOS,因此总的来说,它们适合我们行业中的所有采访。

  • 不要掉落。 在大学毕业后寻找第一份认真的工作时,我只有一两个星期的时间就够了。 我是这样推理的:显然,这不是给我的。 毕竟,已经过去了一个多星期,并且几乎没有观察到任何进展,那么浪费时间又有什么意义呢? 但是这次我决定别无选择。 一段时间后,图片开始成形。 有必要投入大量的工作,但是学习的愿望使成功的申请者与其他申请者区分开。
  • 培训是我们(几乎)一切。 当然,这里也需要一定水平的先天能力,但是实践(即训练)可能会发生很大的变化。 人们不是因为天生的才被雇用的。 他们被聘用是因为他们能够成功地履行某些职责,并且在何时何地获得必要的知识并不重要。
  • 与朋友一起训练是我们的休息。 不管您是在黑板上排练还是使用Codeshare之类的东西,最重要的是,当您长时间沉浸于某人的采访气氛中时,这并不可怕。 如果在面试过程中大脑突然衰竭并且您发出某种愚蠢,它不会使您感到不安。 好吧,如果您设法找到一个即使对您不了解的任务也知道解决方案的人,并且可以将您推向正确的方向,那么通常这就是完美的选择。 认真地讲,这样的训练是值得的。
  • 覆盖范围是决定性的。 您可以在昏昏欲睡之前(甚至可以有效率地)进行培训-仍然没有找到工作,因为您的简历没有找到合适的人,或者您被黑板上的昏迷袭击了,并且您没有按时解决问题。 最好的保证就是给自己最大的机会。 也就是说,将简历发送给适合您和适合您的每个人,而不仅仅是最好的选择。 我选择了整个前20家公司!
  • 决策是一个过程,而不是结果。 背诵不会有任何成就。 在大约一周的时间里,我收到了大约20项关于算法的任务,但我只熟悉其中的一项(我立即报告,尽管许多人认为这是多余的)。 但是我学会了识别模式,因此我设法在旅途中找到解决方案。
  • 不要放弃。 我被卡住了不止一两次,面试官不得不把我带到正确的答案。 这并没有阻止我接受所有公司的工作机会。 有一次面试,令我感到无望地失败了(我认为,五堂课中只有四堂被肯定地拒绝了),但实际上,他们最终邀请我加入了团队。 简而言之,只有生命中不会发生的事情。
  • 不要急于清除任务。 当我和朋友一起学习时,他经常解雇最艰巨的任务,并说这对我没有用。 有趣的是,在他看来,在四种类型的任务中,“它们绝对不会落下”,其中有两种被捕获。 不是完全以解决它们的形式,而是以非常相似的方式。 如果在培训过程中您经常遇到某种概念,请解决。
  • 不要低估软技能的重要性。 我认为我的成功很大一部分要归功于我(非常诚实)对问题的回答符合公司的政策。 我的理论是,非常强大的开发人员有时会发现很难找到一份体面的工作,仅仅是因为他们的行为举止粗鲁,说谎或不知道该如何停留在与编程无关的情况下。 我认为,所有这些都是拒绝候选人的充分理由。 因此,以与技术技能相同的方式练习行为。
  • 显示您的知识。 在面试中,经常会出现这样的情况:在回答问题时,我以警告的方式提到了我的其他一些技能,由于时间不足,我无法详细介绍该解决方案的实施情况。 你在说台词吗? 在您的决定中表明您知道如何使用Unicode,或者告诉您如何支持Unicode。 调用私有方法? 说明事物如何与Objective-C中的方法一起工作。 在表视图中更新数据? 列出您可以支持的动画。 如果您不熟悉某些东西,那么提出这个主题当然是不值得的。 但是,如果您有话要说,请抓住机会超越最初提出问题的狭narrow框架,并向那些没有离开常规的人展示您的优势。
  • 尽量不要达到标准,而要提高标准。 您在面试中给人的印象不仅取决于您是否会得到工作,还取决于会提供什么条件。 如果您可以确定某个空缺的知识足够,那就太好了! 但是请不要忘记:“或多或少伸出手”和“绝对正确”之间存在巨大差异。 您的目标应该是第二。 最初给我(即在谈判之前)提供的条件非常非常好,我认为采访在这里起着重要作用。

总结


好吧,就是这样! 马拉松比赛还在那儿,但我什么都不后悔。 我衷心希望我在这里写的所有内容都能帮助某人踏上追求梦想的第一步。 如果有人对与iOS细分相关的技巧感兴趣,我可以分享它,所以请在评论中写下。

如果这鼓励了您:这是我大学毕业后的第二份工作,我有大约两年半的经验,履历中没有大人物,我毕业于一个非常谦虚的大学,在“招聘会”上从未有大公司,我开始了这一过程在4月下旬进行准备,并在6月至7月开始发送简历,最后,在短短几个月内,我得到了一份我梦dream以求的工作。

最后,我想再次宣传CS职业黑客社区。 如果您正在寻找一个练习的地方,或者只是想与您所处位置的人聊天(或者在任一侧与他熟悉),请不要路过。 我在签订合同后仅几个月就遇到了它,但是无论如何,那很棒。 祝您一切顺利!

Source: https://habr.com/ru/post/zh-CN437484/


All Articles