如何成长为数据科学家

从零开始,成为数据科学“大咖”

转自InfoQ首页,作者:张天雷, 2014年10月14日

随着互联网的迅猛发展,在线学习逐渐成为主流,MOOC、慕课等概念如雨后春笋般涌现。以往高等学府才能接触到的计算机科学和数据科学,也随着这次风潮来到了公众面前。OSDSM,即数据科学开源课程,能够从理论和技术两方面,帮助人们学习有效利用数据的核心技能。

一、利用互联网成为“大咖”

随着互联网的迅猛发展,网络公开课的网站和APP等日益成熟,从听课、讨论到考试,一条龙的自学服务已经颇成规模。这些课程中,计算机科学尤其是数据科学相关的知识都已包含在内,用户通过使用Coursera、ebooks、StackOverflow以及GitHub等平台发布免费的教育资源,完全能够掌握数据科学的关键内容。

二、学习数据科学的动力

现在数据科学家岗位面临极大的缺口。所谓数据科学家,就是同时掌握统计学知识与程序设计技巧,能够服务大数据开发的技术专家。成为一名数据科学家,就有了大数据时代互联网行业的通行证。2013年7月,麦肯锡的报告显示,到2018年,美国数据科学家将会面临多达19万名的缺口。另外与数据科学的相关岗位也炙手可热,能够从数据中挖掘分析见解的管理、分析型人才,缺口高达150万。

在这种条件下,只要通过学习、培训,就有机会成为这些急需专业人才中的一员。在这个新兴的行业中,知识与技能比工作经验更加重要。David Hardtke就说,根本就没有5年工作经验以上的数据科学家,因为那会儿压根没有这个岗位。

三、 学校教育的短板

在现在的教育体制中,统计学人才由统计学专业提供,计算机科学人才由计算机专业提供。虽然两种学科的专业课程内容互有重叠,但从目的和导向来看,根本无法塑造兼备两种专业知识与能力的复合型人才。一般的学校教育,不能培养出数据科学家,所以这项人才缺口必须通过其他方式进行弥补。

对于高级的数据科学家来说,学历很重要,但不是必要的。不论来自蓝翔还是清华,不论是专科、本科还是研究生,都能够胜任。一名数据科学家所需的核心能力——好奇、聪明,能进行流畅的数据分析,有研究的耐心,有严谨的科学态度,对事物持普遍怀疑态度(这些都是将数据科学家从其他人中区分出来的特质)——是所有行业的人中广泛具有的。

从足够多的案例中可以看到,很多没有学历的、没有经验的人尝试学习数据科学,依靠自己的努力,广泛运用当前的建模工具,并将自己的一技之长加入开源生态系统内。数据科学的平台和工具正通过开源得到了极大丰富,大数据时代的数据科学家也通过开源不断增加。

此外,还有另一项趋势可以缓解现在的人才缺口:数据科学民主化。虽然Neil Raden说“最顶级的数据科学家将在高校、高科技企业、金融界和政府大展身手”,但其实范围远不止于此,James Kobielus认为自学、低学历但热爱数据的人,也将在这一众组织机构对大数据的需求中发挥的重要作用。

四、 从这里开始:数据科学的课程表

这些数据科学的开源课程,从数学、编程等几个方面塑造数据科学“大咖”。这不是为了重温大学课程,而是以问题导向准备知识。为了集中精力,建议读者选择同一种编程语言的课程学习。我们将这些课程分成了六类,方便读者按照自身能力阶段学习,当然一些课程和书籍现在还没有全部开源,需要读者自行购买。

(一)基础篇

华盛顿大学在Coursera的《Intro to Data Science》课程、哈佛大学的《Data Science》课程,同时可以参考《Data Science with Open Source Tools》一书。所谓“基础”,是指这一部分课程是为那些对编程有最起码了解,但对数据科学的其它部分——即统计学和分布式计算——有浓厚兴趣的人准备的简介课程。

(二)数学

线性代数部分,推荐斯坦福大学 Levandosky的《Linear Algebra》、华盛顿大学《Linear Programming (Math 407) 》课程,统计学部分推荐普林斯顿大学在Coursera《Statistics》课程,《Stats in a Nutshell》、《Think Stats: Probability andStatistics for Programmers》、《Think Bayes》。微分方程和微积分,推荐Python指导手册中的《Differential Equations in Data Science》。建模部分推荐G. Polya的 《How to Solve It: A New Aspect of Mathematical Method (Princeton Science Library) 》。

(三)编程

算法部分,推荐斯坦福大学在Coursera上的课程《Algorithms Design & Analysis》,Kleinberg、Tardos 的《Algorithm Design》。分布式计算推荐华盛顿大学的Coursera课程中Lectures on MapReduce讲座,Cloudera在 Udacity Course上的课程 《Introto Hadoop and MapReduce》, 其中有《Hadoop: The Definitive Guide Book》一书的重要内容摘要,以及Tom White的《Hadoop: The Definitive Guide Book》。数据库部分,推荐斯坦福大学的在线课程《Introduction to Databases》,SQLSchool  Mode Analytics 网站的教程或SQL Tutorials SQLZO网站的教程。数据挖掘推荐斯坦福大学在Coursera上的课程《Mining Massive Data Sets》、Anand Rajaraman,Jeffrey David Ullman 合著的《Mining of Massive Datasets》、Matthew A. Russell的《Mining the Social Web: Data Mining Facebook, Twitter, LinkedIn, Google+, GitHub, and More 》、Christopher D. Manning与Prabhakar Raghavan、Hinrich Schütze 的《Introduction to Information Retrieval》。

(四)数据可视化

数据可视化涉及图形设计基础知识,需要学习《Envisioning Information》与《The Visual Display of Quantitative Information》两本书。在了解设计的基础知识后,推荐华盛顿大学的《Data Visualization》、加州大学伯克利分校的《Berkeley’s Viz Class》以及莱斯大学的《Rice University’s Data Viz class》。练习资源可在Scott Murray的《Interactive Data Visualization for the Web》一书及博客的D3 Library得到。

(五)实战教程

这一部分以Python为例,掌握Python语言并不难,《Learn Python the Hard Way》、《Think Python》都很不错,Google有Python课程,加州理工的《Introduction to Computer Science and Programming》也很不错。

在实战中,需要准备Python和virtualenv、NumPy、SciPy、matplotlib、IPython这些软件包,还得会使用它们。这些软件包涉及数据结构与分析、机器学习、网络环境、统计、自然语言、可视化以及应用案例与接口。

(六)进阶

对于立志成为数据科学“大咖”的人,推荐继续阅读《Doing Data Science: Straight Talk from the Frontline》一书。如果能够学习《Capstone Analysis of Your Own Design; Quora’s Idea Compendium》和华盛顿大学的《Healthcare Twitter Analysis》,则能够在打开 “大咖”大门之时起到画龙点睛的效果。