一般沟通之后,通常是一个或多个小时的技术电话面试。面试官会给你打电话,或告诉你通过Skype或Google Handouts加入他们的电话面试。你需要确保可以在一个互联网连接良好的安静地方进行面试。
面试官希望实时看到你的代码。这意味着要使用基于Web的代码编辑器,例如Coderpad或collabedit。如果你不熟悉的话,提前在这些工具中运行一些代码来适应它们。
技术电话面试通常分为三个部分:
❑闲谈环节(5min)。
❑技术沟通环节(30~50min)。
❑提问环节(5~10min)。
一开始的闲谈不仅仅是为了帮助你放松,还是面试的一部分。这一环节会在5min左右完成,面试官可能会问一些开放性问题,举例如下:
❑简单介绍一下自己。
❑简单介绍一下你引以为傲的成就。
❑简单介绍一下你简历里面的项目。
在此过程中,你需要对写在简历里面的任何项目和技能都非常熟悉。
这是技术电话面试的核心部分,一般需要30~50min。你可能会遇到一个较长的问题或者几个较短的问题。
新兴企业的面试官往往会问一些构建或调试代码的问题。比如,编写一个可以提取两个矩形并判断它们是否重叠的函数。
较大公司的面试官将主要考查数据结构和算法。比如,编写一个函数来检查二叉树是否在 O ( n )时间内是“平衡的”。他们更在乎你如何解决和优化问题。
对于这些类型的问题,最重要的是始终与面试官保持沟通。解决问题时,你将需要“大胆思考”。对于这些电话面试的技术问题,参考本书的数据结构和算法设计部分。
如果职位需要特定的语言或框架,则面试官会询问类似的问题,比如,在Python中,“global interpreter lock”是什么?
在面试技术问题后,面试官将会留出5~10min让你向他们提问。所以,你在面试之前需要花一些时间来了解你要面试的公司,问一些有关公司或和职位相关的具体问题。
电话面试完成后,他们会给你一个时间表,告知你接下来的步骤。如果一切顺利,你可能会被要求进行另一次电话面试,或者被邀请到他们的办公室进行现场面试。