王喆
王喆在《算法工程师必须要知道的面试技能雷达图》中提到如何面试算法候选人,从下面4个方面去考察:
- 知识:主要是指你对machine learning相关知识和理论的储备
- 工具:将你的machine learning知识应用于实际业务的工具
- 逻辑:你的举一反三的能力,你解决问题的条理性,你发散思维的能力,你的聪明程度
- 业务:深入理解所在行业的商业模式,从业务中发现motivation并进而改进模型算法的能力
明白了这四个方面之后,再从深度去考察候选人这4个方面的的能力;如果深度够的话,再去考察广度,如果广度也满足需求,这轮面试就算通过了。
在NLP相关的面试里面,这四项又该如何定义?
- 知识:对machine learning和NLP相关理论储备
- 工具:深度学习框架,numpy,pandas,java和python,shell
- 逻辑:编程题,一些有深度的知识点
- 业务:候选人的项目,为什么如何设计模型;或者自己设计一些题
总结
在58这段时间,面试过一些候选人,有实习生,也有社招,有职位高水平差,也有非常牛的。自己在面试的过程中,也尝试总结一些东西,如何去面试一个候选人。
最开始的时候,我面试只面试一些知识点,考察候选人对这些知识点的掌握程度,然后能回答出超过2/3的内容就算通过。因为他们知识体系中,有很多知识点我并不熟悉,这样只是部分考察了他们知识,工具和逻辑的深度。这种面试是非常浅的,对于他们业务的考察较弱。
后续我增加了对业务的考察,这一块主要是通过对候选人做过的项目进行提问,项目的提问主要是围绕下属几点:
- 数据集。如果是新项目,问下冷启动问题。
- 模型结构,损失函数。(中间穿插问下,项目中用到的技术点)
- 效果如何,如何进行评测的。
- 数据如何迭代的。
- 训练中可能遇到的问题。(需要做过类似的项目,对这类项目能比较熟悉)
- 有没有尝试过其他方案。
上述的考察不仅考察了业务,同时也考察到了知识,工具和逻辑,是一种比较合理的考察方式。
同时我也给自己留下一些思考的问题。
- 对不同层次的候选人,要求的区别是什么?
- 自己也要有足够的深度才能去面试候选人。也要建立相应的广度,然后把广度拓深。
- 面对自己生疏的领域,怎么处理?
网友评论