高盛最:Python成为未来最重要技能,你准备学哪种编程语言?_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 高盛最:Python成为未来最重要技能,你准备学哪种编程语言?

高盛最:Python成为未来最重要技能,你准备学哪种编程语言?

 2017/9/22 15:38:19    程序员俱乐部  我要评论(0)
  • 摘要:英文原文:WhichLanguagesShouldYouLearnForDataScience?如果让你选择一种语言,你觉得Python和中文,哪个对于未来更重要?大数据文摘作品,作者:PeterGleeson,编译:白丁,吴双,ether,魏子敏。最近,一直以高素质实习生项目闻名的高盛集团发布了一份《2017高盛调查报告》,针对全球2500名在高盛的夏季实习生调查,当问到你认为“哪个语言在未来会更重要”时,在被调查的全球2500名80、90后优秀年轻人中
  • 标签: 未来 Python 重要 技能 编程 编程语言
class="topic_img" alt=""/>

  英文原文:Which Languages Should You Learn For Data Science?

  如果让你选择一种语言,你觉得 Python 和中文,哪个对于未来更重要?

  大数据文摘作品,作者:Peter Gleeson,编译:白丁,吴双,ether,魏子敏。

  最近,一直以高素质实习生项目闻名的高盛集团发布了一份《2017 高盛调查报告》,针对全球 2500 名在高盛的夏季实习生调查, 当问到你认为“哪个语言在未来会更重要”时,在被调查的全球 2500 名 80、90 后优秀年轻人中,72% 选了 Python。

  Python 所代表的数据科学分析能力和编程能力正成为年轻人乃至整个世界最看好的热门或者说必备技能。而除了 Python,数据科学领域还有大把语言可以选择,如何基于自己的需要选择一门最适合自己的编程语言开始学习呢?

  本篇文章将详细对比解析数据科学领域最热门的几大“网红”编程语言:R,Python,SQL,Java, Scala,Matlab,JavaScript,Ruby,并从优缺点、适用领域几个方向让你迅速了解自己最需要哪一款。

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?

  数据科学结合了高大上的统计、数量分析理论与实打实的编程能力,是一个让人想想就有点小激动的工作领域。面对众多编程语言,胸怀大志的数据科学家们在术业有专攻之前难免会有乱花渐欲迷人眼之感。

  尽管不同选择之间没有高低对错,但是有几点是必须要考虑清楚的。你在数据科学家这条路上能走多远取决于很多因素,具体包括:

  深度

  在高级数据科学的世界中,老调重弹是没有前途的。选定语言后,努力把各种包和模型都吃透。决定你掌握程度的首要因素是你能接触到哪些特定领域的包。

  顶级数据科学家必须既是全面编程小能手,也是鼓捣数字神队友。数据科学日常工作的很大一部分都围绕着获取、加工原始数据或“数据清理”,而那些牛逼闪闪的各种机器学习包在这里都毫无用武之地。

  数量

  商用数据科学的步伐通常是快到飞起,因此出活儿快的好处简直数不清。这也使得技术部门能够悄悄地争取一席之地,而只有靠谱的做法才能让把工时降到最低。

  质量

  代码效果最大化有时具有举足轻重的意义,尤其是处理大批量关键数据的时候。编译语言在速度上往往远超解释语言;无独有偶,静态类型语言的故障率也远低于动态类型语言。显而易见,质的提升是以量的减少为代价的。

  从某种意义上讲,我们可以画出这样一对轴线(广度-深度;数量-质量)。下面列出的每种语言都可以在上述范围内找到自己的位置。

  心里有谱之后,我们一起来看看这些数据科学语言中的“网红”。下面的内容仅是本人及朋友、同事在研究和个人使用中总结出的数家之言,绝不是什么标准答案。排序基本上是按照“网红”程度来的,嘿喂狗~

  R语言

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?

  简介

  R 语言以老前辈S语言直系后裔的身份,于 1995 年闪亮登场,此后一路高歌猛进,从成功走向成功。该项目目前采用的语言包括C、Fortran 和R,得到了统计计算R联盟(R Foundation for Statistical Computing)的支持。

  证书

  免费哒!

  优点

  1、开源数据包质量过硬、领域明确、范围广泛。几乎所有你能想到的数量、统计应用都能找到相应的R包,比如神经网络、非线性回归、系统进化、进阶绘图等。

  2、基础安装内置的统计功能和方法非常全面。此外,R语言尤其适合处理矩阵代数。

  3、核心优势之一就是利用 ggplot2 等各种R语言库能够实现数据视觉化。

  缺点

  1、质量。R语言比较慢,这是板上钉钉的。

  2、领域特定。R语言在统计和数据科学领域如鱼得水,但是在通用编程上就有些力不从心了。

  3、不走寻常路。R语言的一些“小脾气”可能会让擅长其他语言的程序猿阴沟里翻船。举个栗子,采用多赋值运算从 1 开始索引,非传统数据结构。

  小结:本职岗位的尖兵

  R 语言功能强大,在众多统计和数据可视化应用中表现出众;开源更是带来了大批活跃的贡献者。最近一个时期R语言的走红彰显了它在“本职工作”上的优异表现。

  Python 语言

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?

  简介

  1991 年,经 Guido van Rossum(吉多·范罗苏姆)推出后,Python 就成为了通用语言中的大热门,在数据科学社区中得到了广泛应用。目前使用的主流版本是 3.6 和 2.7。

  证书

  免费哒!

  优点

  1、极受欢迎的主流通用编程语言,模型种类多、适用范围广,有众多社区支持。

  2、许多在线服务都提供 Python API。

  3、上手简单。低门槛使其成为菜鸟程序猿的理想“初恋”。

  4、Pandas、scikit-learn 和 Tensorflow 等包使 Python 在高级机器学习应用中也有很强的存在感。

  缺点

  1、型别安全:作为一个动态类型语言,Python 时时刻刻求关注。类型错误(比如向心心念念期待着 Integer 的方法传递了一个 String)差不多是家常便饭了。

  2、对于特定的统计、数据分析问题,R包“海纳百川”式的涵盖范围使其在面对 Python 时有那么一丢丢优势;但是谈到通用语言,Python 总能给你更快、更安全的选择。

  小结:哪里需要哪里搬的好手

  Python 是数据科学语言的上佳之选,对象绝不仅限于初学者。很多数据科学流程都围绕着 ETL(抽取-转换-加载)展开,这与 Python 的通用性简直是天作之合。诸如谷歌 Tensorflow 等库更使得 Python 在机器学习领域大出风头。

  SQL 语言

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?

  简介

  结构化查询语言(SQL)是关系数据库的定义者、管理者和查询者。虽然自 1974 年面世后历经多次实现,但核心原则从未改变。

  证书

  看情况-有些实现是免费的,有些受版权保护。

  优点

  1、在关系数据库的查询、升级和操作上效率极高。

  2、声明语法的使用让 SQL 通常都具有极强的可读性,比如“SELECT name FROM users WHERE age > 18”的意义就十分明确清晰。

  3、SQL 应用范围广泛,因此熟悉该语言还是很有用的。程序猿们利用诸如 SQLAlchemy 等模块可以直接把 SQL 整合到其他语言中。

  缺点

  1、SQL 的分析能力十分有限-除了求和、计数和求平均数,你也没啥能选的。

  2、具有命令式语言背景的程序猿可能需要一段时间来掌握 SQL 的声明语法。

  3、SQL 具有众多实现,比如 PostgreSQL、SQLite 和 MariaDB 等。这些实现的差异之大使得互操作性成为了一个颇为棘手的问题。

  小结:高效的经典款

  与其作为高级分析工具,SQL 在数据处理上表现得更加得心应手。然而,数据科学工作的大头都依赖于 ETL,SQL 的长盛不衰和简明高效恰恰证明这是一门值得现代数据科学家了解掌握的有用语言。

  Java 语言

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?

  简介

  Java 是在 Java 虚拟机上运行的一门非常受欢迎的通用语言。这个抽象计算系统能够实现跨平台的无缝移植。目前有甲骨文公司支持该语言。

  证书

  第八版-免费哒!旧版本受版权保护。

  优点

  1、无处不在。很多现代系统和应用都建立在 Java 后台上。它能够将数据科学的各种方法直接与现有的代码库整合;功能强大,你值得拥有。

  2、强型别。需要确保型别安全时,Java 单刀直入的风格对于那些至关重要的大数据应用而言简直是无价之宝。

  3、作为一种高质量、通用型编译语言,Java 非常适合编写高效的 ETL 产品代码和计算强大度的机器学习算法

  缺点

  1、Java 冗长的代码并不适合专门分析和更为细致的统计应用。R和 Python 等动态类型语言的输出显然更胜一筹。

  2、与R等领域明确的语言相比,Java 并没有太多适用于高级统计方法的的库。

  小结:数据科学的有力竞争者

  把 Java 作为数据科学首选语言能够带来不少益处。将数据科学产品代码与现有代码库直接无缝整合的能力是众多公司梦寐以求的;你会发现,Java 在此方面和型别安全上的优异表现是货真价实的加分项。然而,面对其它语言时,你也不得不面对没有各类统计特定包可用的现状。尽管如此,Java 仍然值得拥有-尤其是你已经掌握了R和/或 Python 的情况下。

  Scala

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?

  简介

  由 Martin Odersky 开发,并于 2004 年发布,Scala 是一种在 JVM 上运行的语言。 它是一种多范式语言,融合了面向对象和函数式编程。集群计算框架 Apache Spark 就是用 Scala 编写的。

  证书

  免费!

  优点

  1、Scala + Spark =高性能集群计算。 Scala 是使用大容量数据集的人的理想语言选择。

  2、多范式:Scala 兼容面向对象和函数式编程,这使得 Scala 的程序员们两种范例都可用。

  3、Scala 被编译为 Java 字节码并在 JVM 上运行。 这使得其具有了与 Java 语言本身的互操作性,使 Scala 成为非常强大的通用语言,同时也非常适合数据科学。

  缺点

  1、对于初学者来说 Scala 并不是一个简单的编程语言来起步和运行。 你最好的选择是下载 sbt 并使用特定的 Scala 插件设置 Eclipse 或 IntelliJ 等 IDE。

  2、其语法和类型系统通常被认为是比较复杂的。这为来自动态语言(如 Python)的用户提供了一个陡峭的学习曲线。

  结论:完美,适合大数据

  当使用集群计算来处理大数据时,Scala + Spark 是非常棒的解决方案。 如果你有 Java 和其他静态类语言的经验,你也将会非常欣赏 Scala 的性能。然而,如果你的应用程序无法用来处理一定量的数据,这恰恰证明了 Scala 增加的复杂性,你可能会发现使用其他语言(如R或 Python)的效率要高得多。

  Julia

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?

  简介

  5 年前发布的 Julia 在数值计算领域让人印象深刻。由于几家主要机构(多为金融行业)的早日采用,其形象得到了提升。

  证书

  免费!

  优点

  1、Julia 是一种 JIT(“准时”)的编译语言,可以提供良好的性能。 它还提供像 Python 一样简单、 动态类型和脚本功能的解释性编程语言。

  2、Julia 是专为数值分析而设计的。它也能够进行通用编程。

  3、可读性。 该语言的许多用户将此视为其主要优点。

  缺点

  1、成熟性。 作为一种新的语言,一些 Julia 的用户在使用程序包时经历了不稳定。但其核心语言本身据悉是足够稳定,可运用的。

  2、程序包数量有限是语言处于新生阶段和开发社群较小的另一个后果。不像建立很长时间的R和 Python,Julia 目前在软件包上还没有太多的选择性。

  结论:它是未来

  Julia 的主要问题目前并不能过分苛责。作为最近开发的语言,它不像 Python 和R这些竞品那样成熟和生产就绪。但是,如果你愿意耐心等待,那么在未来几年里,我们有充分的理由去密切关注 Julia 的进一步发展。

  MATLAB

高盛最新调查:Python 超过汉语成为未来最重要技能,你准备学哪种编程语言?
简介

  MATLAB 是在学界和业界广泛使用的一种老牌数值计算语言。 它是由 MathWorks 公司开发和许可的,MathWorks 成立于 1984 年,主营该软件的商业化。

  证书

  专有的  - 定价根据用途而有所不同。

  优点

  1、专为数值计算而设计。MATLAB 非常适合具有复杂数学要求的定量应用,如信号处理,傅里叶变换,矩阵代数和图像处理

  2、数据可视化。 MATLAB 有一些很好的内置绘图功能。

  3、MATLAB 通常被作为诸如物理,工程和应用数学等量化类专业的本科课程的一部分。 因此,它在这些领域得到了广泛应用。

  缺点

  1、专利许可。 根据用途(学术,个人或企业),你可能需要支付昂贵的许可证费用。 有免费的备选方案如 Octave。 这是你需要认真考虑的问题。

  2、MATLAB 不是通用编程的明显选择。

  结论:最适合数学需求高的应用

  MATLAB 在整个业界和学界的许多定量和数值研究领域的广泛应用使其成为了数据科学的重要选择。其明确的应用场景是当你的应用程序或日常角色需要大量的高级数学功能时,的确,MATLAB 是专为此而设计的。

  其他编程语言

  还有一些数据科学家可能会也可能不会感兴趣的其他主流语言。本节提供了一个快速的概述...当然有充足的论证空间!

  C++

  C ++ 并不是数据科学的常见选择,尽管它具有运行速度快的性能和广泛的主流流行度。其简单的原因可能是生产力与性能的问题。

  正如一个 Quora 用户所说:

  “如果你正在编写代码进行一些可能只运行一次的专项分析,你是愿意花 30 分钟的时间编写一个将在 10 秒内运行的程序,还是在 10 分钟内编写一个将运行 1 分钟的程序?”

  这个小伙伴抓到了重点。然而,对于重要的生产级别性能而言,C ++ 将是实现在低级别机器学习算法优化的绝佳选择。

  结论:不服务于日常工作,但如果性能表现是至关重要的...

  JavaScript

  随着近年来 Node.js 的兴起,JavaScript 越来越成为重要的服务器端语言。然而,它在数据科学和机器学习领域的使用已十分有限(不过可查看 brain.js 和 synaptic.js!)。

  它具有以下缺点:

  1、入局太晚(Node.js 只有 8 岁!),意味着...

  很少有相关的数据科学库和模块可用。 这意味着没有引起真正的主流兴趣或动力。

  2、性能方面,Node.js 很快。 但 JavaScript 作为一种语言并不是没有它的槽点。

  Node’s的优势在于异步 I / O,其被广泛使用,且存在于可编译为 JavaScript 的语言中。 因此,可以想象,数据科学的有用框架和实时 ETL 处理可以结合在一起。关键问题是这是否会提供些新的特别之处。

  结论:JavaScript 距成为重要的数据科学语言还有很长的路要走

  Perl

  Perl 被称为“编程语言的瑞士军刀”,得名于其作为通用脚本语言的多功能性。 它与 Python 有很多共同之处,同样是一种动态类型的脚本语言。但是,在数据科学领域,它还没有像 Python 一样的人气

  这看起来有点难以置信,尤其是如果你知道它在定量领域如生物信息学中的应用。 Perl 在数据科学方面有几个关键的缺点。它不是很突出,它的语法是不友好的。数据科学专用程序库的开发并不像生物信息学那样有大的进展。在任何领域,势头都是关键。

  结论:一个有用的通用脚本语言,但它并不能给你的数据科学简历带来真正的优势

  Ruby

  Ruby 是另一种通用的动态类型的解释语言。然而,它并没有在数据科学得到像 Python 一样的应用。

  这似乎是令人惊讶的,但可能是 Python 在学术界的主导地位和正面反馈效应的结果。 使用 Python 的人越多,开发的模块和框架就越多,从而越来越多的人会转而使用 Python。SciRuby 项目的存在是为了将如矩阵代数这样的科学计算功能引入到 Ruby 中。但是目前来看,Python 还是领先的。

  结论: 对于数据科学来说目前还不是一个明显的选择,但对简历也没什么坏处。

  总结

  好了,现在你有了一个数据科学领域编程语言选择的快速指南。然而,选择最合适语言的关键是,你要了解你使用需求的一般性与特殊性,以及你个人偏爱的基于性能与生产力平衡的开发风格。

  我一般使用R,Python 和 SQL,因为我目前的角色主要侧重于开发已有数据的流水线和 ETL 流程。这些语言可以平衡一般性和生产力来完成这项工作,并可以在需要时使用R的高级统计软件包。

  不过 – 也许你已经有了 Java 的经验, 或者你可能想使用 Scala 来处理大数据。 或者,你热衷于参与 Julia 项目。

  也许你在大学学过 MATLAB,也许你还想给 SciRuby 一个机会? 或者你有一个完全不同的建议! 如果是这样,请在下面回复 - 我期待着你的声音!

发表评论
用户名: 匿名