查看原文
其他

谈中小企业算法岗面试

louwill 机器学习实验室 2021-09-05

机器学习面试

Author:louwill

Machine Learning Lab

    

去年年底开始到现在,在算法岗上累计面了三四十人。作为面试官,在与候选人的交互过程中,也学到了不少东西,逐渐形成了个人的一套考察候选人算法能力的思路。

我本身在一家中小企业,虽然对大厂算法岗面试也略有了解,但毕竟不在大厂,所以本文仅以中小企业算法岗的角度来谈谈算法面试。

本文说的算法岗一般都是指AI算法岗,即使是AI算法,这也是一个范围很广的方向。每家公司做的业务和领域不一样,对应到算法岗也都不一样,无论是结构化数据、视觉、文本和语音,还是传统的图像处理和路径规划,相关企业对应到招聘上都可以叫算法工程师,但实际上这些岗位干的事情都有天渊之别。这些都要在面试过程中都要根据候选人的自身背景区别对待。

虽然算法岗内部差异大,但考察的算法基本功都是不变的。为了能更好的考察候选人的算法功底,参考一些通用方式和个人经验,一般从以下几个方面来进行面试:
  • leetcode primary/medium 1道
  • 自我介绍
  • 挑个人觉得做的最好的一个项目说一遍(中间根据表述和细节进行询问)
  • 机器学习功底
  • 深度学习功底
  • 工程能力(一些开发工具的使用)

下面主要说一下这么安排算法面试的理由。

中小公司不像大厂,技术岗位面试都要好几轮,更有甚者像阿里这样的面试进度以月来算,对小公司来说时间成本太高。面完之后人事和管理层商量一下当天能定下来当天就发offer。

leetcode主要是针对应届生和三年经验以下的算法相关候选人。我们不像大厂那样给三道medium或者hard那样的题要求一小时内都写出来,但也不是完全不考。主要是机器学习理论偏多,很多人容易纸上谈兵,缺乏过硬的编程能力。

做完后进去会先让候选人做个自我介绍,重点看下候选人的口头表达能力。然后简单聊一下刚刚做的算法题,复杂度和优化方案都可以问。这一个环节可以大致看出候选人基本的数据结构和算法功底。

紧接着就是让候选人挑一个自我感觉做的做好的项目从头到尾说一遍,比如说他做了一个图像分割的项目,根据他的表述,中间可以插入各自细节,看他对项目的理解和知识深入程度怎么样。到这个环节结束基本上可以对候选人有一个大致的判断了。

前面环节主要以候选人主动表述为主,后面三个环节更多是面试官发问,考察的是候选人在机器学习、深度学习和工程能力三个方面的基本功。根据候选人的简历背景,一般机器学习、深度学习和工程能力会各挑三个问题进行考察,中间根据候选人的回答进行追问或者深入细节。比如对于一位有着电商机器学习背景的候选人,我可能会提出以下问题:

机器学习:
  • 决策树有哪些特征选择方式

  • XGBoost为什么要展开到二阶导数/当损失二阶不可导的时候怎么办

  • 如何处理不平衡数据分类


深度学习:
  • 梯度消失的概念、原因和解决方法

  • 1*1卷积的作用

  • CNN有哪些重要的结构设计


工程能力:
  • mysql

  • linux

  • c++


这样一整个流程下来,候选人的技术能力基本上就能确定了。每个人都有自己的知识盲区,实际面试中也会有意避免候选人不熟悉的知识点,一般一个方向第一个问题候选人说不熟悉之后后面都不会继续深入问这个方向了。所以对于候选人来说,一定要实事求是,尽量真诚一点,不懂装懂的后果就是面试官以为你很懂然后继续问的很深,到时候场面就很尴尬了。

面试本身是个交互过程,也是面试官和候选人相互了解和学习的过程,从认真准备面试到最终得到面试结果,如果双方都能以真诚的方式对待,无论候选人最终是否被录用,我相信对于双方都是一个提高。

总体来说中小企业面试和招聘没有那么多流程要走,整体较为迅速。对于卷不进大厂又想尽快入坑的同学来说,中小厂的算法岗会是一个不错的选择。

有相关问题的读者可加我微信聊。


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存