入门数据分析,我应该学习什么编程语言?

很多时候,当和人们讨论怎么开始学习数据科学,一个疑惑总是出现在我们面前:

我不知道应该学什么编程语言。

不仅仅是编程语言,这还包括软件系统,例如TABLEAU,SPSS等,这是个更加广阔范畴的工具和编程语言的集合,让人非常难清楚该如何选择。

我很明白。数年前,我刚开始把目光集中于数据科学的时候,我浏览了所有流行的编程语言:Python,R,SAS,D3,并不包括那些虽然触手可及,但是实在是在数据分析方面没有优势的语言,例如perl,BASH和JAVA。即使在今天,我也只是从别处得到建议(从一个非常出名的数据科学博客)去使用复杂一点的工具,例如UNIX的AWK和SED(不用担心你对这两个没有任何印象,因为你没有必要学,至少在开始阶段)

这里有非常多的建议,非常多的素材,非常多的选择,这使得了解清楚最开始学习什么变得非常困难。这是一片知识的山峰,并且非常难找到哪里有着“金矿”,你得到的教训就是假以时日的探寻搜索之后会给你丰厚的回报。

你要清楚,某些语言会让你受益匪浅(无论是在时间上还是金钱上),其他的语言是辅助用的工具,顶多陪伴你数年。

让我把这堆话简化吧:先学R语言。

集中在一种语言上

在介绍给你为何要学R之前,我需要和你强调的是你应该在开始学习数据科学的时候,学一项语言。

就像我在SHARPSIGHT LAB写的R语言新手教程一样,我被数个人问了为何不同时去学PYTHON。我的回答一贯没变。否决。只有直到你有非常直接的需要多于一种语言来使用的时候,你才能去学。

为何要集中在一项语言上呢?因为你需要集中更多时间在进程和技术上,而非语法上。你要了解如何理解数据以及怎么用这数据科学的工具去解决问题。总而言之,我认为r是最佳的做这个的编程语言。

学习R

不做保留地,我仍然推荐你应该学习R作为你的第一项数据科学编程语言。虽然总有例外的情况(例如你为了一些特殊的计划需要),我认为R是你起步时最好的选择。

这就是为什么

R即将变成数据科学里的“国际话”

R即将成为数据科学里的“国际话”,这并不是说这个语言是这一界的唯一语言,或者是每个人最佳的工具,但是,毫无疑问,这个是最收到广泛应用的,也是使用人不断上升的。

正如我所写过的那样,O’REILLYMEDIA做了一个调查于2014年,从而了解各种数据学家爱用的工具,他们发现R成了之中最流行的(如果你把SQL从“像样的”语言里踢出去的话)

从更广阔的视野看,这里有别的在综合层面上的关于编程语言的普及度(不仅仅从数据学家的人群里计算)例如,REDMONK使用验证讨论(在STACK OVERFLOW上)和计算使用次数(在GITHUB上)测量出了编程语言的流行程度。而在他们最新的排位表上,R语言排名13,算是在统计学的语言中最高者。REDMONK同样注意到R的流行率在不断增加。

一个TIOBE给出的相近的排位(通过搜索引擎的搜索次数测定)便表现了R的普及率趋势宛如滔滔江水无法阻挡其前进。

从这两个组织对于所有编程语言的排位评价来看,当你看着这些数据,你就会深刻知道R是目前最流行以及最通用的编程语言了。

用R的公司们

R在数个最好的招聘数据学家的公司里被重用。谷歌和脸书——我认为的最好的两个在我们现代经济里存活下来的公司——同样都有数据学家使用R

(为了让人理解宛如脸书这样这么大的公司使用R,我会常常去查阅SOLOMONMESSING的博客。那是一个脸书的数据学家开的,而他的博客上写的R语言十分出色)

就像分析学的进步于目前所说那样,“R也是作为微软公司的数据科学家们的选择,当他们用BING,AZURE,OFFICE,还有销售,市场经营以及经济建筑的时候常能看到它的身影。

那些技术的巨人公司例如谷歌,脸书还有微软,R非常广泛地适用于各种公司,包括了美国银行,福特,TECHCRUNCH,UBER和TRULIA。

R在学术界的流行

R不仅仅是企业的工具。也是在学术领域的科学家和研究者的宠儿。最近一份文件展示了R在调查中展示出来的情况——

R在学术领域的重要性体现在其培养出来的技术表现出了企业范儿。

另一种说法,如果学院顶尖的人在他们学习的时候训练R语言的用法,那么在企业就业的领域,R的重要性就会上升。这种学术界的,围绕于博士间的,研究者的支持会让他们在下海经商的时候创造自己对人的用r的方法。

更值得一提,作为数据科学的前线,忙于事务的数据工作者会需要和更多的学院派科学家接触,我们将会借助他们的技术以及和他们共享创意。就像我们建设和栽种并且将这个世界变成数据流一样,学术科技和基于事务的数据科学总能连成一条模糊的桥梁。

认识到R里面最简单的是数据科学的技能

R的热门并非是学习它的唯一理由。

非常重要的是,如果你真的想掌握数据科学,那么你应该学这些核心的技术领域。数据操纵,数据视觉化,机械性学习。

选择语言时,你应该保证它有同时能适应这三项领域的能力。你需要工具去完成这些事就像你认真地学习你选择的语言一样。

就像我说的,你要集中于进程和技术方面,而不是语法。

你需要学会怎么思考解决方法。

你需要学会发现内在的数据。

为了做到这些,你就需要精通上面这三样了。精通这三样会让你在R的学习之路上十分轻松,比学别的更轻松。

数据汇总

有句话常说,八成的数据科学工作都是操纵数据,无论是否有这么多,你都要去做,用非常多的时间去做。把数据加工成你想要的形状,而R有着最佳的工具帮你实现。

Dpylr包可以让你的数据操作变得很简易,这是我几年来一直常用的。当你活用起来的时候你会漂亮地完成数据流的。

数据可视化

Ggplot2作为最好的年度数据可视化工具之一。而它的绝妙之处在当你学了语法之后你也就懂得了如何做到数据可视化了。

我说过很多次,所有定型了的视图都有着深层的共同结构。而这个包正是基于这个结构,学会了,你就懂了。

还有,当你把这两个组合起来的时候,这项工作将会变得事半功倍。

机械式学习

最后,来到了这个部分。虽然我认为初学者应该等阵子才开始学(毕竟数据探索更加重要),但还是很重要,当你发现数据探索阻挡住你前进脚步的时候,你就需要新家伙了。

当你准备好学这个之后,R有些东西适合你。

One of the best, most referenced introductory texts on machine learning, An Introductionto Statistical Learning, teaches machine learning using the R programminglanguage. Additionally, the Stanford StatisticalLearning course uses this textbook, and teaches machine learning in R.

学更多的工具和知识!

先弄清楚,你要学习更多的语言,就像工具箱里没有单一的最好的工具一样,同样没有一种语言能万能应对所有情况的。而当你精通R的这三样利器之时,你也就到了学习别的语言去对应各种场合问题的时候。

这里给你个学完R之后其他选择的快速浏览

Python

这是个非常好的多任务编程语言而你应该在某些场合里用它。根据ORELLy的近期调查显示,这语言是第二热门的(在数据科学家中),它拥有非常好的可视化工具,也有很好的机械化学习能力,对于大多数人,这是第二门语言的选择。

D3

我喜欢D3,它的可视化非常漂亮,而起互动性非常适合组建公告栏。我的成品并不非常完好的匹配上。对我来说,D3更多像是雕像工具一般,这是用来做非常优美的数据可视化工具,但是制作出来的东西并不会分析其中产生的冗余和各种情况,当你有非常多的对应客户端包含着新分析和近场联系

我非常乐观。对于所说的GGVIS会让R的用户做出高质量而美观可以互动的可视化。所以有的时候,R用户可以学GGVIS代替。

Summary: Learn R, and focus your efforts

所以详细斟酌,挑好语言,当你开始的时候,R几乎是最好的选择,还有,要非常认真地学习技术。

另外,学习的时候千万不要就看些引人注目的。你就像是要去看那些新技术和工具的表现和阐述,只要看这些人们做的可视化数据和组织。看看别人做出来的大作(找出用啥做的)这会带着你去试试看新东西,信我这句,你需要集中,而不是被东西分散精力,你要画上数个月去深入学习一个工具。然后就像我说的,你确实需要建立起完整的技术于数据科学的洪流上。你需要有扎实的技巧,至少在可视化和组织上。你需要有能力去做些复杂的数据探索(用R)在你开始更深层的学习之前花100小时在R会学到比各自10小时在不同工具上学的好。最好,你的时间利用会因为你对目的的关心而非常高。不要被些吸引人的东西迷惑了。

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-05-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

程序员究竟能干多少年?

IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 来源:酷壳网-陈皓 链接: https://coolshell.cn/articles/...

3358
来自专栏数据科学与人工智能

算法与算法工程师,技术与技术人员

在和刘同学长谈之后,我再次对前一段时间的想法进行了反思,结合聊天中的新感受,整理在这里。 (注:标题里的算法,指机器学习算法,或者说“算法工程师”这个职位名称里...

2847
来自专栏CDA数据分析师

初学者必看丨如何成为一名数据科学家

? 想从事数据科学领域的初学者总是很困惑:应该学习哪种编程语言?专业重要吗?需要掌握哪些工具和技能?在这篇文章中,你的这些问题都能得到解答。 几星期前,我发布...

1905
来自专栏Python数据科学

Stack Overflow 用户画像数据分析

来源 | https://github.com/AAAlvin/Project_Folder/

1276
来自专栏大数据挖掘DT机器学习

为什么“高大上”的算法工程师变成了数据民工?

算法与算法工程师 在知乎里回答“做算法工程师是一种怎样的体验?”的答案(其中的思想并非原创,而是山寨自新加坡某大学一门Quantitative Investme...

7109
来自专栏phodal

为什么说全栈工程师是未来?| 长文多图

谨以此文献给每一个为成为优秀全栈工程师奋斗的人。 节选自《Growth: 全栈工程师学习手册》 ? 技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快...

2368
来自专栏大数据文摘

我在肯尼迪航天中心研究太空机器人:揭秘NASA的编程观

1141
来自专栏企鹅号快讯

即使不做程序员,也要学会像程序员一样去思考

“学习计算机思维”是我们常常会听到的口号,那么下一句呢?或许应该是“学会像程序员一样思考”——如果计算机思维是一个知识库,了解它是时代对人类的要求,那么程序员就...

2076
来自专栏企鹅号快讯

如何成为一名数据科学家

来源Jack Cook 编译 Mika 本文为 CDA 数据分析师原创作品,转载需授权 想从事数据科学领域的初学者总是很困惑:应该学习哪种编程语言?专业重要吗...

1799
来自专栏Java学习网

程序员的未来

程序员的未来 在一个来自于CGP Grey很精彩的视频中,他提出说,在不久的将来,大多数工作将会由机器替代。许多行业,从卡车司机到医生,在不久的将来将会消失或发...

2257

扫码关注云+社区