今年年关刚过,复工没几天,就被领导指派为一面面试官。到现在也有小半年的时间。
当初接到这个任务,内心是有些惶恐的,一个是作为社交恐惧症患者,每次跟人面对面,一对一聊天的时候都或多或少有那么一些尴尬和不自然,另一个是在技术方面也没有自信到可以随意评价别人的程度,总担心面试过程中暴露自己的不足,被候选人在内心取笑。
于是特地准备了很多,搜了一些基础的面试题,列了一个提问的大纲。当时隐隐有点担心,自己准备的问题是不是过于简单,正常人随便刷几篇面经就都能通过面试。后来的经历证明,我想多了。
第一个面试安排在一个工作日的下午。疫情期间,都是远程视频面试。尽管如此,我还是早早订了一个会议室,尽量创造一个不被打扰的安静环境。
候选人正常上线,很好,挺准时。先让他做了一个简单的自我介绍。嗯,确实挺简单,简历上都有。然后问了问平常的开发语言,技术栈等等,没有细问技术,这一部分还好,有什么说什么。接下来开始问一些技术问题。毕竟我是一面面试官,多考察点基础也无可厚非。项目细节的深挖留给后面的二面,三面就行。很多问题他回答得不是那么清晰,语言组织稍显混乱,一些细节也有点遗忘。几个我以为的『送分题』,没想到竟然答不上来。如果给分的话,勉强能给个60分吧。最后一部分让他问我问题,就简单问了问团队在做什么项目,规模是怎么样的。然后就结束了,总共持续约50分钟。
稍微犹豫了一下,还是让他通过了面试。一个是第一次当面试官,希望有个开门红。这个是他的运气。另一个也想摸一摸二面三面的标准,看看这样的水平到底行不行。为以后的判断做参考。结果,他二面挂了。那我就知道了,标准需要稍微提高。
后面面试的时候,也遇到了几次让我犹豫要不要给他过的情况,纠结很久之后过了,但是在后面的二面或者三面都挂掉了。这让我认识到,如果对一个人犹犹豫豫的话,那就算了吧。像极了爱情。
之后就顺利平和许多,我的心态也没有了一开始的紧张。这个过程中也遇到了各种各样的求职者。
有的人真的非常努力,会背很多面试题。真的就是一字不落地背下来。我是怎么感觉到他是背的呢?一个是语气,背过课文的同学都知道,背诵和正常的讲述语气上面是有差别的。另一个是语言,他所用的语言明显是精炼过的,偏向书面的语言形式。而且,背诵有个很明显的点是,它会在很多随机的地方停顿。因为遗忘其实是随机的,而这些因为遗忘而停顿的地方可能在逻辑上很顺畅,完全不需要停下来思考。另外,如果你根据他背诵的内容往下问一两个点,他就全然不知,或者如果问到一个没有背过的点,也是很干脆地说不知道。面对这样的求职者,我都是十分感动,然后拒绝。
还有一些人期待作弊来瞒过面试官。你每问一个问题,他会假装思考很久,视线忽上忽下,肩膀开始不自然地动作,你甚至能听到打字的噼里啪啦声。这个时候我就知道,他在偷偷搜索答案了。不要以这种方式欺骗面试官,真的很容易被看出来。起码,你得学会盲打啊。然后麦克风离键盘远一点,这样打字声才不会被听见。最后,你还需要很好的身体控制力,保证你打字的时候,手腕以上的部分不会有任何动作。做不到的话,还是放弃这种想法吧。
最后还有一部分人,面试过程中表现得非常傲慢,但回答问题却又回答不上来,给你一种『这些问题都太简单了而我根本不屑于知道』的感觉。他甚至会给你说,别问这些没用的,都能百度得到。对于这样的大哥,我一方面表达敬佩之情,层次很高,看得很远,一方面再默默地挂掉。其实这也是很多人的困惑,面试中的基础知识重要不重要,所有的细节都要记得滚瓜烂熟吗?
《最强大脑》里面有一集,舞台中央有一个巨大的题板不断滚动,上面记录了各种图形,选手需要在题板上找到满足条件的所有图形,再回到自己的答题位进行拼接组合。比赛过程中能很明显地看出两类人。一类人需要不断地在题板和自己的位置之间跑动,记一个,回来组装一会,再去记。而另一类人只需要看一遍题板,就回来完成全部的组装,因为全都记住了。最后这类人的用时甚至是第一类人的十分之一。嘉宾说,能记住和记不住是两个层次。
对应到软件开发的过程中,其实也是这样。有个区别就是,我们不会要求你很快记住,只要求你能记住,不管用多少时间。如果在工作的过程中,很简单的知识点都需要搜索一下的话,那会极大降低你的效率。不仅仅损耗的是你搜索的那一点时间,而且也会打断你连续的思考。所以在面试的过程中,如果是确实生僻的细节,可以不记得,但如果是公认的基础知识,那就要牢记于心,脱口而出了。这样才能在进行大规模深入思考的时候,不被这些琐碎打断,才能流畅地进行更高层次的设计。
除了基础知识要扎实以外,还有什么是能够赢得面试官好感,增加通过的几率的呢?
我觉得首先是态度,一定要诚恳与谦虚。诚恳是说,要如实反馈你的知识掌握程度,不要过于夸大。不知道就说不知道好了,面试官很多时候只是看看你的技术广度,有则加分,没有也没太大关系。反而如果一个技术你一开始说精通,后面深入问几点又都说不上来。这种会比较减分。谦虚是说,虽然你有时候很不屑面试官的问题,但是不要表现出来,别人的问题可能不适合你,但是是适合人家业务的。如果想通过面试的话,就老老实实回答问题,不过度自信。
另一个比较重要的是表达的逻辑性,或者说结构性。要尽量顺畅,有条理。跟这样的候选人沟通真的非常愉快。即使一些问题回答不上来,但是因为沟通顺畅,也会得到加分。这一点只能自己平日里多多锻炼,推荐看看《金字塔原理》,在网上找找结构化表达的教程。然后针对一些常见的面试题,在结构化表达的框架下准备一套自己的回答。
回顾自己作为技术面试官这半年,在评价别人的时候也有机会审视自己。你问的这些问题你自己掌握了吗?你对别人的要求你自己具备吗?如果你自己面试自己,你会给自己通过吗?细想下来,自己还是有很多的进步空间。编程之路,任重而道远。