注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
楼主17年秋季入学CMU,一年半的项目,最近刚毕业。项目名是MS in information systemsmanagement,business intelligence and dataanalytics concentration,很长很没重点。不过课程还是很契合datascientist岗的工作要求,主要构成是比较硬的编程+数据库+机器学习/深度学习+一些数据商业的课程,大部分ds岗jobdescription里面写到的技术都有覆盖到。班上同学大部分都找的是ds的工作,虽然就业报告还没出,但是根据我了解到周围同学的情况,找的结果都蛮不错的。楼主自己是18年9月开始找全职工作,到十月底拿到三个公司的datascientist岗的offer,拿到理想offer之后放弃了手头两个公司的onsite。关于项目的详细介绍一个同学在地里发过一个帖子,感兴趣的朋友请移步:https://www.1point3acres.com/bbs ... ewthread&tid=465319。我在这里还是主要分享一下硕士找data scientist岗的一些经验,希望能帮到大家。
一、了解datascientist岗的市场
目前来说我觉得datascientist的市场需求还是比较大的,虽然和码农还是比不了。我找不到具体的数据,但是很多人都说ds岗的数量大概是码农岗的十分之一。从供给端来说,找DS岗的同学来源广泛,有本专业(CS, Stats,ML)和转专业(理工科)的PhD,有CS,Stats,DS,BA,和其他理工科的Master,也有一些优秀的本科生。所以供给很广泛,公司不差人。还有一点就是前几年datascience行业刚兴起的时候也有很多人涌入,导致现在市场上有很多有几年工作经验的人,这也导致了应届生不太好一毕业就找到datascientist的工作。所以在这种情况下怎么对症下药找到心仪的工作呢?且听下文分解...
二、datascientist到底做什么
data scientist岗虽然岗位名称一样,但是其实不同公司不同组做的事情千差万别。要先了解到datascientist是一个怎样的岗,才能对症下药提升自己。楼主在读研究生之前也是一团乱麻,连DS和BA都傻傻分不清,在找工作的过程中才慢慢发现data行业各个岗细分的区别。如果大家能在找工作之前分清这些,还是会很有帮助的。airbnb对于data scientist不同track有一个分类,还比较清楚。按照他们的定义,data scientist按照工作职责不同主要分为algorithms,inference和analytics三类。简要来说,algorithms这类在很多公司也叫core data scientist或者researchscientist,主要是研究一些新的机器学习和深度学习的算法,并用这些算法提升产品的性能。这类工作其实要求很高,因为很有研究性,所以一般需要相关专业的PhD来做,可能还需要有ML相关的论文发表才能做。inference这个track的data scientist主要是做统计分析,比如用AB testing来测试产品的不同version哪个更受欢迎,来决定如何改善现有产品。这个岗需要统计比较强,所以比较喜欢统计经济等专业的学生。analytics这个track比较偏向产品和商业,平时会用很多SQL来监测产品的metrics,也会用一些简单的regression来做产品用户相关的预测。这个track需要有比较强的businesssense,知道如何把数据转化成商业价值。在我看来,还有一类工作其实和data scientist也有很多重合,那就是machine learning engineer。这类工作不一定要求是PhD也不一定要有相关的发表,但是需要对编程和ML很熟,能实现各种ML/DL算法到production,也能做一部分softwareengineer的工作。
三、找准适合的方向,对症下药
如果很擅长ML和DL算法,且coding能力较强,可以做Research Scientist或者MLEngineer。
如果统计背景,数学背景较好,可以试试inferencetrack或者一些用统计建模较多的岗。
如果商科转DS,则更适合analytics track。相应也要补充SQL和基础的统计ML知识。
一般来说大公司的岗位分得比较开,看一下工作描述就能知道是哪种datascientist。对于初创公司或者传统公司组建的比较新的DS团队,可能分工就没有那么细了。有可能一个人要做data science project的很多部分,从data engineering,softwareengineering到modeling都会涉及。具体还是要研究职位描述。
我的建议是作为new grad要有自己侧重的方向,因为但是每个方向其实都要准备到。因为data scientist的岗位真的没有那么多,而且面试也挺随机的。比如看职位描述是ML modeling相关的,可能面试问问统计概率或者product,没准备到的话也是过不了的。
四、如何拿面试 最重要的一点是简历要好看。在学校期间多选技术符合公司对于ds职位描述的课,多选硬课不要太在意GPA,多选带课程项目的课。平时有时间也可以参加一些比赛,比如公司组织的datathon或者Kaggle比赛。比赛排名靠前的话写在简历上能起到加分效果。然后就是修改简历了,这个水还挺深的,做同样一个项目写法不同可能看起来完全不一样。可以多多利用学校career service,然后就是要学长学姐和同学帮忙修改。 有了一个好的简历之后,我觉得最有效的拿面试方法就是找人内推。楼主实习的时候觉得找内推比较麻烦,就海投了看到的所有data science intern岗,大概两百多个,最后有回应的公司只有不到十个,然后拿到两个offer。全职的时候有针对性的找内推30多家+海投30多家,都是data scientist岗,有回应的公司差不多有25家,回复率比海投高很多。 找内推的话主要途径还是校友资源,一亩三分地,和LinkedIn。找人要refer的原则就是大方得体,目标明确,然后保持联系。楼主在面试一家公司的时候,推荐人非常热心,还帮忙楼主模拟面试,对最终拿到offer帮助很大。找内推的过程其实也是一个建立connection的过程,这个能力在以后的工作中也十分重要,所以能提前培养一下这个能力也是很好的。
五、面试准备 对于data scientist岗来说拿到面试就是成功了一半,面试准备则是能进一步提高拿到offer的机会。data scientist的面试考的很杂,我总结一下有以下类型的面试。 1. 简历面 简历面主要目的是深入了解你的个人经历。考官会针对简历里面的每一个细节提问,比如你做项目的流程是什么样的,用了什么数据,选了哪些重要的feature为什么这么选,用了什么模型有什么优劣,怎样评估模型的表现。有时候简历里出现的技术细节也会被问到,这些都要提前准备好。behavior方面需要对自己简历上面的经历都能讲出故事,比如项目如果是团队合作的,个人在团队中承担了什么样的责任,有什么能改进的方面之类。 2. 技术面 技术面需要准备的知识点很多,包括但不局限于以下方面: - ml: 因为楼主主要找需要modeling的ds岗,所以被问到最多的问题就是ml相关的技术。ml需要系统学习每一个算法的实现细节,不同模型的比较,如何优化模型,和模型的评估。问到比较多的算法包括logistic regression,tree based models,svm,pca,和clustering。也会问道一些和数据相关的问题,比如怎样选重要的feature,数据unbalanced怎么办,怎么处理collinearity。deep learning的话主要看公司业务,是做computer vision,或者nlp,或者语音,要相应准备。 - sql:analytics岗的最爱。要能熟练应用subquery,aggregate function和analytical function等等。可以刷一些leetcode的sql题,并在地里看一下面经。 - product:产品相关的问题对于楼主来说比较难,因为相关行业经验比较少。相关问题有如何选metrics,如何设计ab test,产品metric变化的原因分析。这类问题要多积累,这里推荐两本书,一本叫Lean Analytics,还有一本叫a collection of data science challenges,都是讲产品分析的。 - algorithm:在楼主面试data scientist的过程中,很少会被问到算法coding题。但是我同学里有主申ML Engineer的,面试就会考到很多的算法题,难度基本上是leetcode medium到hard。所以还是看你申请什么样的岗位,如果是和楼主一样主要申请ds岗,那刷题肯定不是最重要的,如果是ML Engineer,基本就是刷题(至少medium)和准备ML了。 3. Take Home Challenge 公司给一个类似Kaggle或者比Kaggle简单的题目,给一个数据集,需要自己处理数据+建模,最后提交代码和PPT。对于准备data challenge没有什么诀窍,就是平时多做machine learning的项目,然后总结出来自己的一套流程。还有一点很重要的是跑完模型之后要能解释自己的模型结果,最好是能用business manager能听懂的语言。 4. Case Interview 分为ML相关的case和business case。ML相关的case其实就是口述一个data challenge的解决方案,需要在很短时间内想到解决方案并告诉面试官。平时准备的话就要多做不同类型数据的project,到面试的时候就很可能碰到自己比较熟悉的问题。还有一种case就是偏business的case,大多数这类面试还是会结合公司的具体业务和公司的数据来问,需要同学们对公司的业务和产品比较了解,并且对数据和数字很敏感。还有一种就是consulting case,这里推荐一本书叫case in point,有时间的话很快就可以看完。 5. Onsite Interview Onsite一般有4-6轮,要和一个team里面很多人见面。每一轮的时间大概45-60分钟,面试内容包括简历面,技术面和case。但是在我看来onsite面试最重要的还是聊天,如果能在短时间让hiring manager相信你很适合在他们的团队工作,那就成功了一大半。如果有机会的话,可以提前向组内的人了解一下内部情况,比如着装怎么样合适,manager的喜好等等。
总的来说,楼主觉得data science行业正在变得成熟起来,机会也会越来越多。可能前些年这个行业比较新,很多岗需要研发,所以更加偏好PhD。现在ds岗不断增加,而且不是所有岗都需要研究新的算法,所以master毕业生也有不少机会进入这个行业。不知不觉就写了这么多,也是这一年半以来找工作也比较辛苦,所以有很多感触想和大家分享。最后祝愿大家都找到理想的工作!
|