刚开始学习数据科学的人都会面对同一个问题:
不知道该先学习哪种编程语言。
不仅仅是编程语言,像Cognos,SPSS等软件系统也是同样的情况。有越来越多的工具和编程语言,很难知道该选择哪一种。
事实是,你的时间有限。学习一门新的编程语言相当于一项巨大的投资,因此在选择语言时需要有战略性。
很明显,一些语言会给你的投资带来很高的回报(付出的时间和金钱投资)。然而其他语言可能是你每年只用几次的纯粹辅助工具。
我给你的建议就是:先学习R语言
专注于一种语言
在说明为什么你应该学习R语言之前,我想强调的是,在开始学习数据科学时,你应该学习一种语言。
有些人问我是否应该学习在学R语言的同时学习Python。我的答案基本上是否定的,除非你需要使用一种以上的语言,否则你应该选择一种语言进行学习。
专注于一种编程语言的原因是,你需要更多地关注过程和技术,而不是语法。你需要掌握如何通过数据科学工具来分析数据,以及如何解决问题。事实证明,R语言是最佳的选择。
学习R语言
我建议你将R语言作为你的第一个“数据科学编程语言”。虽然也有例外,比如特定的项目需要。
因为R语言正在成为数据科学的“通用语言”
这并不是说R语言是唯一的语言,也不是说它是每个工作的最佳工具。然而,它是使用最广泛的,而且越来越受欢迎。
O' reilly media在过去几年中进行了一系列数据科学调查,分析了数据科学趋势。在2016年的调查报告中,R语言是最常用的编程语言(如果排除SQL的话,在本文中它不能称为编程语言)。57%的调查人群使用R语言(使用Python的比例为54%)。
另一个常见的语言排名系统是Redmonk编程语言排名,它由GitHub(代码行)和Stack Overflow(标签数)的流行指数派生而来。截至2016年11月,R语言在所有编程语言中排名第13。此外,R语言多年来一直呈持续上升趋势:
此外还有TIOBE指数(按搜索引擎搜索次数对编程语言进行排名)。在TIOBE指数上,R语言十年来呈现出稳定上升趋势。
使用R语言的公司
在招聘数据科学家的几家顶级公司中,R语言使用程度非常高。在我认为现代经济中最优秀的两家公司——Google和Facebook 都有使用R语言数据科学家。
除了像Google,Facebook和微软这样的科技巨头,R语言在美国银行,福特,TechCrunch,Uber和Trulia等众多公司都有广泛的应用。
R语言在学术界很受欢迎
R语言不仅仅是一个行业工具。它在学术科学家和研究人员中也非常受欢迎,最近著名《自然》杂志上发表的R语言概况也证实了这一点。
R语言在学术界的备受欢迎,因为它创造了供应行业的人才库。
换句话说,如果最优秀、最聪明的人群在大学学习了R语言,这将加大R语言在行业中的重要性。当学者、博士和研究人员离开学术界从事商业活动时,他们又将产生对R语言人才的需求。
此外,随着数据科学的成熟,商业届的数据科学家将需要与学术届的科学家进行更多的沟通。我们需要借鉴技术和交流观点。随着世界转变为数据流时,学术科学与面向商业的数据科学之间的界线会变得模糊。
通过R语言学习“数据科学的技能”是最简单的
然而,R语言的普及性并不是学习R语言的唯一原因。
在选择语言时,你需要一种在这些领域都具有重要功能的语言。同时你需要执行这些任务的工具,以及在你所选语言中来学习这些技能的资源。
如上所述,你更多地需要关注流程和技术,而不是语法。
你需要学习如何解决问题。
你需要学习如何在数据中找到真知灼见。
为此,你需要掌握数据科学的3个核心技能领域:数据处理,数据可视化和机器学习。在R语言中掌握这些技能将比任何其他语言都容易。
数据处理
一般来说,数据科学中80%的工作都是数据处理。通常情况下,你需要花费大量时间来整理你的数据。R语言中有一些很棒的数据管理工具。
R语言中的dplyr包使数据处理变得容易,这可以大大简化数据处理的工作流程。
数据可视化
ggplot2是最佳的数据可视化工具之一。ggplot2的好处是,在学习语法的同时,还学习如何思考数据可视化。
所有的统计可视化都有很深层的结构。存在构建数据可视化的高度结构化框架,ggplot2基于该框架。
此外,当将ggplot2和dplyr组合在一起时,从数据中得出相关见解几乎毫不费力。
机器学习
最后,还有机器学习。虽然我认为大多数数据科学初学者不应该急于学习机器学习(首先掌握数据探索更为重要),机器学习是一项重要的技能。当数据探索不再带来洞察力时,你则需要更强大的工具。
之后再学习更多的语言和工具
最终你会想学习更多的编程语言。就像工具箱中没有一个最好的工具一样,没有一种编程语言能够完美的解决你所有的数据问题。
以下是在学习R语言之后,你可以考虑学习的语言:
Python
Python是一种值得考虑的多用途编程语言。在O'Reilly最近的调查中,Python是数据科学家中第二受欢迎的编程语言。它具有优秀的可视化工具,以及机器学习工具。我认为,对于大多数人来说Python是应该学习的第二种语言。
D3
我超爱D3。D3中创建的可视化效果很棒,而且D3可视化的交互性非常适合构建仪表板。但它的伸缩性不够好。对我来说,D3更像是一个“工匠的工具”,它非常适合构建一个优雅的数据可视化,但是在需要几十个合作伙伴支持的情况下,手动创建这样的东西是不可能的。
与此同时,我还乐观地认为,R语言的ggvis将允许R语言用户创建高度动态和交互性的可视化,因此在某种意义上,R语言用户需要学习R的ggvis而不是D3。
总结:学习R语言,并集中精力
如果你是初学者,R语言是很好的选择。同时需要专注于学习数据科学的技能。
在学习过程中,你可能会看到很多新技术和新工具,或者一些令人眼花缭乱的数据可视化。
看到其他人的成果(并发现他们正在使用不同的工具)可能会导致你想尝试其他的东西。相信我:你需要集中注意力。你需要花上几个月(或更长时间)才能真正投入到一个工具中。
如上所述,如果你确实希望在数据科学工作流程中提高技能。至少在数据可视化和数据处理方面,你得具备扎实的技能。
在R语言上花费100个小时,将比在10个不同工具上各花费10个小时得到更高的回报。最后,通过集中精力,你的时间回报率将更高。不要因为“最新,最炫的事物”而分心。
发表评论