1.面试三大目标
- 考察目前所具备的专业能力和素质
- 考察未来长远发展的潜力
- 考察是否具备在当前职业道路上发展的必备条件
2.具体考察项
- 计算机基础:算法,数据结构,操作系统,协议,硬件知识
- 语言:
- 日常所运用语言的掌握程度,基础知识,类库的熟悉程度,语言标准,对该语言的认识
- 对开源社区的了解程度,特别是针对工作中可能接触到的各种框架的掌握,是否对开源有贡献
- 对主要使用语言以外的其他语言是否有所涉猎,对各种语言的认识,对比
- 解决问题的能力:
- 所擅长领域:阐述工作中所遇到的各种技术问题(特别是印象深刻的)
- 问题变化:针对一些问题将条件变化,比如访问量,业务上对实时性的要求等等,考察面试者临场解分析并解决问题的能力
- 思维严密性:对解决方案提出针对性问题,在解决问题时是否有一定前瞻性,具体到设计中的体现
- 综合能力:提出一个全新的问题(与当前工作经验无关),考察面试者的临场反应,思维敏捷度,运用所学知识快速分析并解决问题的能力
- coding:
- 面试者coding习惯
- 快速完成原型能力
- 思维严密性,敏捷度
- 综合技术能力
- 相关技术领域知识:
- 比如做互联网要了解分布式相关,做各种业务系统要有很强的业务分析和领域建模能力,这一块的问题需要针对具体场景
- 学习能力:
- 对技术的热情:解决过哪些让他印象深刻的技术问题,对未来职业发展目标的阐述,面对未知领域的问题如何解决,每天有多少时间在接触技术,分别在干什么?
- 学习方法:最初学习的方法,比如从不会java到上手,这个阶段如何学习的,现在个人积累技术知识的手段和方法,是否有定期回顾,总结
- 技术以外的能力:设计一些技术以外能力提升的问题,是否善于观察,是否能虚心学习,除技术以外个人的兴趣爱好介绍
- 持之以恒:对所擅长技术掌握的深度,能否对一个技术有持续的热情,而不是什么都会点,但浮于表面
- 软实力:这方面的问题需要在其他问题考察时留意,但如果未充分体现则需要设计一些场景考察
- 沟通表达
- 抗压性
- 团队合作
- 灵活
- 主动性
- 自我调节
上述考察项不针对特定场景,具体到不同的面试场景中会有不同的侧重点,公司所属行业的不同,部门不同也会有不同的针对性,由于人的特点各异,所以各考察项需要有基本的门槛,但具体到是否能达到当前招聘岗位的标准则要结合每个人的特点综合判断。
3.总结
- 人的潜力是无穷的,但难以通过可量化的标准问题来判断,而往往面试者表达观点时,细节的东西才能看出这个人的潜力,这对面试官来说是个挑战,对于面试者的不断引导是必须具备的能力,否则你只能期待遇到个表达能力超强的人
- 对面试者表达的观点要刨根问底,很多面试者喜欢说一些比较冷门的技术,或者面试官可能不了解的技术,或者一些看起来很华丽的东东,如果你准备说你的简历是用emacs写的,请准备好下一个问题是emacs常用快捷键,如果你说到某个设计模式,下个问题是工作中运用了哪些设计模式,为什么这么用,好处和坏处分别是什么,所以如果你没有准备好,不要随便开话题,那只是在最后聊开了可以说说的东西。当然面试官也需要对各种技术都有所了解,不过即使不了解也不必慌张,面试是个相互学习的过程,这是面试者需要有的一种心态
- 软实力难以考察,而且这类问题往往是比较致命的,学习能力可以培养,技术能力可以积累,但是软实力往往涉及到一个人的个性和生活习惯,这类问题没能在面试时考察出来,等到工作时暴露出来,往往要付出很大的代价,对于我来说团队合作和主动性是最基本的要求
自从做面试官到现在,有成功的案例,也有失败的案例,对面试也有些感悟,以上写的很多都比较主观,也没有细化到具体的问题,后续再补充吧。