无论做了多少准备和学习,在技术面试中还是很容易出错。特别是当面试官想深入了解工具、平台、语言或服务的技术细节时。
事实上,根据一些粗略的数据,技术面试的平均通过率约为54%,据报道,在竞争激烈、招聘流程严格的科技巨头中,通过率低至15%至20%。
虽然你的自尊心可能会在面试后受到打击,但没有通过技术面试可能是一个机会,让你发现自己需要改进和学习新东西的地方。为了帮助你欣赏失败,并把它作为一个学习的机会,我们邀请了三位技术专业人士分享他们在技术面试失败后恢复的步骤。
清空大脑
Farhana Mustafa学会了写下面试官问的每一个问题以及她如何回答。面试一结束,她就会在脑海中还记忆犹新的时候这样做。
像她的许多同龄人一样,写日记可以帮助这位Intuit的高级软件工程师反思自己的表现,以提高自己的技术和面试技能。
Goodgame Studios的技术主管Davide de Paolis使用一种回顾性的方法将自己的答案与Google、ChatGPT或同事的答案进行比较,这有助于将面试置于不同的环境中。
他说:“我可以回顾自己的表现,找出原因是缺乏特定领域的知识,或者无法管理压力和时间压力。”“然后我就可以在短时间内通过学习或解决测验和技术难题来专注于提高这一特定技能。”
批评自己的表现不仅能帮助你评估答案的正确性,还能帮助你清晰、有逻辑地表达自己观点的能力,这至少是成功的一半。
寻求反馈
理想的情况是,你把自我评估和面试官的反馈结合起来,对你的优缺点有一个客观的认识。
由于大多数技术评估人员希望你在解决问题时解释你的思维过程,因此询问诸如“这是你正在寻找的方法吗?”或者“这个听起来怎么样?”这是一个很好的方法,可以看看你是否与面试官思路一致,并在为时已晚之前调整你的方法。
有些面试官会在面试后主动提供详细的反馈,但如果他们不这样做,Spotify的高级工程师Sándor Dargó总是会主动联系面试官,看看他们对他的表现有什么看法。
反馈的特殊性是至关重要的,因为它可以帮助技术类求职者通过直接指出自己的优点和缺点来提高自己。
为考试而学习
技术面试的重点不在于你知道什么,重要的是通过考试。所以,除非你学的是正确的东西,否则题目和形式可能会让你大吃一惊。
例如,当面试官问她Fizz Buzz面试问题时,Mustafa感到惊讶和困惑。当她被要求解决与图表或算法有关的数据结构的LeetCode问题时,她也遭遇了同样的命运。
Dargó表示,尽管准备充分,但他显然低估了大O分析法的重要性。他解释说,在工作中,你很少需要分析一段代码的运行时和空间复杂性,但在技术面试中,这是必须的。他通过研究最常用的C++标准函数的时间和空间要求来提高性能。
为了模拟各种测试环境,Mustafa找到了朋友,随机选择中等水平的LeetCode问题,让她在一个定时视频通话中解决,同时分享她的屏幕。她还组织了一个小组在白板上练习解题,另一个小组解决数据结构和算法问题。
除了LeetCode,Mustafa现在还研究前端开发人员的典型面试问题,并在面试前利用业余项目来磨练相关的、与任务相关的技能。
de Paolis建议,在面试前尽可能多地获取信息。它会包括实时编码、算法和数据结构测试吗?是伪代码白板面试还是系统设计?对职位、面试形式和公司的技术栈有一些了解可以帮助你在面试前更新你的技能和知识,并进行练习。
认识到风格和内容一样重要
通过反馈,许多技术专家了解到,在回答技术问题时,风格和内容同样重要。例如,根据反馈,Mustafa现在在提出解决方案时花更多的时间讨论处理错误案例的选项。
她还提供了不同的解决方案,以表明她愿意挑战现状。她通过运用UMPIRE的面试策略,增强了自己寻找解决方案的信心。
最重要的是,她已经接受了这样一个事实:简单地回答“我不知道”是可以接受的。如果你能展示你是如何思考问题的,你的面试官可能会对你的思考过程和解决方案一样印象深刻。
复盘和反弹的关键
复盘并在下次技术面试中取得好成绩的关键是什么?不要往心里去。
你需要有足够的自信,这样一次失败的面试才不会让你失望。此外,你需要足够谦虚地认识到你还有很多东西要学。
“继续努力,”Dargó说。“要意识到,通过学习和坚持不懈,你就能在下一次面试中取得好成绩。”
作者:Leslie Stevens-Huffman