我在30天内做了60次技术采访学到了什么

2020-08-01 13:10:05

在这篇文章中,我将分享我在30天内做60多个技术面试的动机。更重要的是,我将分享我从失败和成功中学到的13个教训。

我把课程分成三类,与典型招聘流程的各个阶段相匹配。

虽然大多数课程直接适用于软件工程师和技术专业人员,但这些课程背后的原则可以应用于所有职业。我希望你能找到一些有用的东西,可以应用到你的职业生活中。

“如果你要失败,那就快点。” - 未知。

像任何其他软件工程师一样,我参加过不同类型的技术面试--从可怕的白板编程面试到像HackerRank这样的平台上45分钟的虚幻编程挑战。虽然我在这些采访中的一些经历很棒,但也有一些很糟糕。真的很糟糕。

但我想真正擅长面试。我想学会克服面试恐惧症,在面试中表现出自信。就像一个熟练的冲浪者一样,我想学习如何驾驭面试带来的高压波。当时我也在考虑换工作。

因此,从2020年1月到3月初,我向美国和欧洲的公司提出了申请,并得到了联系。从Coda这样的早期初创公司到Crunchbase这样的后期初创公司,从Confirm这样的中型公司到亚马逊这样的大公司,甚至是Webflow这样的偏远公司。

在109多份申请之后,我获得了60多个面试机会。其中包括60多个介绍性电话采访,50多个技术电话屏幕采访,18个带回家的编码项目,11个编码挑战和8个现场采访,其中包括3个虚拟采访。

为了更好地欣赏,我将课程分为三类,以匹配典型招聘过程的不同阶段。

这涵盖了从与一家公司的第一次接触到第一次面试的各个环节。

当我开始申请公司时,我想象我提交的申请越多,我获得面试的机会就越高。听起来合乎逻辑,是吧?所以我设定了每天5份申请的目标,目标是每5份申请就有1次面试。

但我的策略并没有像我希望的那样奏效。我收到的采访请求的数量经常达不到我的目标。这几乎是1:12的比例-每12份申请就有1份面试。

我面临的问题是:我是否需要将每天的目标增加到,比如说,10家公司?或者我还有什么需要改变的吗?

这一变化是在我从每天的工作中抽出时间,开始以不同的方式考虑我的申请时发生的。我开始把每一份申请都看作是对招聘经理或任何要看我申请的人的推销,但在这里销售的产品就是我。

如果一家公司需要填补人才缺口,而我说我有这方面的技能,我就需要想办法让他们相信我做到了。

然后,我的新任务变成了找到一种方法,以一种让招聘经理相信我是这份工作的合适人选的方式,有效地推销我独特的技能、经验和个性。

以我的简历为后盾,这封求职信的成功率为95%。有一次这样做不起作用,招聘经理仍然回复我,告诉我这个职位不再有空缺,但他想以后再联系。

这里的教训是,对你提出的申请要非常有意识-质量重于数量。最好是两者兼而有之。了解你独特的能力和经验,并在不牺牲你个性的情况下,以符合公司需求的方式展示它们。

了解你申请的公司的特点和它的具体需求也很重要。一家初创公司或一家规模较小的公司可能与一家大公司有不同的需求,因此需要不同的技能。

在此期间,我收到了许多招聘人员发来的电子邮件(大多是主动发来的),要求招聘空缺职位,其中大部分都是我不感兴趣的职位。

诚然,考虑到我繁忙的日程安排,这有时会很多,但我学会了同理心,明白这些招聘人员只是在努力做好他们的工作。

我不再把这些电子邮件视为收件箱里的噪音,开始努力回复所有招聘人员的电子邮件,即使是我不感兴趣的职位。通过这样做,我成功地建立了一个招聘人员网络,如果我将来必须转换角色,这些网络已经成为一种丰富的资源。

现在我不认为你会想要开始回复你收到的每封邮件。但你可能会感兴趣的是,我收到的一些面试请求来自我以前回复过的招聘人员,他们要求的是我不感兴趣的职位。回复无伤大雅。

是的,我明白,你很忙,很多事情都在争抢你的时间。但是,嘿,你也是一名出色的专业人士,这意味着在不知道以下两件事的情况下,你永远不会接电话:

关于公司至少有一件实实在在的事情, - 他们做什么,他们在哪里,最近有什么新闻,什么都有!

我注意到,在我努力做出这些发现的面试中,我总是给人一种对公司真正感兴趣的印象。这是招聘人员通常在这类面试中寻找的东西。

有一件事几乎可以单枪匹马地决定你在技术电话屏幕面试中做得有多好,那就是你清晰地传达自己想法的能力。

你可能以前听过这样的话:“面试官关心你的思维过程。是的,他们可以看到你的代码,但重要的是,他们想知道你为什么要做你正在做的事情。“。

面试官不在你身边,所以没有机会看到其他非语言的暗示,比如你的手势或细微差别。面试官所拥有的就是你的声音,作为理解你思维过程的一种方式。

现在你知道你应该如何领导这场对话了,下一个问题是你如何变得擅长这一点?因为事实是,虽然表达你的想法对一些人来说可能是自然而然的,但对其他人-包括我在内-却不是这样。

练习做大量的模拟采访。与朋友进行这些模拟采访让我更好、更有信心地解释我的思维过程。但更有趣的是,它帮助我培养了一种新的面试心态。

我开始把面试看作是与朋友或团队成员的对话。我把另一端的面试官想象成我的一个朋友(有时我会在脑子里给面试官起个名字)。因此,这本来是一次高压力的采访,现在我认为这是一次关于技术问题的友好“聊天”。

这种新的心态,在许多练习面试的帮助下,帮助我增强了信心,以至于我开始喜欢面试、抱歉、技术聊天。

在没有完全理解问题陈述的情况下,永远不要开始解决问题。如果你一开始就问一些澄清的问题,那么你几乎永远不会错。当你问这些问题而不是假设的时候,这对你的面试官来说也是一个好兆头。

优秀的候选人知道如何解决问题(例如排序问题),但最好的候选人知道问题的多个解决方案,并了解其中一个解决方案与另一个解决方案的权衡。

在我表现最好的面试中(想到了Cruise),我不仅解决了算法上的挑战-我还能够提供替代的解决方案,并讨论了权衡之处。

目标是为一个问题提供多种解决方案,愿意讨论折衷方案,并能够实现其中至少一个方案。

对于技术面试,编写干净的代码。大多数面试官关心您的代码质量以及解决方案的正确性。以模块化代码为目标,将可重用的逻辑分离为实用函数,正确命名变量和方法,做个老大!

有些时候你会被卡住。这可能是由许多原因造成的:您没有必要的知识、不正确的假设、缺少细节等等。

我过去常常认为,在这种时候,人们会根据我能多快拿出解决方案来评判我。所以我会很安静,思考,不和面试官交流,只是思考。

这就是我们很多人都搞错了的地方。我明白了,你需要一些独处的时间来思考。但是很抱歉让你的泡沫破灭,那不是你在接受面试时的独处时间。

是的,你的面试官希望看到你能想出解决方案,但有一件事你千万不要忘记,那就是他们也想看到你能与其他队友合作提出解决方案。虽然公司想要摇滚明星,但他们也想要有团队精神的人。

既然你的面试官是你的朋友、伙伴、团队成员,他们站在你这边,对你表示好意(参考4条),那么在你想清楚的时候和他们聊聊吧。

分享你的思维过程,直到你陷入困境,并且自信地去做,而不是像呼救一样。通过这样做,您可能会发现解决方案,就像我采访Coda时的情况一样。

这里的课程适用于在HackerRank、Codility等平台上以编码挑战的形式进行的面试。通常情况下,这些都是计时挑战,比如45分钟,有时可能更长。

我之前分享的一些经验教训在这里很有用,而其他一些像问清楚的问题不适用,因为没有人可以问。因此,以下是我推荐的一些步骤:

即使是暴力算法,也要先编写能够正常工作的代码。它可能不会通过所有的测试用例,但是首先得到一些可以工作的代码,希望在最初的15-20分钟内。

很好地掌握计算机科学基础知识是这里的关键。我在下面的参考资料部分添加了一些有用资源的链接。

带回家的项目是一个真正发光的机会,因为你有更多的时间。这也意味着它们可能很耗时。

我采访过的一家公司提供时薪,大约每小时68美元,用于支付你在他们的带回家的项目 - 上工作的小时数。这真的很严重,所以你应该认真对待它。在把你的时间投入到带回家的项目之前,要确保你真的想成为一家公司的一部分。

对于带回家的项目,永远不要在代码质量上妥协。对您的设计决策、命名约定、代码结构等要非常谨慎,并准备好捍卫您的选择。

在采访Course Hero期间,我使用正则表达式解决了一个使用更简单的字符串解析算法就可以解决的问题。这是一个糟糕的决定,因为我没有通过面试。

教训:只使用您非常熟悉并有丰富经验的工具。

睡个好觉吧--让我们前一天晚上睡个好觉。面试当天早点到达,并保持微笑(这有助于展现自信,但更重要的是帮助你保持放松和掌控局面)。

直面你的恐惧,接受这一点,即使这不起作用,这也不会是世界末日--毕竟,你们只是要进行另一次技术上的交谈。那就进去好好聊聊吧。

这些面试可能与现场面试有很大不同,因为每个人的眼睛都在盯着你--真的是这样--这可能会让人伤脑筋。

我有三次虚拟的现场面试,但没有一次通过。很抱歉,我不是你的人选,但我分享了一些资源,我认为下面的资源可能会对你有所帮助。

你没有通过面试的原因有很多。我认识的一些最好的工程师在某些时候面试失败过,现在仍然如此。

所以,把失败的面试与你自己分开,从每一次失败的面试中寻找学习要点,并利用这些点继续前进。就像他们说的-我们行动!

庆祝你的成功,不管你认为它们有多小。我有几个庆祝的主意。

我不会告诉你,自从我踏上这段旅程以来,我已经通过了每一次面试。但可以肯定的是,我可以告诉你,我在面试方面变得更好了,我的自信水平也真的提高了。是的,我也收到了多份😊的录取通知。

练习与朋友进行大量的模拟采访。虽然我不完全同意熟能生巧(因为对我来说,完美听起来像是一个移动的目标),但练习可以帮助你快速识别面试问题中的模式,提高掌握能力,最终提高你的信心。

对于技术面试,没有什么比非常好地理解数据结构和算法的基础更重要的了。我已经添加了指向资源的链接,我认为这些资源可能会对您有所帮助。

开始面试,然后继续面试。即使你有工作,也要时不时地去面试 - ,也许每隔一个月或一个季度面试一次。面试是一项技能,所以要不断磨练。

我真的希望这对你有帮助。希望这里分享的一些经验会让你更自信,更善于面试,并最终帮助你找到你真正想要的工作。

如果你需要别人对你进行模拟采访,请随时通过twitter@meekg33k联系我。