背景
统计美硕,学校排名100+,在校期间做过两份实习,全职工作找了8个月,投了2500+简历,收到5份全职offer。
面试的ds工作主要分为modeling和analytics两个方向。
投简历
找工作最重要的事情就是投简历。毕竟,任凭你再厉害,recruiter看不到你的简历还是白搭。
我主要使用领英,双休日会刷一刷indeed,没时间只用领英我觉得也够了,只看过去24小时的工作。
这里有一个省时间的小技巧,如果找全职且要求sponsor,可以打开一亩三分地的visa tracker—h1b salaries输入公司名字去看有没有sponsor的记录,如果没有就不用投了。实习且不想return的话可以不考虑这一点。
EAD卡
建议大家提早申请opt即使没有offer,时间可以定在毕业后60天开始。
因为当你毕业了且EAD卡在手,这是你拿到offer最好的时候,会有大量的公司希望招一个尽快入职的员工,你与很多没收到卡的候选人相比,已经不战而胜了。
DS内卷
写这篇面经的其中一个目的是告诉大家,即使大家背景一般,身边人人喊卷的今天,只要踏踏实实的做好准备,还是很有可能成功上岸的,不仅仅是我自己,我身边也有背景普通的同学找到了工作。
个人不是很喜欢内卷这个词,觉得像是一种变相的抱怨。即使事实是卷的,然后呢?你的方案呢?要转码么?要回国做别的方向的工作么?还是踏踏实实努力抓住手中的机会?想好第二个问题可能对于解决困境更加重要。
Networking/informational interview
如果是本科生或者一早就打算进industry的phd可以做,如果时间不够长像是一两年的硕士,就不建议在这里花时间,我听从mentor的建议做了超过100个informational interview但说到后来大家的建议都比较雷同。
而且我们的目标是找到一份工作,我确实也听过通过这种方式找到工作的,但需要花费大量的时间成本,讲到底要通过面试还是要真本领,在校时间宝贵,等正式进入职场再积累人脉也不迟。
面试准备
以下是8个ds面试可能考到的方面,建议大家每次面试后参照这写点好好想想,是否还有哪个方面可以再提高。如果最后觉得问题都不大,那么你就已经离dream offer不远了。
1.Technical questions
这部分看起来繁杂,但其实都是基于解决ds的实际问题问出来的,所以我认为可以分为做一个ds project的三个阶段来准备
a.Preprocessing:
1)解决Missing value:imputation or delete
2)Outlie:可以用sorting或者Z-score+Boxplot来检验然后用capping或者是remove的方法来处理
3)Encoding:labeling encoding,one hot encoding
4)Feature selection:这个在建模前可以考虑Removing features with low variance(i.e.,Not informative);Univariate feature selection(i.e.,Chi Square test,F test,multual informational analysis);PCA;Business related;Stepwise。建模之后可以考虑L1 regression/regularized tree
b.Model Building:
常见的模型其实没有大家想象得多,大家准备一下这些足矣
logistic regression,linear regression,decision tree,Regression Tree,random forest,xgboost(gradient boost),Ada boost,SVM,KNN,Naive Bayes,K mean除了知道怎么用,我们还需要知道他们对应的⬇️
1)cons and pros(比如如何比较random forest和boosting method,如何比较adaboost和xgboost)
2)各个模型对应的parameter(比如svm中的gamma和C parameter分别控制着什么)
3)technical details(比如怎么得到k-means的optimal k,linear regression的assumption,如何得到logistic regression的coefficient)
c.Evaluation:
这也是一个常见的问题,如果直接问如何evaluate一个模型,回答前两种情况的后面三个小点即可,第三个方面其实是另一个问题,每个小点也要了解,防止有follow-up
1)Classification:trade-off between type 1 and type 2 error;predicitve capacity(accuracy);overfitting
2)Regression:multicollinearity;p value;Mean square error or r square
3)imbalance data:Collect more data,用tree-based model,resample,cross validation
2.Product sense:
就是各种视频和framework,再加上面试前对公司产品的思考,比如在面试quora的时候他们问,为什么我们做thumbdown但是不显示数量,这就倚仗你对产品的思考了。
3.Take_home_challenge:
我大概挂过10次,感谢第10次那位manager给我念了feedback我才终于开始理解怎么准备,之后基本就没挂过了。
其实这就是一次考试,无关你的writing,无关你的结构,甚至不是你的模型,而是你有没有自圆其说且踩中得分点,而他们的得分点其实就那么多。比如,大部分的数据在做classification模型的都是imbalance的,那么你要提出,因此我使用random forest和cross validation来对抗它。
最好有一个pie chart进一步直观解释。更深一层,你可以提出这样的问题对type1和type2 error的影响,结合你面试公司的business,哪一个error对公司的影响更大。
比如对于检验癌症,type2的影响就更大。我附了我做的check list来总结一些常见的问题,大家有兴趣可以参考一下,我是按照做project的7个阶段来总结的,在做的时候把它放在旁边对照,防止遗漏得分点。更加有效的可能是大家按自己的思路再做一份。
4.Python manipulation:
建议大家找一个文档,专门保存一些常用的code,比如groupby的用法和变式。长期的积累可以帮大家在下一次做project的时候节省大量的时间。
5.SQL:
SQL本身没啥难度,多练就好,Leetcode足矣
6.Resume:
没事拿出来看一看,可能每次都会修改一下,做成更好的expression,另外,做好每一字都被深挖的准备,我认识一位同学,就是因为写了一个cnn的project在简历里面但是一时语塞没说清,丢掉了offer。
7.Presentation:
这个我遇到过两次,现场给一个数据,给定时间,然后present,我认为这更多的还是对于口才的要求,因为那么短的时间你能做的也就是自圆其说,在这里提出来是让大家有一个心理准备,也会有这种形式的面试。
四个小锦囊
找工作有时候像是孤帆远航,不确定自己现在在哪,也不知道下一个补给站多久能到。下面四个阶段都是自己亲身的经历,适合大家在这四个不同的找工作阶段打开看看,希望可以从中获得一些鼓励。
1.刚来美国或者刚刚决定找ds的工作,且学校项目至少还剩一年
如果你是硕士而且只有一个summer,那么你最重要的事就是在那个暑假找到一个实习,如果return了,那么万事大吉,躺平继续接competing offer。
如果没有,这份实习大大增加之后投工作时被recruiter看中的可能性。如果你有更多的时间,那么思路是一样的,实习越多,公司越有名,在投全职工作的时候得到面试的几率就越大。
2.一周收到少于等于一个面试
如果投简历量到了的话(至少20/每天),可能是简历的问题,简历找career service或者别的professional看看简历,这里推荐一个领英的活动里面有大量的国人愿意提供这方面的帮助。可以点击阅读原文查看链接。
3.一周至少两个面试,但基本都挂在take-home-challenge或者店面
建议回到这篇帖子面试准备的部分,看看自己的哪个部分有问题。
4.挂了至少三个onsite
恭喜,你的offer马上就要来了,请请请再坚持一下,挂了5个onsite的在这里陪你,你一定可以!!!!