由于不知道面试官对面试者的衡量标准,许多我曾面试过的候选人在面试中表现得差强人意。虽然不同的面试官有自己不同的衡量标准,但这些标准间也存在一些共通之处。如果能多了解一些面试的基本知识,可以帮助你在面试中对自身有更准确的定位,并且能提升你的面试技巧。
一般会根据三个方面来评价面试候选人的表现。我认为这三方面基本代表了各家公司对你的评价的依据。即便这三方面的能力没有在面试中直接被考察,它们也会影响面试官对你的总体评估。
问题解决能力
技术能力
沟通能力
虽然我需要对以上每一种能力分别评分,但这三个方面的能力其实是紧密地联系在一起的。如果一个候选人缺乏其中的一项能力,他往往也会欠缺另外两方面的能力。让我们一起看看每种能力都有什么独有的特征。
一、问题解决能力是从代码编写中体现出的一种抽象的能力。我想了解你编写代码的整个过程,而非仅仅是一个结果。这就要求你知道问题是什么,以及对何种有效的解决方案会被我认可有着清晰的认识。解决问题的关键很大部分在于定义约束条件,找到模糊或不确定的地方,并加以解决。二、技术能力技术能力主要考量两个方面。第一是你在编码习惯用法和知识方面的经验,你是否知道什么是可能实现的,以及如何对其进行编码?第二是具体的语言能力,当你明白了你想做的事情后,你能用你使用的编程语言把它实现得多好。第一方面是关于你的一般编码知识。你是否了解数据结构,程序流程以及编程语言能够执行的所有操作?这些知识就像是你的工具箱,会影响你解决问题的能力,而你的编程设计是否有效,则取决于这些工具是否可用。第二方面是考察你对具体编程语言的语法和语义的了解,这与第一方面联系极为紧密。因为通过观察你是如何在代码中表达自身想法,从而了解你对一般编码知识的掌握。如果你需要费尽心机才能编写出一个循环,那么需要确认这是因为你不懂编程语言,还是你不确定循环应当如何应用于这个问题。三、沟通能力正确地把你的想法表达出来能确保面试官对你做出准确的评价。有的应聘者做不到这一点,他的表现就会劣于其他候选人。表达流畅能提升面试官对你的沟通能力的评价,同时也确保面试进行得更加顺利,并有助于你准时写完代码。但你的沟通方式如果是仅仅把所写的代码念给我听,那将毫无裨益。面试官自己也能看代码。你应该把沟通的重点放在代码中无法体现出来的,编程者在代码背后的思考。有许多应聘者知道在面试时应该多沟通交流,但我觉得他们不知道应该说些什么。因此他们最终选择直接再念一遍自己所写的代码。你要学会和他人分享你写代码时的思路,但这需要多加练习。你要清醒地意识到自己被评估,从三个主要方面:解决问题能力、技术能力和沟通能力。