AB test等面经总结 - sophiekeke/casestudy GitHub Wiki

https://www.moonbbs.com/thread-3748725-1-1.html

分享经验总结:在家找到DS工作

分享下楼主2个月内全职在家找到DS工作的一些经验总结,工作日的时候平均每天花7个小时在准备,周末带娃没怎么复习了。希望能让大家少走弯路,节省时间,有个清晰的准备方向和提供些有用的资料。

介绍下背景:2年多的DS工作经验,主要做的analytics。现在正在FLAG中的某家team match,攒人品求一切顺利,求H1B名额能顺利转走并激活。找工作期间受到很多素不相识的同胞的帮助,希望大家团结起来,互相帮助。论坛不能上传资料,有兴趣的自己去一亩三分地下哈,不需要大米。 参考链接

这次找工作主要准备了下面5个方向:

  1. Product Sense
  2. SQL/Python
  3. Stats & Probability
  4. AB Test & Hypothesis Testing
  5. Machine Learning

第一轮复习

Product Sense

这部分需要很清楚各大公司的goal和盈利模式,他们看重的一些KPI,比如FB/Google主要靠广告收入,credit karma靠成功推荐信用卡,游戏公司根据是平台还是自主开发游戏关注的点又不一样了。熟悉各种metrics,对于一些问题能根据business goal提出最能衡量它的指标。 这类问题的套路一般就是问各种clarification question,不要自己assume(也有例外的公司,我有个onsite就问了面试官各种问题,被面试官说你要会自己assume呀,我们工作中不可能有人给你各种建议提示),然后明白business goal -> metrics -> hypothesis, like it will improve blah blah -> collecting data -> analysis data -> conclusion/suggestion

推荐书籍:

  • 《Cracking the PM Interview》
  • 《A Collection of Data Science Take-Home Challenges》里的 product questions部分
  • 一亩三分地的数据科学Analytics面试精选24题

SQL/Python

主要复习了SQL一些语法和常用的window function,然后在leetcode做了几道题,Python主要就是复习了pandas这个包,把一些常用的函数自己琢磨了遍。自己写了个文件,涵盖了我面试过程中遇到的所有问题了。都无偿分享给大家,攒人品中。还刷了Leetcode easy 和medium的算法题,主要是array, string部分。

这个帖子也很有帮助: How to Rewrite Your SQL Queries in Pandas and More

Stats & Probability

主要是把以前上的课拿出来复习了下,这部分主要考贝叶斯和全概率公式,有些公司会考正态分布二项分布,举个例子:比如投硬币,硬币次数投多了就根据大数定理正态分布啦,然后会问你下投的次数越多正态分布曲线怎么变化?还有投骰子。不会直接问你些概念性的东西,但是基本功要牢,问的时候能明白面试官想要考你什么。推荐个可汗学院的统计课,自己觉得挺不错的。还有个做题网站。 可汗学院统计课 Brilliant

AB Test & Hypothesis Testing

主要看了udacity这个,但是只能说这个是入门级的AB test,很基础但是也很重要,一定要看明白,不明白重复看直到明白了,然后就可以进入第二重境界啦,看高深的AB test。onsite面试过程中AB test环节会问的很深入,基本不会出现udaciy那么简单的问题。

AB test 一般的套路就是:understand business goal -> define metrics -> hypo -> design test plans, sample size? Duration? Regions for AB testing? -> launch experiment -> sanity check and analyze result -> conclusion/suggestion

推荐课程: Udacity AB Testing Course AB Testing Notes

Machine Learning

我平时不做模型,所以花了大部分时间在准备这块内容上。建议从linear regression开始准备,基本功一定要打牢,linear regression是最简单的machine learning模型,把这个看懂了后面的其他模型或者一些术语就会融会贯通。面试过程中会问些LR的assumption,logistic regression的loss function,maximum likelihood function,overfitting怎么办,不会直接问你regularization,但是会隐藏在其他问题里。

强烈推荐这个课程,老师讲的非常的清楚非常的好。 Coursera: Machine Learning - Regression

上完后可以上Andrew Ng的machine learning课程,推荐Coursera的这个,YouTube那个不大推荐,太花时间。建议认真看完这两个。 Coursera: Andrew Ng's Machine Learning

第二轮复习

Product Sense

主要就是看地里的面经和一些博客。还有自己开大开下脑洞。。。

AB Test & Hypothesis Testing

也是看博客了,你会发现AB test真的是水很深,比如control和test的samples size是90% 和10% 分布,同时测10个metric而不是一个,又要改什么?AB 测试需要注意的事项和assumption是什么? novelty effect是隐藏在这部分很重要的考点,怎么消除?违反了什么assumption?等等。加几个我平时看AB test的网站: Towards Data Science Medium Optimizely

这个帖子不错: A Summary of Udacity A/B Testing Course

Machine Learning

主要就是看面经了。自己也总结了些问题,希望能帮到大家,都无偿分享给大家了,攒人品。 面经总结

总结

最后就是建议大家python的pandas和leetcode得练习下,有些公司的技术面就是全程考leetcode算法(没要求bug free和最优解法,有时候会给你些follow up question让你不断优化),或者让我用python把SQL的解法写一遍,完全就是技术的,这个环节真正花在考AB test和product sense的时间不多。我5个onsite 有2个公司面了我算法,3个公司面到了用python把SQL写一遍,有些公司不会提前跟你说考什么。想要比别人做得更好,那只能是要多付出,做最好的准备。

还有回答问题一定要有条理,一步一步说,解释清楚,不要思维跳跃太快,你自己知道所有的细节,跳过了没觉得有什么问题,但是别人不知道,面试官跟不上会觉得你很难交流沟通,我挂掉的面试几乎都是同一个毛病,communication!一定不要忽略这些soft skills。

找工作的过程中,最重要的是心态一定要及时的摆正。这个过程非常的痛苦,道路是未知的,我自己也经常受不了的大哭,觉得自己怎么这么差劲,要找不到工作了,一直压力很大,不断怀疑自己。还有你投了很多的简历,却没有面试,有了面试,明明面的不错却没有onsite或者技术面被拒了,onsite也不错却被拒,或者onsite太晚了连备胎机会都没有。这并不代表你不行你不优秀,只能说运气不好。一般公司的DS坑很少,他们想要招有相关经验的人,有strong communication的candidate。还有你每轮面试其实都是备胎而已或者连备胎机会都没有,很多面着面着就收到position closed或者没有然后了之类的。心态一定要好,尽人事听天命。