注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
之前发的how to cracking the data challenge得到大家好评,很多战友们发来站内信询问如何准备面试。于是再接再厉,把自己的经验总结出来,造福更多的战友们! ..
先说一下自己的情况,我自己是转专业的,没有相关的学位,国内学校普通,国外更是3流大学读的研究生,年纪还比较大,资质普通的不能再普通的普通人。但是我比较善于总结,比较有耐心(其实就是挂的太多了)。说这些就是希望鼓励那些转专业没有啥信心的同学们,我这么不利的情况下都可以做到,相信只要你不放弃,有策略的去准备,最后一定能有个好结果的。
这次我主要想总结一下如何准备data science analytics interview,重点会放在大家都头疼的case interview上面。
其实思路跟我写的那篇如何准备data challenge差不多,首先你要先明确目标。data science有很多track:analytics, inference, machine learning。很多同学在面试初期犯的错误就是:只要是个ds职位就去面,但是并没有考虑到自身的情况,你适合什么职位,有多少时间准备。每个人精力有限,这里的每个方向准备的东西都不太一样,都准备的很细真心没那么多时间。那么大家会说了:我没啥工作经验,也不知道自己适合什么职位。这个时候可以在面试初期多试试不同的职位,如果你面了3家类似的职位,感觉问题很难,一面就挂了,说明你自己准备不够,或者这个职位不适合你。我在面试初期也犯了这种错误,面了很多ml职位,还有混到on site的,结果都是被一通虐。我自己还是准备了一些ml的东西。发现很多基础的东西都不懂,问的深入了就不行了。后来主攻analytics方向,基本所有的都能到on site阶段了,这个时候就离拿到offer不远了。我想说的就是,找准一个方向准备,往最深最细的方向去准备。这里给大家科普一下data science的整个life cycle,airbnb的这篇文章介绍的很好:https://medium.com/airbnb-engineering/at-airbnb-data-science-belongs-everywhere-917250c6beba
.. 假设你的目标就是analytics方向,你要准备的顺序或者花的时间应该是这样:sql/r/python+case study > experiment design > machine learning。所以重点就是sql+case study。我下面就把这三个主题应该如何准备给大家说一下,重点还是放在case study上面
SQL/PYTHON/R: 这里主要就是考察data munipulation,你能不能把复杂的逻辑转换到代码执行上面。
SQL:sql我暂时没有看到特别好的资料,觉得最有用的还是地里的面经。如果真的一点都不懂的话,可以看看w3 school上面的题目,再把leetcode上面database的题目练习一下就行。最后面试前还是得刷面经,重点是逻辑一定要清楚,边缘case考虑到。我遇到的sql常考的有:各种join, union/except/intersect, 各种aggregate function(sum, ncount, average), case when, windows function(lag, lead, rank)。把我说的这几个都懂明白了怎么用,应该应付一般的sql没啥问题。不过sql很多时候都是逻辑比较复杂,真正写起来并不复杂,这种只能靠多见题目了,没有啥捷径 Python/R: 我主要用python,考的题目无外乎就是把sql题目再用python写一遍,基本都是用pandas来写。如果对pandas不太熟悉,可以看看kaggle上面别人用python写的代码,主要看他们如何做data munipulation那块。另外对基本的数据结构也要了解,比如什么是list, tuple, set, dictionary。各大网站都有很多python的公开课,有时间就自己去上上吧,毕竟打好基础挺重要的。实在没时间就把kaggle别人写的代码弄明白了就够用了
Case study: 重中之重!这块有点像咨询公司的case interview,也是考察能不能把问题break down,能不能发散把各种情况想的比较全面。不同的是,我们ds面case interview,更关注从数据的角度去解决问题,从用户使用产品的life cycle出发去定义metrics。但是我还是建议去看一下咨询公司面试题目,学习一下他们答题的stucture,如何跟面试官保持一个很愉快 conversation。这里推荐Victor Cheng的case study interview, 可以从喜马拉雅fm里面听,很适合上下班的时候听:http://www.ximalaya.com/5269453/album/6414597?feed=reset。 下面我来总结一下典型的case study常见题目以及答题思路。这类问题并没有一个统一的答案,只要是合理的就可以。
Diagnostic problem: 这类问题通常是发现某个kpi某天突然下降了,该咋办?这类问题就是考察你能不能把一个business问题一步一步的break down,找到问题所在。一般的思路都是先从数据搜集的是否正确,是否这个kpi有seasonality,这个kpi有哪些不同的segment,等等这几点出发。举个最简单的例子:某社交网络发现用户使用likes的功能今天突然下降了10%,你觉得是为啥?首先你可以问面试官,咱们的数据搜集的正确与否,这个功能是不是有seasonality, 是不是今天有个speicial events发生(比如自然灾害,大家都断网了)。切记要keep this as a conversation,不要你一个劲儿的在那里说说说。根据面试官给你的引导,下一步就是如何break down, 你可以先说,likes下降了是指哪个部分下降了,有friends post, pages, or events。你还可以从另外一个角度break down,比如是哪个地区的likes下降了。记住,understand the context is very important!。不要先急着答题,要先把数据的背景了解清楚。基本你把背景了解清楚了,也就找到了问题所在了。 How to measure the success of a new product/feature: 这类问题一般就是我想改变或者增加一个产品的功能,如何衡量是不是成功了。这种问题的思路一般都是先搞清楚产品的目标是什么,你可以问面试官:what is the goal of this product? 从目标出发,先定义衡量的metrics,然后就是做实验了,根据实验结果来判断是否成功。在定义metrics的时候要想的全,哪些metrics对你的目标是最重要的,另外 您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 使用VIP即刻解锁阅读权限或查看其他获取积分的方式 游客,您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 VIP即刻解锁阅读权限 或 查看其他获取积分的方式就会问你为啥选这个模型,如何评价模型好坏,这个模型的优缺点是啥这种非常标准化的问题,如果是classification problem,他们会问如何决定false positive or false negative重要。其实这个时候还是要结合产品来说。比如某信用卡fraud detection产品,那么减小false posititive就比较重要,因为如果你的false positive rate太高了,很多不应该被decline的人都被decline了,大家就不会用你的产品了。反之如果是癌症detection模型,那么false negtive就比较重要了,因为本来人家得了绝症,但是你没有发现,结果延误了治疗。这个知乎帖子总结了ml常见问题,对于面analytics,甚至inference track来说,都足够了。链接在这里:https://www.zhihu.com/question/62482926/answer/210531386?from=timeline&isappinstalled=0
最后对于转专业的同学来说,如果有时间精力跟金钱,还是可以考虑读一个data science相关的master program。湾区的同学推荐Master in Data Science from University of San Francisco。这个项目只有一年,强度很大,但是期间负责安排实习工作,毕业的人都能找到不错的工作,就算一开始是个不知名小公司,但是一年后都纷纷跳到了大公司。对于Ph.D的同学,可以考虑去个boot camp,首推insights data science,这个bar很高,但是只要进去了,工作都找的非常好,很多公司比如facebook ,airbnb等都跟他们有合作项目的,很多都是直接on site。
吐血总结了这么多,就是希望能够帮助更多的同学,尤其是转行的同学找到理想的工作。虽然ds这行比较杂,涉及多学科,不好准备。但是其实都是有套路可循的。还是多总结,多跟别人讨论。希望我的这点总结能够对大家有点指导意义。
|