查看原文
其他

【翻译】数据科学面试终极指南(3)

呆鸟【翻译】 Python爱好者社区 2019-04-07

作者:呆鸟
简书专栏:
https://www.jianshu.com/u/be48b04ecc3e
坚持学习Python和English两门语言,致力于让读译文就像读中文的呆鸟
原书内容:
https://www.springboard.com/blog/wp-content/uploads/2016/07/UltimateGuidetoDataScienceInterviews-1.pdf



前文传送门:

【翻译】数据科学面试终极指南(1)

【翻译】数据科学面试终极指南(2)

准备面试

  希望为争取数据科学面试机会所做的一切都有回报,收到代表开启面试流程的邮件,或者有公司打电话叫你去面试。以下就是即将发生的事情,要准备好哦。

面试内容

  数据科学面试十分复杂,行为问题混杂着技术问题。获得面试机会算是走的够远了,不过还有很多路要走。

  从头说起吧,很大程度上,数据科学面试会根据求职岗位与公司的不同而有很大区别。一些公司非常严谨,需要通过许多技术挑战;另一些公司则会考虑企业文化匹配。如果有人推荐,你有可能会直接进入最后一轮面试。

  最严谨的面试可能是这个样子:

1. 电话面试

  一般来说,为了节约招聘经理的时间,人力资源的员工会通过电话面试初步筛选求职者。有时会询问些基本的技术问题,筛掉完全不合格的人。大多数情况下,从电话面试开始,公司就已经在考察求职者是否和他们的企业文化相匹配了,求职者要有较好的沟通技巧,才能面试成功。

  本次通话可以让你初步了解数据团队的问题及其组织架构。准备好一些有深度的问题,展示你对业务和数据运营的理解,快结束时也可以提些关于公司的问题。

2. 家庭作业

  电话面试后,有的公司会给求职者布置任务,要求限时完成。这个环节能有效地筛掉技术差、不愿下功夫的人。大部分公司不会这么干,但也有不少公司喜欢用家庭作业这种测试方法节约招聘经理的时间。

  好的家庭作业设计也是了解公司的好机会,可以了解到这份工作要解决什么问题。家庭作业可能会让你深度分析给定的数据集,从数据中推导出洞察结果,并进行说明;也有可能是让你清理有明显错误的数据集;还有可能让你处理某些业务问题,比如基于职位描述中的数据为求职者开发职位推荐系统。

  只有做好家庭作业的人才会获得和招聘经理面谈的机会。如果拒绝完成家庭作业,可能会被直接筛掉。

  花点时间完成家庭作业,了解这家公司有什么样的数据问题。通过家庭作业,可以知道公司侧重于测试哪种技能,以及他们如何看待这个岗位,搞清楚这些问题,能让你更好地利用时间应对面试。做好这项作业可以充分体现实力,让你与众不同。

3. 招聘经理电话面试

  求职者还会接到一次关于数学、统计学和编程的电话面试。本次面试一般由招聘经理或技术人员进行,这可能是现场面试前的最后一轮评测。一般为三部分,有时可能一个电话搞定,通话时间会比较长;通常分为三次电话面试,每次三十分钟。

  • 数学与统计学 评测数学与统计学核心概念知识,面试的公司和岗位不同,具体的面试内容也不同。网络公司侧重于评测A/B分组测试的知识、计算P值的方法或统计显著性均值的概念。能源公司则侧重于测试对回归概念和线性代数的理解。不管面对哪种的面试,都要能描绘解决问题的整体思路。

如果问及A/B分组测试,需要描述A/B分组测试的细化流程。依托实战经验,避免问题里的陷阱。对待这个问题要像对待数学验证与统计推理一样,不要担心过度关注细节,要能条理清晰地回答问题。

  • 编程 本次面试和其它技术面试非常相似。主要是评测技术能力,一般会要求用伪代码解决编程问题,复杂一些的面试会要求编译准备好的代码。如果应聘的是数据分析师,一般会测试使用SQL查询数据的能力。其它岗位则会测试之前提到的编程语言,比如Java和Python。

  面试官可能会用HackerRank或Collabedit这样的工具在线评测。使用这些工具,招聘经理可以实时查看求职者输入的解决方案,准备好应对这种形式的测试,有可能的话去这类网站做些专项训练。

  破解编程面试这样的书或InterviewCake这样的网站为求职者提供了很多应对编程面试的资源,利用好这些资源会对求职者有很大帮助。

  要想顺利通关编程面试,就得勤做练习,熟,才能生巧。写代码时最好能找个舒适、安静的环境。不过大多数情况是接到电话后,手忙脚乱地在纸上写下代码,然后匆匆忙忙地在电话里解释;有的时候,面试官会要求使用在线测试工具进行编程测试,这时可别说自己不会用。总之,要对各种可能发生的情况做好准备。

  这种面试经常会问到数据结构,要好好学习哈希映射、决策树、堆栈、队列这些概念。像软件工程师应对编程面试一样,你就能成功。

  • 招聘经理电话面试 终于轮到招聘经理了,他会面试求职者的沟通能力,考核求职者能否与公司的团队融洽相处。这次面试通常是独立的电话面试,也可能是大型电话面试三大部分的最后一关。目的主要是让招聘经理了解求职者的个性、求职动机、团队匹配度及技能天赋。绝大多数招聘经理心里都会有目标人选的预期,越接近招聘经理的预期,就越可能获得现场面试的机会。

  这时就体现出与第三方招聘公司合作的好处了,对招聘经理要解决的问题、想找什么样的人了解的越清楚,就越能充分准备,把自己打造成该岗位的完美人选。为实现这一目标,可以针对该岗位定制沟通内容,尽量表现得自信,再能表述清晰的话,顺利通关的可能性就会很大。还要处理好“航行测试”这样的情景问题,试想一下,和招聘经理一起坐几个小时的飞机,怎么能让他觉得你不是个无聊的人。这项测试非常重要,毕竟今后要天天和团队同事一起工作至少八小时,这时最好能表现出和领导融洽相处的本事。

4. 招聘经理现场面试

  最后,恭喜你通过了电话面试,终于可以和招聘经理面谈啦。招聘经理会从技术和非技术角度两方面进行评测。确认求职者适不适合应聘的岗位,甚至会设定不同场景让求职者使用白板现场讲说,测试求职者的技术专长。

5. 技术挑战

  如果现场面试没有考核技术能力,就会在本环节进行各种技术测试,特别是数据工程师这个岗位。这个环节与软件工程师面试非常相似,通常会要求在白板上写出应用的算法,解决特定的问题。

  如果熟悉时间复杂度、大O表示法这样的软件工程概念,掌握数据算法背后的数学与统计学知识,这一关对你来说就不难。

6. 总监面试

  通过了招聘经理的面试,最后一关通常是高级总监面试。创业公司一般会由联合创始人或CEO亲自面试。

  恭喜你!终于到了这一关了。一般来说,通过了技术考核的求职者才有可能到这一关。虽然,到了这关基本上就说明公司会给你发Offer,不过也别得意忘形。现阶段只需着重说明怎么推动业务工作进展,怎么解决公司的问题就可以了,不用再证明自己什么,反倒要注意别犯低级错误。

数据科学岗位技能矩阵

  • 数学/统计学:如,P值分析、A/B测试

  • 数据库:如,SQL查询

  • 算法:如,监督学习、实体解析

  • 软件工程:如,Python、Java、面向对象编程

  • 大数据/系统工程:如,Spark、HBASE、Hadoop

  • 软技能/领域专长:如,演说、演讲技能

  不同的数据科学岗位对技能组合要求不一样。数据工程师不用具备太强的业务演示能力,但要能解决各种编程难题;数据分析师无需解决技术难题,能用好SQL就行了,不过却要是个优秀的演说家。

  本表从高至低列出了业界对数据科学岗位的需求与标准。以最热门产品数据科学家为例说明了各岗位的专业性和难度水平。

  搞清楚要应聘哪个岗位,了解应聘公司需要哪个岗位的人员,招聘岗位适不适合自己,有助于预估数据科学面试流程。

数据科学岗位纵览

数据产品科学家:具备数据产品开发能力的全能型数据科学家。数据产品科学家带领团队开发数据产品,修改算法,精通用数据服务终端客户,具备开发能力,能规划各种数据产品。

数据科学家:技术、业务与数学的独角兽能力混合体。数据科学家懂得怎样创建与优化数据算法,能够解释说明数据发掘到的内容。相对数据工程师而言,数据科学家不需要太懂编程,但是要能完美解析各种规模的数据。

商务智能专家:关注从数据中提取商务洞察结果,精通统计学,与数据分析师的不同之处在于,能够掌握各种机器学习算法,编制各类数据仪表盘,进行各种数据分析,帮助公司各团队制定更好的决策。

数据工程师:不必过多了解统计学或数学,但要能处理各类技术难题,针对大规模数据实现各种算法。

数据分析师:入门级岗位,大部分工作内容是编写一次性数据报告,说明数据分析结果,要求熟练掌握SQL与Excel。

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

小编的Python入门免费视频课程!!!

【最新免费微课】小编的Python快速上手matplotlib可视化库!!!

崔老师爬虫实战案例免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存