打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
30天,我进行了60多次技术面试:生活不易在线叹气
2020 年 1 月到 3 月份,我一共发出了 109 份职位申请,争取到了 60 多个面试机会。接下来,我用了一个月时间进行面试,这包括 60 多次电话面试、50 多次技术性视频面试、18 个回家完成的编程项目、11 次编程挑战和 8 次现场面试。起初,我只是想换份工作,后来我开始学会从经验中不断学习并提升自己。

本文最初发表在 freeCodeCamp 网站,经原作者 Uduak Obong-Eren 授权,InfoQ 中文站翻译并分享。

我是怎么开始的?

“如果你一定会失败,那就快点儿去做。” ——佚名

起初,我只是想换份工作。与其他软件工程师一样,我也参加过不同类型的技术面试,从白板编程面试,到在平台上做一些 45 分钟编码挑战。虽然一些经历很棒,但也有一些很糟糕,特别糟糕。

从 2020 年 1 月到 3 月初,我向很多公司提出了职位申请,并与他们取得了联系。从早期初创公司到后期初创公司,从 中型公司到 Amazon 这样的大公司,甚至还有一些远程工作的公司。

我一共发出了 109 份职位申请,争取到了 60 多个面试机会,这又包括 60 多次电话面试、50 多次技术性视频面试、18 个回家完成的编程项目、11 次编程挑战和 8 次现场面试。

我从中学到了什么?

为了让读者更好地理解,我将这些经验教训分为三类:面试前、面试中和面试后,以匹配典型招聘过程的不同阶段。

面试前阶段

这一阶段涵盖了与公司的初次接触到第一次面试的方方面面。

关于职位申请,我学到了什么

当我开始向公司申请职位时,我以为我提交的申请越多,获得的面试机会就越高。听起来合乎逻辑,对吧?所以,我设定了这样的目标:每天提交 5 份申请,目标是每 5 份申请就有一次面试机会。

但我的策略并没有像我希望的那样奏效。我收到的面试机会的次数经常没有达到我的目标。这几乎是 1:12 的比例,也就是说,每 12 份申请才有一次面试机会。

我面临的问题是:我要不要将每日目标提高?比如说,10 家公司?或者说,我还需要改变什么吗?

对每一次失败的申请,我都觉得有些事情需要改变。

这一变化是在我从每天的工作中抽出时间,开始以不同的方式反思我的申请时发生的。我开始将每一份申请都看做是对招聘经理或者其他人进行推销,但在这里,我推销的是我自己。

如果一家公司需要填补人才缺口,而我说我有这方面的技能,那么我就需要想办法让他们相信我具备这个能力。

接下来,我的新任务就是找到一种方法,以一种有效的方式来展示 我独特的技能、经验和个性,让招聘经理相信我是这份工作的合适人选。

下面是我想出的一种推销例子:

加上我的简历,这封求职信的成功率达到了 95%。有一次没有取得成功,招聘经理还是回复我说,我申请的这一职位已经没有空缺了,但他希望将来还能和我联系。

这里的经验教训是,对于你提出的申请要有针对性:质量重于数量。 最好两者兼而有之。了解自己独特的能力和经验,并以符合公司需求的方式将它们展示出来,同时又不需牺牲自己的个性。

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

我从招聘人员的邮件学到了什么?

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

诚然,鉴于我日常安排很紧,有时候确实真的很忙,但我学会了感同身受,明白这些招聘人员只是在努力做好自己的工作而已。

我不再将这些电子邮件看成收件箱里的“噪音”,并开始努力回复所有招聘人员发来的电子邮件,甚至是那些我不感兴趣的职位。通过这样做,我成功地建立了一个招聘人员的人际关系网,如果我将来要换工作的话,这个网络将会成为一种丰富的资源。

当然,我并不指望你现在就开始回复你收到的每一封邮件。但你可能会有兴趣知道,我收到的一些面试机会正是来自我之前回复过的招聘人员,那时候他们提供的职位是我不感兴趣的。给他们回复邮件也无妨。

面试阶段

这一阶段涵盖了面试的方方面面,跨越了不同的面试类型。

如何处理介绍性电话

是的,我明白,你很忙,很多事情都在争夺你的时间。但是,嘿,你也是一个优秀的专业人士,这意味着你在接电话的时候,至少要知道以下两件事:

  • 面试官的名字;

  • 关于公司至少要有一个实实在在的概念,比如他们做什么,在哪里,最近的新闻之类的。

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

如何处理技术性电话面试

在技术性的电话面试中,有一件事几乎可以独立决定你的表现如何,那就是你清晰表达自己想法的能力。

你可能以前听过这样的话:

“面试官关心的是你的思维过程。是的,他们可以看到你的代码,但重要的是,他们想知道你为什么这样做。”

面试官没有在你身边,所以没有机会看到其他非语言上的暗示,比如你的手势或细微差别。面试官所拥有的只是你的声音,以此来了解你的思维过程。

现在,你知道应该如何引导这场对话,那么下一个问题就是如何做到擅长这一点?因为事实是,虽然表达自己的想法可能对一些人来说是很自然的事情,但对其他人却不然,包括我自己。

所以,练习!练习!不断地练习!练习大量的模拟面试。和朋友们一起进行这些模拟面试,让我更好、更自信地解释自己的思维过程。但更有趣的是,这样的练习帮助我培养了一种新的面试心态。

我开始将面试看做是与朋友或团队成员的交谈。我将电话另一端的面试官想象成我的一个朋友(有时候我会在脑海里给面试官起个名字)。因此,本来是压力很大的面试,现在我却将它看成是一场关于技术问题的友好“聊天”。

这种新的面试心态,加上大量的面试练习,让我信心大增,以至于我开始享受面试,抱歉,是技术聊天。

如何着手解决问题

永远不要在没有完全理解问题陈述的情况下就开始解决问题。如果你一开始就问一些和想明白问题相关的话,那么你几乎永远就不会出错。当你问这些问题而不是依照你的假设来进行时,对面试官而言也是一个好兆头。

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

在我表现最好的面试中,我不仅解决了算法上的挑战,我还能提供其他解决方案,并讨论了权衡取舍。

目标是为一个问题提供多个解决方案,以讨论权衡取舍,并能至少实施其中的一种解决方案。

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

陷入困境该怎么办?

有时候你会被卡住。这可能是由多种原因造成的:你不具备相关知识、错误的假设、遗漏的细节等等。

我曾经认为,在这种时候,人们会根据我拿出解决方案的速度来评判我。所以我会安静地思考,不和面试官交流,只是思考。

而这正是我们很多人犯错的地方。我明白了,你需要一些独处的时间来思考。但是很抱歉,你的幻想破灭了,那个独处的时间并不是你被面试的时候。

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

既然你的面试官是你的朋友,站队你这边并对你有好意的团队成员,那么在你想清楚的时候和他们谈谈吧。分享你的思维过程并自信地去做,而不是像求助者一样。通过这样做,你可能就会发现解决方案。

如何应对编码挑战

这里的经验教训适用于在 HackerRank、Codility 等平台上以编码挑战的形式进行的面试。通常,这些挑战都是定时的,比如 45 分钟,有时也可能更长。下面是我推荐的一些步骤:

  • 通读并充分理解问题。

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

  • 使用不同的输入类型测试代码,因为这有助于处理极端情况。

  • 优化以提高效率。

  • 重复步骤 4 和 5,直到最后一分钟。

在这个过程中,掌握好计算机科学基础知识是关键。

如何处理回家完成的项目

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

在我面试过的公司中,有一家公司提供了时薪,大约为每小时 68 美元,用于支付在回家完成的项目上的工作。你应该认真对待这个过程,在将时间投入到回家完成的项目中之前,你要确定你是不是真的想成为该公司一员。

对于回家完成的项目,永远不要在代码质量上妥协。在设计决策、命名约定、代码结构等方面要非常用心,并准备好为你的选择辩护。

你应该使用什么工具?

在一次面试中,我使用正则表达式解决了一个问题,而这个问题本可以用更简单的字符串解析算法就能解决。事实证明,这是一个糟糕的决定,我也因此没有通过那次面试。

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

如何进行现场面试?

现场面试前一晚要好好睡上一觉。面试当天要早点到达,并保持微笑(这有助于展现自信,但更重要的是,有助于你保持放松并自我控制)。

直面恐惧,接受这样一个事实:即使这次面试没有成功,也不会是世界末日,毕竟,你们只是进行一次技术性的聊天。那就进去敞开聊一聊吧。

如何进行虚拟现场面试?

这些面试可能与现场面试有很大的不同,因为每个人的眼睛都在盯着你,确实如此,这可能会令人感到紧张不安。

我参加了三次虚拟现场面试,但一次都没有通过。很抱歉,这个问题我分享不了什么经验和教训。

面试结束之后
如何处理面试失败?

没有通过面试的原因有很多。我认识的一些最优秀的工程师,也有过面试失败的经历,现在仍然如此。所以,要把失败的面试与你自己分开,从每一次失败的面试中找出学习的要点,并利用这些来开拓前进。

那面试成功呢?

庆祝成功,不管你认为这些成功有多渺小。

我不会告诉你的是,自从我踏上这段旅程以来,我通过了每一次面试。但可以肯定的是,我可以告诉你,我的面试能力越来越强,我的自信也真的提高了,我也得到了很多工作机会。

下一步应该做什么?

你可以和朋友一起进行大量模拟面试。虽然我不完全认同熟能生巧的说法(因为对我来说,完美听起来就是一个不断变化的目标),但练习可以帮助你快速识别面试问题中的模式,提高熟练程度,最终提高你的自信。

对于技术面试,没有什么比对数据结构和算法的基础知识有很好的理解更重要。

开始面试,继续面试。就算你已经有工作,也要时不时去参加面试,也许每个月或一个季度参加一次面试。面试是一项技能,所以要不断磨练。

我真的希望本文对你有所帮助。希望我分享的一些经验教训能让你在面试中更加自信,并最终帮助你找到真正想要的工作。

有用的资源
  • 《技术面试终极指南|跟我一起学编程》(The Ultimate Guide to Acing Your Technical Interview | Learn to Code With Me)

  • 《如何在技术面试中脱颖而出》(How to Ace Your Technical Interview)

  • 《回家完成的编码挑战基本指南》(The Essential Guide to Take-home Coding Challenges)

  • 《Amazon 前副总裁的完美技术面试剖析》(The Anatomy of the Perfect Technical Interview from a Former Amazon VP)

  • 《掌握下一轮虚拟面试的 9 个技巧|哈佛商学院在线》(9 Tips for Mastering Your Next Virtual Interview | HBS Online)

  • 《Skepe 面试的八个小贴士:成为虚拟面试的高手》(8 Skype Interview Tips: Ace Your Virtual Job Interview)

作者介绍:

Uduak Obong-Eren,软件工程师,毕业于卡内基梅隆大学。

原文链接:

https://www.freecodecamp.org/news/what-i-learned-from-doing-60-technical-interviews-in-30-days/

今日荐文

点击下方图片即可阅读

25 岁网安 CEO 被判刑 12 年,技术隔离后,顶尖黑客被 out 了?


你也「在看」吗?👇

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
16个经典面试问题回答思路
【汇总】HR面试八大策略
总让我回去等通知,是套路吗?
阿联酋|迪拜的简历和工作面试技巧!
4妙招让“自我介绍”更精彩?
自我介绍都说不好,好工作当然轮不到你
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服