为什么入门大数据选择Python而不是Java?
作者:小媛 发布时间:2022-04-01 00:14:46
马云说:“未来最大的资源就是数据,不参与大数据十年后一定会后悔。”毕竟出自wuli马大大之口,今年二月份我开始了学习大数据的道路,直到现在对大数据的学习脉络和方法也渐渐清晰。今天我们就来谈谈学习大数据入门语言的选择。当然并不只是我个人之见,此外我搜集了各路大神的见解综合起来跟大家做个讨论。
java和python的区别到底在哪里?
官方解释:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平 * 立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Python是一种面向对象的解释型计算机程序设计语言,Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。
java和python,都可以运行于linux操作系统,但很多linux可以原生支持python,java需要自行安装。java和python强于c#的原因大于支持linux,支持osx,支持unix,支持arm。java和python比c++受欢迎的原因在于不需要指针。
不少想学习大数据的零基础学员都知道,学大数据部分课程之前要先学习一种计算机编程语言。大数据开发需要编程语言的基础,因为大数据的开发基于一些常用的高级语言,比如Java和python。不论是大数据生态架构,还是数据挖掘,都需要有高级编程语言的基础。因此,如果想学习大数据开发,还是需要着手学习一门高级语言。
那学习大数据我们到底该选择什么?
咱们再来说下大数据。目前国内很多人在说大数据的时候,实际上是把大数据技术和数据科学(含数据分析、数据挖掘、机器学习)混在一起的,许多讨论和争辩其实源于大家说的不是一个事情。 目前高等学校已经有了大数据相关的专业,名字起得也很好,叫《数据科学和大数据技术》,就是把大数据分成两个方向来看待的。数据科学侧重数学抽象和软件工具的使用,对数学和编程要求较高;而大数据技术侧重软件工程实施,对计算机和编程要求较高。虽然两个方向都强调编程,但数据科学的编程是泛编程,可以简单理解为以使用脚本语言或需要编程的软件工具(如Matlab、SAS、R),而大数据技术的讲的编程是计算机通用编程语言(如Java/C/Python),职位也更接近我们所说的程序员或者说“码农”。
根据我在知乎、简书、CNDS等等论坛上关于两者语言的讨论综合得出以下结论:
java主要用于商业逻辑强的领域,如商城系统,erp,oa,金融,保险等传统数据库事务领域,通过类似ssh框架事务代码,对商业数据库,如oralce,db2,sql server等支持较好,软件工程理念较强,适合软件工程式的多人开发模式。python主要用于web数据分析,科学计算,金融分析,信号分析,图像算法,数学计算,统计分析,算法建模,服务器运维,自动化操作,快速开发理念强,适合快速开发团队或个人敏捷模式。
Python既是一种面向对象的编程语言又因为其简单、易学、开源、脚本语言范儿的“人设”,是一种既适合数据科学又适合大数技术从业者学习的语言。
如果你想学一门语言,可以从语言的适用性、学习的难易程度、企业主的要求几个方面考虑,从这几个角度看,学习Python都没有什么可挑剔的。
从语言的适用性看,Python有个外号叫“胶水语言”,就是说Python可以随意地组合它和其它程序,它可以作为一个中间处理模块的代码把其他代码“粘合”在一个工程里面,从而快速的部署和实施。
除了在大数据和数据科学领域,它在web前端开发等领域也有广泛应用。从学习难易度来看,作为一个为“优雅”而生的语言,Python语法简捷而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。
在一些习惯于底层程序开发的“硬核”程序员眼里,Python简直就是一种“伪代码”。 从企业主来看,随便打开一个大数据开发的招聘JD,你就会发现不少企业招聘大数据开发工程师时,对具体编程语言的要求已经不再严苛,一般情况下你只要熟练掌握Java/C/Python中的其中一个即可以,毕竟软件工程师的的核心能力不是语言本身而是逻辑思考能力,况且现在中间件这么多,各种语言之间的适配和转换也越来越容易,企业需要的是解决问题,而Python was born for it. 就大数据技术而言,Java在PaaS和SaaS层都有非常多的实践和应用,如果你有Java的基础,可以继续学好Java。
如果你没有Java基础,又想往大数据技术方向发展,那么你或许可以考虑把Python作为你的First language。 在数据科学领域,尤其是在深度学习领域,Python是当仁不二的选择。
当然,任何语言都不是完美的,如果你是一个拥抱变化,未来希望在数据工程和软件工程领域都有发展机遇的话,那么我建议你毫不犹豫的拥抱Python,并不断的尝试新的工具和技术。在实际使用的python入门简单,但要学会用python干活,需要再学习python各种库,pyhton的强大在于库,为什么python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用,所以无论gpu运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。
而java没有python那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个jar包,看不到原始代码。python虚拟机因为编译性没有java的支持的好(或者说故意这么设计的),一般直接使用源码(linux),或源码简单打个包(如pyexe)。
小媛建议
对于初学者,尤其是没有接触过语言的人想入门大数据,个人觉得先学python,后学java。首先python作为一门脚本语言,很容易入门。编程并不是说掌握一门或几门语言就足够了,重在提高思维能力。而python容易入门,工具多,短短数行代码就可以实现一个强大的功能,增强初学者的信心,另一方面让初学者有一个对编程思维的初步理解。
在这之后再学习java,首先语法很容易入门,再者对编程有一定理解后,才更能体会到类,继承,接口,甚至之后接触各种框架,这些内容对于大型项目带来的优势。
转载声明:本文转载自「程序媛不是程序猿」


猜你喜欢
- C#函数返回多个参数数值通过out/Ref实现,声明函数时用out指定返回变量。写了一个DEMO,输入字符“测试字符&a
- 前言不知道从哪一个版本起,Android studio 设置界面中已经没有忽略文件的设置。可能也是没有找到。下面简单记录下如何简单高效的配置
- 1.sax方式 /** * 使用sax解析 */ public class SaxParse{ /** * sax解析器 */ privat
- Android中很多产品(比如360手机助手、网易菜单...)都采用侧滑菜单的展现形式,采用这种展现形式1、能把更多的展现内容都存放在菜单中
- 这篇文章主要介绍了Java代码块与代码加载顺序原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 发现问题:问题如图所示,在eclipse中开启tomcat服务器时报错:端口已被占用。这是因为在tomcat开启的状态下,eclipse异常
- 一、 PorterDuffXfermodePorterDuffXfermode类似于数据集合里面的交集并集概念,只是数据里面取的是两个集合,
- Spring-boot JMS 发送消息慢的问题解决1、在《ActiveMQ 基于zookeeper的主从(levelDB Master/S
- 最近需要对接支付宝的支付接口,官方文档写得内容有点分散,整理了一下发布出来,用作记录,同时也希望对不了解情况的人有所帮助,这里以电脑端的网页
- 自定义控件的步骤:1 View的工作原理2 编写View类3 为View类增加属性4 绘制屏幕5 响应用户消息6 自定义回调函数java代码
- Kotlin中函数都是头等的,这意味着它可以存储在变量与数据结构中、作为参数传递给其他高阶函数以及从其他高阶函数返回。可以向操作任何其他非函
- 本实例使用用户和订单的例子做说明: 一个用户可以有多个订单, 一个订单只对应一个用户。(其中应用到注释)1.代码的结构2. 建表语
- SpringBootTest单元测试报错@RunWith(SpringRunner.class)@SpringBootTest(classe
- .Net为我们提供了众多的泛型集合。比如,Stack<T>先进后出,Queue<T>先进先出,List<T&g
- 一、下载安装包 1. JDK1.8百度云下载路径:百度网盘下载链接: https://pan.baidu
- 当只需要两个图像合并的时候,可以简单的使用gdi+,把两个图像画到一个画布上面实现合并bitmap.当需要将许多bitmap合并时,由于bi
- 本文实例讲述了linux环境下java程序打包成简单的hello world输出jar包。分享给大家供大家参考,具体如下:1. linux必
- @Transactional 内部调用例子 🌰在 Spring 的 AOP 代理下,只有目标方法由外部调用,目标方法才由 Spring 生成
- 一个类,有时候搞不清楚到底用成员变量还是属性。 如: 成员变量 public string
- 本文实例为大家分享了Android实现签名涂鸦手写板的具体代码,供大家参考,具体内容如下布局文件<?xml version="