在技术论坛中或知乎上,看到近几万的朋友都在疑惑,学习Java应该选择什么发展方向,这个咱们在之前的文章中有提到过,Java发展在领域上有三个选择方向:
JavaEE,主要应用于企业级应用开发;安卓开发方向;嵌入式应用开发方向。在此建议大家选择JavaEE方向,因为应用非常广泛,岗位设置也比较多。
但我们从来没有讨论过学习Java,难道这辈子就只能做Java后端开发吗?只能在这条路上奋斗到底吗?难道中途没有其他的选择吗?
偶然认识的一个朋友,最开始是从事Java后端开发的,后来他在业余时间自学成功转入大数据行业,现在是一名大数据工程师,待遇也比之前好更多。前提是他是一名Java后端开发。
大数据是我们如今比较火的一个发展方向,但是很多培训机构有提到几个月速成的,小编觉得不是特别靠谱。
原因有以下:
大数据是一个新生行业,还不太成熟。
Java发展了将近20年,也没有说几个月速成的,最多也就是带你入门,让你对Java的知识结构体系有一个清晰的认知,在后期的工作实践期间成长的速度更快。
大数据的起点要高,并不是所谓的零基础就可以入门的。
我们接下来讲述的有关大数据的学习是有条件限制的,首先你需要是一名普通的工程师,如果你是Java工程师的话更好,但如果你是小白的话,那就只能成为一名工程师的后再来学习大数据吧。
一、认识大数据
大数据本质其实也是数据,不过也包括了些新的特征,
数据来源广;
数据格式多样化(结构化数据、非结构化数据、Excel文件等);
数据量大(最少也是TB级别的、甚至可能是PB级别);
数据增长速度快。
而针对以上新的特征需要考虑很多问题:
例如,数据来源广,该如何采集汇总?采集汇总之后,又该存储呢?数据存储之后,该如何通过运算转化成自己想要的结果呢?
对于这些问题,我们需要有相对应的知识解决。
二、大数据所需技能要求
Python语言:编写一些脚本时会用到。
Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
Ozzie,azkaban:定时任务调度的工具。
Hue,Zepplin:图形化任务执行管理,结果查看工具。
Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。
必须掌握的技能:
Java高级(虚拟机、并发)、Linux 基本操作、Hadoop(HDFS+MapReduce+Yarn )、 HBase(JavaAPI操作+Phoenix )、Hive(Hql基本操作和原理理解)、 Kafka、Storm/JStorm、Scala、Python、Spark (Core+sparksql+Spark streaming ) 、辅助小工具(Sqoop/Flume/Oozie/Hue等)
高阶技能6条:
机器学习算法以及mahout库加MLlib、 R语言、Lambda 架构、Kappa架构、Kylin、Alluxio
三、学习规划
每天需要有3个小时的学习时间,周末的时候需要10小时,如果做不到的话,只能是
第一阶段(基础阶段)
Linux学习
Linux操作系统介绍与安装、Linux常用命令、Linux常用软件安装、Linux网络、 防火墙、Shell编程等。
Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)
掌握多线程、掌握并发包下的队列、掌握JVM技术、掌握反射和动态代理、了解JMS。
Zookeeper学习
Zookeeper分布式协调服务介绍、Zookeeper集群的安装部署、Zookeeper数据结构、命令。
第二阶段(攻坚阶段)
Hadoop、Hive、HBase、Scala、Spark、Python
第三阶段(辅助工具工学习阶段)
Sqoop、Flume、Oozie、Hue这些工具的学习主要在CSDN,51CTO以及官网都可以学习。
总结
在技术行业里面,每天都会有新的东西出现,需要关注最新技术动态,不断学习。任何一般技术都是先学习理论,然后在实践中不断完善理论的过程。
如果你觉得自己看书效率太慢,你可以网上搜集一些课程。
快速学习的能力、解决问题的能力、沟通能力在这个行业是真的非常重要的指标。
要善于使用StackOverFlow和Google来帮助你学习过程遇到的问题。
视频课程推荐:可以去万能的淘宝购买一些视频课程,你输入“大数据视频课程”,会出现很多,多购买几份(100块以内可以搞定),然后选择一个适合自己的。
以上是我们对大数据学习的总结,当然我们也提到了,并不是说零基础的就可以直接学习,需要有编程的基础,要先掌握扎实的编程基础,在此建议学习Java,成为一名工程师的时候,有一定编程经验,自学起来也相对比开始要简单一点,然后对大数据有兴趣或者想要进入这个行业的就可以去学习了。
全部0条评论
快来发表一下你的评论吧 !