程序员面试面试中的优缺点
经验面试优缺点
这里所说的经验不是通过工作了多少年来衡量的,而主要是指面
试者的经历,比如,是否完整地实现过一个软件,或作为主要开发
者完成过一个项目。经验的重要性在于它能说明一个人的综合能力。
从项目的性质、规模和难度,面试官就可以大致判断出面试者的综
合能力。如果一个面试者一直在大公司负责一个小模块的开发维护,
那么基本可以判断他不具备独立或作为主要开发者承担一个项目的
能力,只适合在另一家大公司做类似的事情。对于门槛较高需要长
期技术积累的职位,相关经验更显得尤为重要,比如,Linux 内核
开发,JVM 开发,游戏引擎开发,数据库实现,高级 UX 等。对于这
类职位,没有经验的面试者即使综合素质不错也是需要长时间的学
习和积累才能胜任。所以,基本上如果确定了你的职位属于此类,
那么相关经验毫无疑问应该成为首选因素,换句话说,P(工作好|相
关经验好)的概率是非常高的。
通过项目经验判断面试者的优劣比通过基础和算法测试更加靠谱,
所以,面试过程中面试官应该花比较多的时间听面试者介绍项目经
验,并进行深入地探讨交流,了解面试者的知识面、思维能力、表
达能力等。同时,可以结合项目提一些基础知识和算法的问题,比
如,如果面试者做过 C++相关的项目,那就可以问他如何进行内存
管理?是否熟悉智能指针?如果面试者的回答不能令人满意,那么就
基本上可以判断他的项目做得不是很好。
要注意的是,经验也是一个多维度的事物。比如,C++股票交易
中间件系统,这就涉及(C++,中间件,股票)3 个维度。假如面试者
A 做过 C++股票交易客户端,面试者 B 做过 C 的股票交易中间件。从
语言角度看,A 最匹配,从项目性质看,B 最匹配,你如何选择?这
就是在多个维度中,哪个维度更重要的问题,就这个例子而言,我
个人更倾向于 B,因为我认为中间件开发经验是主要矛盾,而从 C
切换到 C++并不是问题。所以,面试官需要判断哪一种经验是主要