技术认证面试指南1.0
共 1535字,需浏览 4分钟
·
2023-07-28 11:42
hello,尊敬的各位面试官大佬~
为保证面试体验一致和质量,对面试框架做一个大致的约束,同时保证各位有足够的自由度发挥
感谢您的付出,也希望您能成长为一位优秀的面试官!
一面试参考流程
二考核能力模型占比
三面试注意事项【选看】
①平等交流是核心
各位都有面试和被面试的经历;
面试官拥有主动优势,但目的肯定不是把对方考倒;
②面试是挖掘宝藏的过程
部分开发者简历写的不多或者不够重视,引导挖掘真实能力就是面试官的本事了~
不能一直就自己熟悉的技术问题进行提问,一定要经历一个主动挖掘对方擅长领域的过程;
老开发者,书面知识忘了就多谈工程,初级开发者工程少就多谈原理;
③面试问法
要了解一个人,八股文式的问法是必须的,但没有深入一个点,连续的蜻蜓点水不能反应应用能力;
错误示例:你知道A嘛?你知道B嘛?你知道C和D啥区别嘛?你知道E的特性嘛
就算是八股文式问法,也可就一个点深挖,比如:
1)你了解多线程吗?
对方可能会回答:“了解”、“熟悉”、“用过”。你可以接着问。
2)你们多线程用在什么场景,用到库之类?
对方可能巴拉巴拉说一堆。对方可能会提到线程池,你接着问。
3)JDK自带的线程池机制是怎样的?
那么还可以接着问。
4)JDK自带的线程池默认带了哪些实现?
对方可能能举出有哪些实现,每个实现有哪些缺点之类。那你还可以继续。
5)怎么评估线程池大小,能不能动态调整池的大小?
这个可能就比较麻烦了,对方可能能答上一些,那你还可以在操作系统机制,实现方案上继续讨论。
再比如Redis 是单线程还是多线程的?采用单线程的原因有哪些?单线程如何处理高并发问题(考察对 Redis 稍底层的了解以及 I/O 多路复用的了解)
能带进实际开发场景更好,如果出现XX情况你是怎么解决的?
一般都是给定场景,看解决思路;或者圈定技术,看应用场景;
比较好的问答方式,一般是先从某一个项目中的问题或者提到的某个技术栈开始,逐步深入到底层原理,了解对方解决具体的问题能力,并且对原理理解到什么层次。
比如如果对方提到做过秒杀系统,而做秒杀的基本绕不开高并发和库存超卖问题,每个人的解决方案可能都不同,可能没有标准方案,要看的是设计决策的理由和思路。
再比如,开发者提到用到A协议,为什么要用A协议,而不用B协议,用B协议可不可以?
善于挖坑就是更高阶的面试能力,日常工作中考虑事情的完备性和防御性编程的习惯是优秀开发者必备的;
比如开发者的项目有支付环节,可以问支付出现极端异常情况时,他的处理方式,比如,当不可避免的出现接口调用失败,有可能是说用户付款成功了,然后最终你没有退,用户有损失,另外一个,就是说用户没有付款成功,但是你这边查询异常了,然后你刚刚给他退了,那么对公司来说是有损失,那你这边有什么办法来去保证最终这个公司的这个出入账是平衡的?
对于候选人自己的项目,他自己没想到的,作为面试官也需要引导他深入,挖一些坑,让他去探索,看这个人的深入思考能力如何;如果你的问题超过预期却又合理,那就会让人佩服。
但是这常常需要面试官快速洞察到项目中的关键点,对面试官自身的实力是一个很大的挑战,就需要面试官拿到简历时就思考项目的实现思路了~
面试过程中可以给予提示,但是提示也是分层的,根据提示的信息,最终给的分数也不同。如果发现面试者没思路,尽早换题,或询问面试者擅长的地方,有效考察能力。
如果面试者过于啰嗦,也可以提醒说重点,加快面试效率。
开放式问题可以有,但是不能太多,开发者持续迷茫,就会觉得你的面试水平低;
且就算是纯知识性的问题,也会有不同答案,比如对设计模式、设计原则的理解,初级工程师可能只会背出来,却说不出所以然,更别提在实际项目中应用,高级工程师则能结合自己的实际项目谈他的理解。