北大数院学长对转行机器学习/算法同学的建议

经验分享人背景:北大数院统计专业毕业,之前在某大公司做算法方面的工作,面试过不少人

 

有不少学弟学妹找我咨询过机器学习/算法方面的求职,其中不乏不是数学、统计、或计算机出身的同学。虽然我们北大的同学在简历筛选流程中优势较大,算法岗的面试难度着实不小,尤其是对于非科班出身的同学来讲。主要有以下方面:

第一,数学基础欠缺。我和同事在面试的时候都喜欢问一些比较基本(不代表简单)的机器学习算法的数学理论,常见的比如:Logistic回归的损失函数和梯度分别是多少、SVM的数学推导、GBDT回归的梯度代表什么?一些不需要很强计算能力,但是很考验功底的概率论小题我的一些同事也非常喜欢问,比如:如何生成概率为pi/4的事件?这些问题普遍都是会的人觉得很简单,不会的人觉得很难。因此非常建议大家掌握机器学习的算法的具体原理,最好手动推导过这些算法的数学部分,而不是走马观花地看一遍。相信大家都有体会,看答案总觉得不难,但是自己不一定能想到。当然数学基础好的同学可以自动忽略这条建议。概率论的话短期提高不容易也不经济,建议靠刷题,前提是要理解而不是死背。机器学习算法推荐Andrew Ng在Stanford开的CS229,网上资料都有,比coursera上的入门课要清楚得多。概率论的话可以参考这个我同学写的网站的题库:概率论练习

LionKing数据科学专栏​www.dscademy.com

 

第二,算法底子薄。大家应该都上过计概和数算吧,但是真正学好的应该是少数。算法岗对于算法的要求虽然比不上更加工程的码农,但是对于基本的数据结构和算法还是要求要会的。之前看到一个段子是一个面试官对求职者说“虽然你也不算太强,但是我好不容易面到一个会写动态规划的,就给你offer了吧”。其实就我个人的面试经历而言,很多求职者基本不会写程序,可能只是sklearn、tensorflow、pyspark掉包侠。检查自己是否够格的一个rule of thumb就是看自己是不是Leetcode Medium难度的题基本没问题。像BFS、DFS、DP还有树、链表、数组的各种常见题都需要掌握,不求深但求广。如果完全没有方向就直接挂掉了,但是如果能蹦出个名词至少面试官还能给你点引导也许就能搞定了。不求Leetcode刷光,但是一定要写一些代码,而不是纯看别人代码。道理类似数学要自己推导。如果时间非常紧张,建议优先刷高频题或面经,剩下的题只看想法不写代码。

第三,没有insight。要知道,在实际工作中,70%靠业务理解,30%靠技术。因此我们在选拔的时候,非常希望求职者能够对于我们的业务有一些自己的理解,有相关实习经验更佳。例如我是在广告组,那么至少是期待求职者知道CTR是什么意思的,不然可能准备的关于CTR预测的面试题要先背景介绍了。我认识的搜索组的同事问算法题喜欢让大家写个intersection of two arrays,但是包装在inverted index的背景下,如果不了解搜索引擎的基本原理那么就连题目都看不懂。网上能找到的资料确实比业界落后了不知道几年,但是依旧是很有价值的。如果对搜索引擎的原理感兴趣可以看一下Stanford开的CS276材料,介绍得还算全面。我同学的网站上也有比较精简的介绍:搜索引擎原理介绍

LionKing数据科学专栏​www.dscademy.com图标

推荐系统也是一个很火的方向,给大家推荐几个链接:

推荐系统介绍:

LionKing数据科学专栏​www.dscademy.com

 

Stanford推荐系统材料 :

http://infolab.stanford.edu/~ullman/mmds/ch9.pdf​infolab.stanford.edu

 

第四,实际动手能力弱。有一些童鞋可能并没有特别好的实习经历,也许只有个应用多元统计的课程项目这种数据量小到夸张,或者是MatLab做的本研之类的。这些项目不能说没有价值,但是从我们业界角度,确实都是toy project。虽然并没有期望一个应届毕业生一入职就能上手,但是还是非常希望有过大数据工具的经验和一些编程经验。如果实在没有机会可以做个Kaggle项目,虽然老套,但是有用。SQL、Spark这些至少写几个小程序也会很有帮助。我见过很厉害的数院学弟,SQL根本没写过,一问三不知。其实这些只是上手的话都一两天就够了。SQL推荐一些讲解、刷题的地方: 基本SQL

LionKing数据科学专栏​www.dscademy.com

 

Spark的话比较少,可以看这个教程: Spark教程

LionKing数据科学专栏​www.dscademy.com

 

还有一个建议就是要对症下药。要好好准备一个几乎是必考却很容易被忽视的问题: “你有什么问题要问我的吗?”这个问题如果问得有新意会是很好的加分点。我遇到过的一部分求职者一看就都不知道我们组是干什么的,也感觉不到对我们组有特别的兴趣。一些负面教材例如,“没什么问题”,“你都几点下班啊”,“你们的新人培养方案是怎样?”这些问题算是中规中矩,可能确实是会影响你的决定和将来工作体验的问题。但是站在面试官的角度,这些问题跟我们组没有太直接的关系,而且其实是过了面试之后适合跟HR讨论的问题。最好能体现出强烈的对该组的业务有兴趣,可以了解一下这个组的业务和需要的技能,问一下这个组有什么计划之类的(有一些面试官不喜欢这个问题,而且这个问题比较适合manager round问)。比如明天要去面B的搜索部门了,那么多看看搜索引擎的内容,多看看B的最新面经。临时抱佛脚往往还是很有用的,因为记忆比较新。当年本科期末考试不也都是这么过来的哈哈。有一个技巧是在电话面试的时候了解这个组的业务,那么在onsite面试前特意了解这个业务的相关业界知识,就解决了之前提到的没有insight的问题。

希望学长的这些建议对大家有帮助。

更全面的面试真题见http://www.dscademy.com/problems.php?from=zhihupku

 

转载于:https://my.oschina.net/jjyuangu/blog/3085918

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值