作者 | 梁唐

来源 | TechFlow(ID:techflow2019)

头图 |  CSDN 下载自东方IC

前两天的时候有一个同学在评论里问我,承志,如果你是面试官,你会问什么问题呢?

不得不说这是一个很好的问题,一千个人眼里有一千个哈姆雷特,同样,一千个面试官里面也有一千个面试标准和面试风格。首先说明,本文的内容只代表我个人的观点,大家辩证吸收。

无论是我之前作为面试官进行的面试,还是以后我将要进行的面试,我个人的面试流程主要分成三个部分。分别是算法题、机器学习基础以及理解题。实际上也不只是我,业内很多面试官基本上也都是这个流程。

算法题

算法题指的是算法数据结构这一块内容,这块能考察的东西非常多,即使排除掉竞赛当中的内容,也可以玩出花样来。业内的面试官在这个部分一般有两种风格,第一种是朴素风,也就是问的都是基础当中比较难的内容。比如让你手写归并排序、快速排序。

归并排序和快速排序虽然都是本科算法课当中有的东西,但难度还是比较大的,有能力在面试的时候用白板写出来并且基本上没有bug的都是牛人。如果此人还没有acm之类的算法竞赛的背景的话,那么可以肯定他的基础一定非常扎实,或者是进行了充分的面试准备。

第二种风格是思维题,比如选择一道LeetCode或者是codeforces当中的问题进行考察。一般面试官喜欢解法多样,既存在简单朴素方法,又存在需要缜密思考才能得到进阶解法的问题。候选人能答出什么样的解法,就说明了他处在什么样的档次。这种问题的解法一般也都是一些基础算法,比如two pointers或者是递归,你想不到一定不是因为你不知道这个算法,而是你理解不够深刻,或者是思维能力不够。

我个人在面试的时候一般会从易到难准备三道问题,根据最简单问题的回答情况来判断是否要给出最难的问题。比如一道裸题,一道基础题,和一道思维题。有时候为了防止候选人押题,我也会准备一道原创题。因为经常会遇到面试的时候候选人偷偷百度的情况。

机器学习基础

基础题主要指的是机器学习方面的基础,这一块问问题的风格也很多。有些人会喜欢由浅入深,你每回答出来一个问题,就继续追问你一个更深入的问题,直到你全部回答出来或者是回答不上来为止。还有些人会直接问你某一个领域的细节查看你的理解情况。

我个人喜欢两种方法联合起来使用,比如我可能会问你在机器学习领域你比较熟悉的模型有哪些。当候选人回答之后,我会让他自己选择一个他拿手的模型进行介绍。比如之前有一个哥们选了Kmeans,他把Kmeans说出来的时候就在我心里已经扣了点分了。说明他对于他当时提到的其他模型一定都不是非常自信,不然为啥选择最简单的Kmeans?

接着,他介绍Kmeans的原理倒是没有太多的问题,但是当我问他如何解决Kmeans效率较低的问题,有没有想法的时候,他直接告诉我没有想法。这说明了什么?说明他对于这些模型的原理只是浅尝辄止而已,并没有深入其中思考。就连最简单的Kmeans尚且如此,其他的模型更加就不用说了。

如果这一环节他答得不错的话,我可能会选择一些比较有挑战的问题追问一下。比如追问一下GBDT或者是XGboost模型的原理或者是一些细节。如果追问的内容也可以答出来,那么机器学习基础这一关就算是过了。

一般来说不会问太多深度学习相关的内容,可能会挑一些比较基础的问。比如解释一下神经网络梯度爆炸的原因以及解决的办法,以及候选人在这个领域做过的模型和事情等等。如果候选人之前没做过相关领域的话,问不出太多的东西来。比如如果他之前做的是NLP或者是CV,那么基本上没有相关性,可能只能挑一些有些感兴趣或者了解的问问了。

理解题

理解题问的理解是对行业或者是场景的理解,比如既然是推荐算法,那么肯定会问一问对方对推荐的理解。推荐算法究竟解决了什么问题,推荐算法的痛点是什么?我们怎么样来设计特征,在线学习怎么做?这一块内容更多地是交流而不是提问,听听对方的想法,看看他的理解有多深刻,有没有一些好的点子。

这一块属于开放性问题,相对比较机动,在面试当中的重要性占比也比较低,基本上可以理解成加分项。如果对方实在没什么想法或者是没什么经验的话,也可以不问,或者是问一些对方简历当中的内容来替代。

关于候选人简历当中的内容,如果比较相关的可能会多问一些,如果不怎么相关可能就大概了解一下,或者就不问了也可能。比如他之前有做过哪块内容比较让我感兴趣,或者是我们刚好做过或者即将要做,都会深入聊聊看。一方面了解一下对方的想法以及做法,一方面也可以从侧面看得出这个人的品质以及能力。

最后再聊下我的标准,算法题和机器学习这两块能够达到60分,没有其他扣分项的话,基本上我就会给过了。两项都能80分,我就会给A,如果其中还有一项能超过90分的话,我就会给A+。当然这个是校招以及社招普通工程师的标准,因为我实力有限,也只面过这个标准,对于更高level的面试会问什么,暂时了解还不多。如果有同学了解的话,欢迎在下方给我留言。

更多精彩推荐
☞1024程序员节重要议程曝光,开源技术英雄会聊开源“真心话”☞“我们的目标是取代物联网中的安卓” | 人物志
☞对话阿里云:开源与自研如何共处?
☞服!AI 让兵马俑“活”起来,颜值惊艳!
☞AI 还原康乾盛世三代皇帝的样貌,简直太太太好玩了!☞观点 | 回顾以太坊近期及中期扩容路线图,展望 rollup 作为中心的以太坊路线图
点分享点点赞点在看

如果我是推荐算法面试官,我会问哪些问题?相关推荐

  1. 知乎大V推荐!面试官6个灵魂拷问,原理+实战+视频+源码

    概述 想了很久怎么样可以让文章的标题不那么悲观,但是各种文案都在我脑海里面不断的被否定,要么是不那么抓眼球,要么是立意不匹配.最后想了想,这个标题是真的符合我最近的感悟. 希望看过文章,能有同感的朋友 ...

  2. 之前遇到一位老面试官,问我的问题真的有点东西

    这篇文章其实源于一次我的面试经历. 那次我面对是一位老面试官,真的很有东西. 那次面试我和他叨叨了两小时....我滴妈我嘴巴都干了真的. 他的提问都很有深度,可以说对我的学习之路有很大的帮助. 我记得 ...

  3. 面试官再问我如何保证 RocketMQ 不丢失消息,这回我笑了!

    0x00. 消息的发送流程 一条消息从生产到被消费,将会经历三个阶段: 生产阶段,Producer 新建消息,然后通过网络将消息投递给 MQ Broker 存储阶段,消息将会存储在 Broker 端磁 ...

  4. 几道 BAT 算法面试中经常问的「字符串」问题

    https://www.toutiao.com/a6675839856192520711/ String 作为最常见的编程语言类型之一,在算法面试中出现的频率极高. 1. 验证回文串 题目来源于 Le ...

  5. 99%的面试官都会问到的Java面试题

    转载自  99%的面试官都会问到的Java面试题 最近是招聘季,所谓金九银十,正是跳槽的好几节.今天,给大家整理了一些Java面试常考的经典题目,我们一道一道来分析一下. 经典面试题 1.谈谈你对 J ...

  6. 面试官都会问的Mybatis面试题,你会这样回答吗?

    一.概述 面试,难还是不难?取决于面试者的底蕴(气场+技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想上的碰撞和博弈.其实你只需要搞清楚一个逻辑:"面试 ...

  7. 二面京东,面试官直接问我JVM,我心里一阵暗爽~

    二面京东,面试官直接问我JVM,我心里一阵暗爽~简直了,hhhh 明人不说暗话,直接进入主题!!! 一.什么是JVM 二.JAVA代码编译和执行过程 类加载机制 类执行机制 三.JVM内存管理和垃圾回 ...

  8. 字节跳动面试官这样问消息队列:高可用、不重复消费、可靠传输、顺序消费、消息堆积,我整理了下

    写在前面 又到了年底跳槽高峰季,很多小伙伴出去面试时,不少面试官都会问到消息队列的问题,不少小伙伴回答的不是很完美,有些小伙伴是心里知道答案,嘴上却没有很好的表达出来,究其根本原因,还是对相关的知识点 ...

  9. 初入职场-面试官都会问些什么?(结尾附视频)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

最新文章

  1. java中重载与重写的区别
  2. Linux安装软件时缺少依赖包的简单较完美解决方法!
  3. IDEA工具Terminal使用git log中文乱码的解决方法
  4. 人脸识别屡遭非议,会成为“潘多拉魔盒”吗?
  5. Dijkstra模板(java)
  6. 智能家居 (3) ——智能家居工厂模式介绍实现继电器控制灯
  7. python 多个列表_Python同时迭代多个列表
  8. 大家都在用并发,小编带你了解并发的背景
  9. 一本通1586【 例 2】数字游戏
  10. JS获取浏览器高度、屏幕高度、宽屏
  11. java nekohtml,java – Spring Boot和Thymeleaf Neko HTML错误
  12. 颜色模型与颜色应用---标准基色和色度图
  13. ANSYS workbench 有限元分析 学习
  14. Postman 接口神器
  15. react 组件 进阶之 ref (ts 版本)
  16. 解决IDEA提交代码时提示“Performing Code Analysis...”
  17. chrome扩展-打造个性化的web页面
  18. 点到超平面距离的原理推导
  19. 【selenium 】chrome的浏览器,headless模式下不能下载文件
  20. 【Pandas总结】第六节 Pandas 添加列

热门文章

  1. 敏捷开发般若敏捷系列之九:敏捷开发与本能反应
  2. c++并发编程基础(一):并发、并行域多线程
  3. CentOS7 安装git服务器
  4. android tab之间滑动切换界面功能
  5. MVC3学习第六章 排山倒海第二变----使用 Entity Framework Code-First 进行数据访问
  6. 使用sklearn PCA主成分分析对图像特征进行降维
  7. vue前台导出zip文件_在Vue.js中使用JSZip实现在前端解压文件的方法_心病_前端开发者...
  8. 如何在钉钉上开发自己的应用_快速上手——钉钉H5微应用开发接入
  9. yolov5安装pip install requirements.txt,pycocotools安装报错
  10. 代码整洁之道的一些总结