最近在找工作。也收到了两个offer,有的面试则没有音讯。于是我就在思考造成不同结果的原因。没有收到offer,是公司的问题,还是自己的问题,如何判断这一点?以及,如果准备一场(技术)面试?
面试的本质
做一件事,首先要去理解这件事的本质。知道了做这件事的本质,才好有的放矢。不然即使成功,也是凭运气了。
那么,面试的本质是什么?
在我的理解,面试其实就是一场考试。招聘公司对应聘者的表现进行评估,然后对比不同的应聘者,决定招哪一个人。
面试考察点
既然是考试,肯定是要有考试范围的,也就是,靠察哪些东西。人力资源领域有个著名的“素质金字塔”模型,用于描述人的各项素质。金字塔从下向上依次是:
动机 -> 潜力 -> 技能 -> 经验
这个模型与心理学上的潜意识等理论不谋而合----说到底,人是由潜意识决定的。价值观,动机,态度等这些软性的东西,驱动了人的行为。简单起见,将这个模型简化为 :
软素质 -> 硬技能
所以,面试就是对软素质和硬技能综合考察的过程。
软素质
软素质是个非常宽泛的概念。它偏主观。上文所述的动机,价值观等都属于这一范畴。
这一部分一般在hr面试中涉及。
比如这些hr问的常见问题:
- 先做个自我介绍
- 你为什么从上家公司离职?
- 你的优缺点有哪些?
- 你在工作中遇到过哪些难题?最终是怎么解决的?
- 等等
你的答案中可能会涉及一些技术知识,hr很有可能不懂,但是从你的思路,沟通表达上hr已经对你做出了评估。
硬技能
这一部分偏向与专业知识与技能的考察。也是大多面试的大头(一些非技术类岗位的面试除外)。
程序员技术面试中,考察的知识一般是:
- 编程语言,算法,设计模式以及编码能力的考察
- 网络,操作系统,mq等中间件等各种理论与系统知识
- 系统设计(高级工程师面试多一些)
- 项目中的问题
如何回答一个问题
最后需要回答标题中的问题了,什么是面试的正确姿势?问题可以细化为,回答问题的基本套路是什么?
踩点答题。
所谓踩点踩的店就是考点,也就是本文中说的软素质和硬技能。处理踩点,就像上面说的,回答问题,不管你会不会,解题套路也是要有的。
对于知道答案的问题,把自己的答案说出来就是了,注意表达即可。不会的问题,硬实力不够,就“上价值”啊。也就是拿软素质来补。
举例
比如,面试官问你有没有做过性能优化的相关工作。
即使你整日crud,也不要理直气壮说自己没做过。
可以尝试这样回答:
性能优化是个很广的概念。包括jvm调优,数据库调优等等。之前因为一次Jenkins响应慢,修改过一次jvm的堆内存的设置就解决了问题。数据库的优化大部分是有效的使用索引,这个最好是在写sql语句时就有性能意识,遵守一些最佳实践,如balabala,而不是有了性能问题现解决。
总之,遇到难题,尽量从自己的知识技能和工作中寻找匹配点,表现出积极的态度,而不要像机器人一样说个不知道了事。