作为一个过来人,分享一点我的经验。

先介绍一下自己,本人是国内读的数学本科,北美top统计系硕士毕业,之后在FLAG之一的总部核心部门做数据科学家。期间面试过20-30名candidate。

想要找到称心的工作,需要知己知彼,了解公司对候选人的需求。

数据挖掘类的工作近期无论是在国内还是北美,都非常炙手可热,对于候选人的要求也相应地水涨船高。以我司为例,基本只招统计博士,不过非常优秀的统计硕士或不相关专业的博士也有少部分,本科生不招,对硕士的要求已经越来越高。从公司的角度来说,工作内容其实并不需要掌握这么多统计或机器学习的知识点,往往是在一个比较小的分支进行深入钻研(例如广告组的数据科学家可能需要优化CTR预测模型的一小部分,但是需要对这一部分非常了解)。我了解的一些(包括其他公司)组的工作内容甚至不需要进行太多数学建模或编程,以data insight为主,用到最多的是Hive/SQL。之所以公司的简历和面试越来越严格,有很大一部分原因是供过于求。大量专业的毕业生都对数据挖掘类的工作非常感兴趣,而实际上数据挖掘相对比较容易上手,所以求职者的数量远远大于公司的opening。

当然,作为一名job seeker,既然现实就是越来越严格的简历筛选和越来越难的面试,那么能做的就是想办法让自己能够从众多求职者中脱颖而出,尽可能地提升自己综合实力。一是要让自己的简历能够stand out, 二是面试中的表现。

关于简历

关于简历,最重要的一点就是在一页纸上展现你能为这个公司这个职位做贡献的最突出的technical skills。数据科学家的简历属于technical resume,与普通的简历不同,要更突出自己的technical skills。大家可以多和有工作经验的数据科学教聊一聊,这样能更快地了解到业界所需和自己的不足,也能将自己的简历润色得更加贴近业界要求。具体可以参照http://www.dscademy.com/interview/resume.php 这个模板打造自己的简历。

面试策略

很多面试者在onsite面试中的每轮都没有太大的不足,该回答的问题都答了出来,却没有如期拿到offer。这样的面试者不为少数,也正因此无法impress面试官。例如我自己当时面试的时候,自认为有两轮都答得很一般,甚至有一些失误,但是在某一轮中,我有一道问题的反应极快,很明显感觉到面试官被impress了。当然,这样的机会可遇不可求,可以做的就是提高自己的实力,hope for the best。

Behavior question

Behavior question一般比较随机,最常见也是最重要的behavior questions就是你的简历。比如,我见到过有些candidate在前一两年full time工作的时候频繁跳槽,有的做了几个月就跳下一家,如果在简历上看到这样的经历,我也会顺便问一下为什么,因为我的concern是你会不会来我这里做了几个月也跑了,如果有类似经历记得准备好如何回答。

除了简历,谈论薪资(what’s your expected salary)也常常是behavior questions被问频率很高的问题。

避免常见误区

很多公司的评分体系要求对于候选人进行全方位的评估,例如对于统计水平、编程水平、口头交流能力、业界经验都需要给出评价。因此要注意避免以下误区:只注重理论水平,不进行实际编程和项目;只注重技术,不与人打交道;只知道书本上的内容,不去了解业界的情况。相信如果已经面试过几家公司,你会发现在你介绍自己的课程作业和项目,甚至是Kaggle项目的时候,面试官都会告诉你,我们公司里面真的做的时候,数据量远大于这些项目,而且会有很多Kaggle项目和课程作业中没有的data problem,例如大量数据缺失、特征如何选择,甚至很多时候需要自己写程序提取新的特征。当然作为毕业生,面试官不可能要求你有太多这方面的经验,但是跟有工作经验的学长学姐了解一下,会提高你对业界问题的理解,是个huge plus。

另一个有效的了解业界项目的方法是寻找相关的实习机会。即使是只有两个月的相关实习,都会对面试乃至将来的工作非常有帮助。如果能找到一份相关的实习,除了对于简历有帮助,还能在面试中让面试官跟你有的可聊,并且可以让你的表现更上一层楼。我有的时候会遇到题目出得不太难或候选人较强,候选人提前做完了所有的题目。当然这是一个好的迹象,表明这轮面试比较顺利,但是此时面试官总得找点话题防止尬聊,比如我会选择深挖候选人的实习经历或者即兴问一些工作中会遇到的问题看看候选人的反应。有一些候选人的technical skill非常强,但是说不清楚实习经历甚至是让我感觉简历造假,这样就非常尴尬了。如果对于我的即兴问题对方支支吾吾,给我的感觉就是这位候选人是背答案型选手,并不一定真的理解数据挖掘或者有实际数据挖掘经验。大家都是过来人,知道候选人都刷题,我作为候选人面试别的公司的时候一位面试官对我印象不错,跟我说你应该能进,刷题刷得很好。不是说不要刷题,而是说不能只会刷题,也需要沟通和业务理解。当然还有一些personality方面的因素,例如是否自信、是否对数据挖掘领域有热情等等,经验丰富的面试官对于这些都能感觉得出来,也很难伪装。

面试的时候遇到做过的题怎么办?我们建议如果是一看就很有名的题不妨大方承认自己见到过,例如见到two sum,然后假装冥思苦想就没意思了,反而让人觉得不够诚实。如果面试官听到你见过,可能有两种反应,一种是那我们换一道,另一种就是没关系,告诉我你怎么想。如果是第一种,固然承担了遇到不会做的难题的风险,但是至少能让面试官觉得你很诚实,是个好印象。如果是第二种,那么就是你表现的机会了,即使是做过的题目,能够很快地写出bug free code并且给出清晰的解释,就是很优秀的表现了。还有一种情况就是这道题不算特别常见,例如leetcode上周周赛刚好做到,那么就没必要承认了,不然如果你leetcode刷完了跑去面试每道题都说见过,那面试官心里就一万匹神兽在奔腾了。这时候需要演一下自己没见过,但是不能演过头。例如你不能苦思冥想10分钟什么话都不说,然后突然“真相只有一个”开始在白板上写。你需要和面试官交流,首先给出很快能想到的brute force解法,但是不需要写代码,然后逐步改进,遇到比较难的坎可以让面试官给点提示。

面试千万不要闷头想问题,要和面试官进行交流。真的卡住的时候可以要提示,因为有提示下做出来好于做不出来。一般比较nice的面试官都是会给提示的。遇到完全不懂的领域,可以大方承认不太了解。我在面试的时候遇到过问我网络协议的,我就表示完全不懂这些,不过计划下学期选个课之类的,对方就换了一道题,最后也拿到了不错的offer。很多面试官的理念不是用面试来卡你,而是用面试来了解你,因此要扬长避短。

我们分为机器学习、统计、优化、编程、业界经验、自我介绍五个部分介绍面试的准备工作。

机器学习

Coursera上Andrew Ng开的machine learning是最经典的机器学习入门,另外建议把斯坦福的CS229包括作业都做一下。这门课的编程是MatLab,但是在实现过程中需要想清楚机器学习算法的数学部分,因此是个很好的训练。斯坦福CS229的好处是非常系统化,如果能够理解这里面的全部内容不但对机器学习有个大概认识,对其中每一个小部分都能比较solid,面试中不会出现类似于”Logistic Regression我大概知道思路,但是不知道具体的损失函数是什么,梯度怎么推导”的情况。此外,建议进行一定的编程练习,最好熟练掌握Python的sklearn用法。

Coursera machine learning: https://www.coursera.org/learn/machine-learning

斯坦福CS229: http://cs229.stanford.edu/

机器学习的理论和实践总结: http://www.dscademy.com/#machine_learning

统计

需要回顾一下参数估计/点估计、置信区间、假设检验的知识点。对于没有系统性上过统计课的同学会比较challenging。建议找一本统计的教科书看一下。重点在于t检验、卡方检验等。

有些公司面试会问一些概率论的问题,可以在网上收集一些面试题,推荐Introduction to Quantitative Finance这本书。

概率和统计总结: http://www.dscademy.com/#probability_and_statistics

概率论练习题: http://www.dscademy.com/probability-theory/problems/

假设检验练习题: http://www.dscademy.com/hypothesis-testing/problems/

优化

可能会有人推荐斯坦福大学的凸优化课程。个人认为是overkill了,这门课内容较为全面,远超过了面试和工作需要了解的。一般来说,对于梯度下降的各种变体之间的tradeoff有所了解即可,最好熟悉一下牛顿迭代,简单了解拟牛顿法(如L-BFGS等)的原理和motivation。

凸优化总结: http://www.dscademy.com/#optimization

编程

数据挖掘类工作的coding要求不同于software engineer类工作。Leetcode上的前150题足矣。建议从easy刷起,medium都要会,hard可以不刷或者直接看思路不写代码。语言的话用Python即可。另外SQL需要掌握,一般准备两三天就足够了。如果你熟悉R的话,那么Python可选,建议熟悉一下业界常用的dplyr库中的select, aggregate等操作。

Python、SQL、Spark教程: http://www.dscademy.com/#programming

算法练习题: http://www.dscademy.com/algorithms/problems/

Leetcode: https://leetcode.com/

业界经验

如果有实习经验,那么就应该已经对业界的实践有所了解。否则的话,可以多与身边已经工作的小伙伴进行不透露公司机密的交流。

当然,不需要了解业界的所有部分,但是需要知道大厂的数据都是远远大于平时的作业和项目的。如果掌握Hadoop、Spark、Hive等会比较好,也是简历上的plus。对于A/B test要有基本的理解。

另外,做一些Kaggle上的项目有诸多好处:首先能为你的简历添加一些内容;Kaggle竞赛往往需要对数据进行很多exploratory data analysis,并且深挖数据,是非常实用的技能;增加不少写代码的经验和对建模流程的了解;为了获得较高的ranking, 需要进行大量的调参和error analysis;讨论区有很多大牛分享的方法和代码可供学习;面试的时候多一个谈资。

A/B检验的介绍: http://www.dscademy.com/hypothesis-testing/t-test/

Spark练习题: http://www.dscademy.com/languages/spark/problems/

搜索引擎和推荐系统: http://www.dscademy.com/#applications

Kaggle比赛: https://www.kaggle.com/competitions

自我介绍

一般面试都会以Tell me about yourself或者Can you walk me through your resume开始,面试官希望你在半分钟到一分钟之内简短地突出自己的优点,也就是我们所说的Elevator pitches。一般的模板是我是谁->我以前做过什么->我有什么值得一提的成就和technical skills->我为什么感兴趣这个职位以及为什么我能胜任这个职位。每个人都是独特的,要根据自身情况量身打造属于自己的自我介绍才能吸引面试官眼球。

由于篇幅有限,每一个板块具体的介绍将会在我们的网站上一一详解。

欢迎大家关注我们为数据科学家的job seeker准备的网站http://www.dscademy.com

我们团队的微信公众号WechatID: us_datascience

这里有全面的数据科学知识点总结、面试技巧和论坛。欢迎转载本文,并向身边的小伙伴推广我们的网站。

相信能在大家找工作的道路上给予不小的帮助。

机器学习算法工程师面试学习经验相关推荐

  1. 机器学习算法工程师面试集锦(更新中)

    机器学习算法工程师面试集锦(更新中) 面试问题汇总 常用的损失函数 介绍交叉验证 特征选择方法 机器学习项目的一般步骤 经验风险最小化与结构风险最小化 训练决策树时的参数是什么 在决策树的节点处分割标 ...

  2. 机器学习算法工程师面试知识点汇总

    机器学习算法工程师面试知识点汇总 机器学习 梯度下降 k-means 1 × 1卷积核 模型 SVM Bagging & Boosting 随机森林 激活函数 Sigmod tanh ReLU ...

  3. 机器学习-算法工程师 -面试/笔试准备-重要知识点梳理

    原文地址:http://blog.csdn.net/lrs1353281004/article/details/79529818 整理了一下机器学习-算法工程师需要掌握的机器学习基本知识点,并附上了网 ...

  4. 【2020秋招】提前批陌陌机器学习算法工程师面试经验

    铺垫 时间:9.2日中午1点钟 地点:西工大翱翔会议中心(一开始去成翱翔训练馆了= =,绕着西工大走了一大圈) 形式:现场面试,如果顺利的话,会有2-3轮技术面试,1轮HR面试,HR小哥哥不错. 面试 ...

  5. 机器学习算法工程师面试总结

    转自北邮人论坛 2017年即将过去,今年是忙碌的一年,从2月17还没开学就来学校,到现在12月初,工作的事情终于尘埃落定,现将这一段经历写下来,希望能帮助来年找工作的学弟学妹,同时,对自己来说,也是一 ...

  6. 机器学习算法工程师面试总结(基于个人简历自用)

    机器学习 回归和分类的相同点和不同点? 相同点:都是对输入做预测,属于有监督学习. 不同点:输出不同.目的不同.结果不同. 分类的输出是离散的.是所属类别.是定性的,回归的输出是连续的.是值.是定量的 ...

  7. 华为车BU机器学习算法工程师面试经验

    作者:Klause 来源:投稿 编辑:学姐 首先是机考 机考一共600分,三道题.一道100分,一道200分,一道300分.只要拿够一百分就算过. 第1题:数组 给定一个数组,数组各个元素代表每个礼物 ...

  8. 机器学习算法工程师面试经验谈:以个性化推荐算法为例

    向AI转型的程序员都关注了这个号

  9. kmeans聚类算法_机器学习/算法校招面试考点汇总(附面试题和答案)【持续更新】_笔经面经...

    以下不作为机器学习/算法工程师的学习路径,只是汇总的校招机器学习/算法工程师面试考点(因为还有笔试考点,后面结合在一起给大家学习路径),后续会为大家更新10w+字数的机器学习/算法工程师校招面试题库, ...

最新文章

  1. QIIME 2教程. 10数据导出ExportingData(2021.2)
  2. centos7最小安装没有 ifconfig netstat 命令
  3. SNMP协议简要教程
  4. 1036 Boys vs Girls (25 分)_27行代码AC
  5. 一口气搞懂「链表」,就靠这20+张图了
  6. 常量池在堆还是方法区_详解Java 虚拟机(第③篇)——String 类和常量池
  7. 黑客攻防技术宝典Web实战篇第2版—第4章 解析应用程序
  8. gradle 编译java配置文件_java – 如何在编译时使gradle使用正确的JDK?
  9. Oracle 初始化参数文件pfile和spfile
  10. Redhat as 4 中创建 LVM 逻辑卷
  11. VS 2003/VS 2005 迅雷资源下载网址
  12. java .jar怎么打开_详解jar文件怎么打开
  13. linux之fstab文件详解
  14. 尚雯婕演唱会上变芭比娃娃
  15. 仿QQ和飞秋并支持语音视频白板屏幕共享的即时聊天软件
  16. ftl模板导出excel_freemarker导出Excel
  17. 华为路由器联动_老旧空调不用拆,95块入手华为智选空调伴侣,秒变智能空调透心凉...
  18. stm32驱动Lora串口模块
  19. Win10 固定IP地址方法
  20. MySQL连接报ERROR 2003(HY000) Can‘t connect to MySQL server on ‘xxxIP‘(113)

热门文章

  1. redis从db0迁移数据至db1
  2. Googlenet v1、v2、v3、v4区别
  3. Android5.1 -Recents分析
  4. 巴黎出差及场测攻略V1.3
  5. Spark RDD与Partion
  6. HbuildX H5+App监听手机返回键以及webview关闭
  7. 字节跳动教育业务怎么样_听说字节跳动教育线已经投入了不少,好像效果不咋样[笑哭]…...
  8. 1-23 Socket编程
  9. 微机原理与接口技术:并行接口
  10. Codeforces 1633 E. Spanning Tree Queries ——暴力,kruskal,思维