Medium网站上有很多用户都在找数据科学家或数据分析师的职位,所以他们对这两种职位的面试过程都很感兴趣。树懒君来就这个问题说一些自己的看法。
数据科学家们有望在自己的公司实现人工流程的自动化。通过使用sklearn和TensorFlow等库里的机器学习包,他们可以提取数据、清理数据、训练和评估模型,并为终端用户提出建议或预测。在这一过程中,一部分侧重于编程和算法,而另一部分侧重于软技能,比如开发商务问题、向终端用户解释结果等。你还会用到jupiter Notebook之类的工具,以及Python和R(有时是SAS)这样的编程语言。
数据科学家面试的准备过程可能会让人抓狂,希望以下的步骤能为你带来一些启发和帮助,让你对下一次的数据科学家的面试充满信心。
总体来说,招聘过程包括了招聘人员或经理对你的的电话筛选。之后,再和团队一起进行概念和编程面试(有些面试不包括编程,但会让你对一个将来可能在公司遇到的常见商务问题做一个评估项目)。接下来,需要你向其他数据科学家或高级产品经理等高层领导阐述你的发现。最后,总结一下你从之前的面试中学到了什么,以及为什么你是这个职位的最佳人选。
理想的数据分析师要能够查询数据库表(database tables),执行连接(perform joins),进行子查询(subqueries)和报告数据请求(data requests)。会与其他利益相关者共同收集每个诉求相关的内容。会使用SQL、PostgreSQL等工具或者其他的查询平台,包括Tableau,PowerBI及其他图表工具。
数据分析师的整个面试过程有很多步骤都和数据科学家非常相似。不过,他们之间的区别与独特之处,是在于面试过程中考的概念和编程题目。面试一开始,招聘人员或招聘经理会对你进行电话面试。然后,你会见到团队中的其他数据分析师,并与他们一起讨论数据库等关键性概念。之后,你需要完成一个编程挑战,这个步骤通常会涉及到join和sub-query等常见的SQL问题。接下来,你得向另一个数据分析师或利益相关者(如客户成功经理)解释你得到的结果。最后,你会和招聘经理讨论之前的面试,以及你对整个团队的看法,并讲讲为什么你可以胜任该公司的数据分析师。
接下来你会看到,数据科学家和数据分析师的面试是一个相似的过程。不过,虽然他们的过程可能相似,但细节却大有不同,这点我会在后文提到。以下是面试过程中的一些共性:
相同点:
常用工具:SQL,Tableau和Jira(票务平台)
不同点:
虽然过程上大致相同,但在这两个职位在专业面试的方面还是有很大区别。
数据科学:
常见的机器学习算法,比如随机森林(random forest)和逻辑回归(logistic regression)。
常见的机器学习和数据科学,比如无监督学习和有监督学习。
数据分析:
join之间的区别,如内连接(inner)、外连接(outer)、左连接(left)和右(right)连接
数据科学:
使用Python进行编程(循环for loops,数组arrays和函数functions)
用R进行编程
在Jupyter Notebook中编程并注释代码
有时候,不一定会是编程面试,也可能是一项take-home项目,需要后续合并数据,探索性分析和清理数据,构建模型,输出并对结果进行解释。
数据分析:
SQL查询
Tableau(不是编程相关,而是一种特殊技能,需要了解常用界面中的常见函数和计算)
数据科学:
向非技术用户解释模型及预测
数据分析:
向非技术用户解释查询及结果
你可以发现,这些职位和他们面试过程间出现的相似之处可能比你想象的多。其实,很多相似之处都来自整体面试的过程,以及一些常见的工具,如SQL。其他相似之处是开发新项目、会见不同的利益相关者所需要了解的软技能。
毫无疑问,职位间的专业性之间是存在关键差异的。比如数据分析师会使用Tableau进行更为复杂的SQL查询和报告,而对于数据科学家而言,会重点关注例如决策树(decisions trees)和时间序列(times series)之类的常用机器学习算法,还会使用Python编写一些典型的函数以及用于将来职位的循环(for loops)。