移动学习网 导航

做了这么多年Java开发,如何快速转行大数据 作为一个Java程序员,该怎么转行做大数据分析师

2024-05-10m.verywind.com
Java程序员如何转型做大数据~

1、技术日渐成熟,应用空间得以拓展
大数据技术,最早于1980年被首次提及,却在近几年才获得突飞猛进的发展。相较于几十年前神经网络算法捉襟见肘的计算能力,如今处理器对大规模数据的高速处理能力无疑发挥了关键性的作用。借助于处理器的高性能,使我们短时间内完成PB 级数据的机器学习和模型训练成为可能,由此为高度依赖深度学习的图像、语音识别产品的快速迭代奠定基础,大数据应用空间得以拓展,也由此催生了提供相关产品与服务的技术公司。
2、重视数据资产,数据挖掘已成必然
现代信息技术使每日产生的数据量呈指数级增长,企业发展再也无法回避对数据价值的挖掘与利用。电商平台利用画像做个性化推荐,互联网金融公司利用高危识别技术管控金融风险,滴滴出行利用交易数据通过实时定价优化利润……这些都是对大数据价值的发掘和利用。随着数据资产意识的加强,数据挖掘也将获得越来越多结合具体行业场景的重视。
3、技术催生业务新模式,蕴含创业新契机
大数据产业链,催生出针对不同版块提供产品和服务的业务组合新模式,无论是利用推荐算法做内容服务的今日头条,还是基于数据整合提供监测服务的 TalkingData,或者是提供底层架构支持的阿里云,无不是发觉了大数据产业链条所蕴含的创业先机。
大数据创业,时至今日热度不减,虽难出BAT那样巨头独大的局面,其提供的相对公平的竞争机会,依然在吸引着新的创业公司加入。
4、市场供不应求,岗位挑战空间大
翻看大数据相关招聘岗位,一方面是供不应求的招聘局面,另一方面是腾讯、华为等大牌互联网公司开出的诱惑薪资,都让普通岗位的程序员跃跃欲试。
再加上这些岗位相比于传统的软件工程,有更高的挑战空间和更大的难度,自然引得更多人才进入到这个领域。
大数据相关岗位有哪些?
1. 偏技术的“算法工程师”
利用算法手段,构建机器学习模型,解决诸如“人脸识别”、“支付风险管控”等高难度问题。它往往既需要工程师在具体问题上有足够的专注力,也需要对相关的算法有足够深度的了解。
2. 偏业务的“数据挖掘工程师”
结合计算机知识,重点攻克复杂业务的算法化和模型化难题。与算法工程师的要求不同,它往往不需要工程师在算法上探索得足够深入,却对知识的广度和技能的交叉度有较高的要求,还需要工程师具备相当和快速的业务理解能力。当然了,对数据的高敏感性也必不可少。
技术 Leader 最想要什么样的人?
1、最好,你是个独当一面的全才
基础条件:扎实的计算机基础、逻辑能力、英文等素质
保障条件:聪明、学习能力强
加分条件:大规模集群开发经验;上层数据应用优化经历;熟悉聚类、分类、推荐、
NLP、神经网络等常见算法;会数据处理,还熟悉聚类、分类、推荐、NLP、神经网络等各种常见算法……
2、退而求其次,有配合团队的长板优势
全才难得,退而求其次,针对不同岗位吸收具有不同特长的人才,以追求团队整体配合的平衡,也不失为一个策略。
计算机视觉领域的大数据公司,往往需要自己的团队中同时具备如下特长的成员。比如精通算法的人才:把图像识别相关算法模型调整到极致;工程实力型人才:高性能实现训练好的算法模型,或者帮团队搭建一整套视频图像数据采集、标注、机器学习、自动化测试、产品实现的平台。
即便同一算法工程团队内部,成员的技能侧重点也要合理搭配,以互为补充。比如,有人专注核心算法研究,就要有人擅长业务分析,专注业务算法模型的实现。
因此,对于想转型大数据的普通程序猿来说,梳理清楚自己现有技能对于新团队的价值非常重要,这是促使新团队决定吸收自己的关键。比如,发挥硬件和底层系统工作经历在算法高速实现上的优势,一旦通过自身擅长的技能切入新团队之后,就有了更多横向发展的机会,帮助自己在大数据相关领域建立更强竞争力。
3、相较当前技能水平,扎实的基础和成长空间更被看重
当前技能水平好比是术,而扎实的计算机基础则处于道的层面,诸如Spark等工具性知识通过后期学习便能轻易掌握,而如果缺少了C++/Java基础想进步却绝非易事。比如,如果算法、数据结构比较强,编程语言上对 C++ 理解较深入,在应用层的学习上,就可能会比其他人快很多。
有人将程序猿能力抽象为一个金字塔模型,虽然对计算机语言的精通是每个工程师都注重的能力,但越基础的素养越蕴含了更多的发展潜力。相比单纯苛责当前技能,能利用基础素养胜任一部分基础工作,然后通过1-2年锻炼接受更复杂问题的程序猿,反而更受企业青睐。
TalkingData 大数据招聘负责人曾直言道,相比于对 Spark 了解更多的人,他们更愿意招收那些 Java 学得好的人。因为 Spark 的接口学习起来相对容易,但是要想精通 Java 是一件很难的事情。如果把 Java 或者 C++ 学透了,那么对计算机技术的认识将很不一样。
转型大数据,要点归纳
1、重视基础
2、发挥专长
3、准备充分
4、首选公司内部转岗

我也做过好多年Java,去年开始也接触了些大数据的架构。跟你情况类似。我的观点是你可以去动手搭建一下,玩玩,其实并不像你想象的那样高深莫测。都是些工具,我不太喜欢学如何用这些工具,只要能解决我要解决的问题,去用就是了。如果工具的实现感兴趣就去看看代码。工具本身怎么用就是个fact,只是知道和不知道的区别。不要觉得做Java就比别人低一等。你一样可以做的很出色。会用那些大数据工具也并不代表能力有多强

报班或自学都可以啊,有Java基础学大数据比较容易。

感觉如果要快速转行大数据,培训是比较快的,自学比较消耗时间。

处理大数据需要一个综合、复杂、多方位的系统,系统中的处理模块有很多,而数据挖掘技术以一个独立的身份存在于处理大数据的整个系统之中,与其他模块之间相辅相成、协调发展。在大数据时代中,数据挖掘技术的地位是无可比拟的。

数据挖掘的基本流程
在正式讲数据挖掘知识清单之前,我先和你聊聊数据挖掘的基本流程。

数据挖掘的过程可以分成以下 6 个步骤。

商业理解:数据挖掘不是我们的目的,我们的目的是更好地帮助业务,所以第一步我们要从商业的角度理解项目需求,在这个基础上,再对数据挖掘的目标进行定义。

数据理解:尝试收集部分数据,然后对数据进行探索,包括数据描述、数据质量验证等。这有助于你对收集的数据有个初步的认知。

数据准备:开始收集数据,并对数据进行清洗、数据集成等操作,完成数据挖掘前的准备工作。

模型建立:选择和应用各种数据挖掘模型,并进行优化,以便得到更好的分类结果。

模型评估:对模型进行评价,并检查构建模型的每个步骤,确认模型是否实现了预定的商业目标。

上线发布:模型的作用是从数据中找到金矿,也就是我们所说的“知识”,获得的知识需要转化成用户可以使用的方式,呈现的形式可以是一份报告,也可以是实现一个比较复杂的、可重复的数据挖掘过程。数据挖掘结果如果是日常运营的一部分,那么后续的监控和维护就会变得重要。

数据挖掘的十大算法
为了进行数据挖掘任务,数据科学家们提出了各种模型,在众多的数据挖掘模型中,国际权威的学术组织 ICDM (the IEEE International Conference on Data Mining)评选出了十大经典的算法。

按照不同的目的,我可以将这些算法分成四类,以便你更好的理解。

l 分类算法:C4.5,朴素贝叶斯(Naive Bayes),SVM,KNN,Adaboost,CART

l 聚类算法:K-Means,EM

l 关联分析:Apriori

l 连接分析:PageRank

1. C4.5

C4.5 算法是得票最高的算法,可以说是十大算法之首。C4.5 是决策树的算法,它创造性地在决策树构造过程中就进行了剪枝,并且可以处理连续的属性,也能对不完整的数据进行处理。它可以说是决策树分类中,具有里程碑式意义的算法。

2. 朴素贝叶斯(Naive Bayes)

朴素贝叶斯模型是基于概率论的原理,它的思想是这样的:对于给出的未知物体想要进行分类,就需要求解在这个未知物体出现的条件下各个类别出现的概率,哪个最大,就认为这个未知物体属于哪个分类。

3. SVM

SVM 的中文叫支持向量机,英文是 Support Vector Machine,简称 SVM。SVM 在训练中建立了一个超平面的分类模型。如果你对超平面不理解,没有关系,我在后面的算法篇会给你进行介绍。

4. KNN

KNN 也叫 K 最近邻算法,英文是 K-Nearest Neighbor。所谓 K 近邻,就是每个样本都可以用它最接近的 K 个邻居来代表。如果一个样本,它的 K 个最接近的邻居都属于分类 A,那么这个样本也属于分类 A。

5. AdaBoost

Adaboost 在训练中建立了一个联合的分类模型。boost 在英文中代表提升的意思,所以 Adaboost 是个构建分类器的提升算法。它可以让我们多个弱的分类器组成一个强的分类器,所以 Adaboost 也是一个常用的分类算法。

6. CART

CART 代表分类和回归树,英文是 Classification and Regression Trees。像英文一样,它构建了两棵树:一颗是分类树,另一个是回归树。和 C4.5 一样,它是一个决策树学习方法。

7. Apriori

Apriori 是一种挖掘关联规则(association rules)的算法,它通过挖掘频繁项集(frequent item sets)来揭示物品之间的关联关系,被广泛应用到商业挖掘和网络安全等领域中。频繁项集是指经常出现在一起的物品的集合,关联规则暗示着两种物品之间可能存在很强的关系。

8. K-Means

K-Means 算法是一个聚类算法。你可以这么理解,最终我想把物体划分成 K 类。假设每个类别里面,都有个“中心点”,即意见领袖,它是这个类别的核心。现在我有一个新点要归类,这时候就只要计算这个新点与 K 个中心点的距离,距离哪个中心点近,就变成了哪个类别。

9. EM

EM 算法也叫最大期望算法,是求参数的最大似然估计的一种方法。原理是这样的:假设我们想要评估参数 A 和参数 B,在开始状态下二者都是未知的,并且知道了 A 的信息就可以得到 B 的信息,反过来知道了 B 也就得到了 A。可以考虑首先赋予 A 某个初值,以此得到 B 的估值,然后从 B 的估值出发,重新估计 A 的取值,这个过程一直持续到收敛为止。

EM 算法经常用于聚类和机器学习领域中。

10. PageRank

PageRank 起源于论文影响力的计算方式,如果一篇文论被引入的次数越多,就代表这篇论文的影响力越强。同样 PageRank 被 Google 创造性地应用到了网页权重的计算中:当一个页面链出的页面越多,说明这个页面的“参考文献”越多,当这个页面被链入的频率越高,说明这个页面被引用的次数越高。基于这个原理,我们可以得到网站的权重划分。

算法可以说是数据挖掘的灵魂,也是最精华的部分。这 10 个经典算法在整个数据挖掘领域中的得票最高的,后面的一些其他算法也基本上都是在这个基础上进行改进和创新。今天你先对十大算法有一个初步的了解,你只需要做到心中有数就可以了。
希望对您有所帮助!~

  • 做了这么多年Java开发,如何快速转行大数据
  • 答:1、会一门基础语言:java/python/scala:如果是java相关开发转大数据,那实在是太容易了,这一项就可以略过了。2、分布式存储及调度理论:hdfs、yarn的理论要理解且熟记,这些对于学习spark 或者hive 以及sql的优化是最最基础...

  • 目前很多人转行去做java工程师,怎样才能真正的快速转行?
  • 答:努力的让页面或者程序运行流畅。同时,可能会需要接触更深一层的内容了,比如J2EE是学Java后端开发必学也必须精通的部分。要学会使用开发工具,但万变不离其宗,还是多动手。然后,还要学会使用数据库,MySQL就是一个较好的入...

  • 如何快速地学习JAVA
  • 答:1、Java SE部分 初级语法,面向对象,异常,IO流,多线程,Java Swing,JDBC,泛型,注解,反射等。2、数据库部分,基础的sql语句,sql语句调优,索引,数据库引擎,存储过程,触发器,事务等。3、前端部分, HTML5 CSS3 ...

  • 有快速学习java技能的途径吗?java培训怎么样
  • 答:不能一概而论,各有利弊,如果自己基础好点,想快速入门Java那就去培训班,自己可以在短时间内学到较多东西,如果你时间充足,那就自学,网上看视频,看书籍,这样也不错,增加自学能力和改错能力,对自己提升很大。如果你...

  • 如何学好JAVA并提高自己?
  • 答:1、利用业余时间学习新的技术 开发行业技术更新换代的比较快,你前几年用到的技术很快就会被新的更好的技术给替代掉,所以如果你不学习就会被会这个技术的人顶替掉,而利用业余时间去学习是最好的选择。同学们可以看一看...

  • 提升Java开发能力的方法?
  • 答:1.高效工作 你如果相当投入于你的工作,比如编程,那么你会避免让自己被其他的因素干扰,你的编程效率会变得很高,你的任务也会完成的更加漂亮,这样你就有更多的时间来思考如何提升你的Java技能,也有更多的时间花在练习Java...

  • java程序员的快速成长经验!
  • 答:如果要想很快速的提高的话,只能是在空闲之余,自己着手完成几个项目,在这基础上在去学习一些适用、当前流行、自己感兴趣的东西。如果你对编程没兴趣的话,还是尽早转行,这是迟早的事,别把自己折腾坏了。若你就是一个...

  • Java开发工程师职业发展如何突破?
  • 答:Spring5,做应用必不可少的最新框架 MyBatis,玩数据库必不可少的组件 二:工程化与工具 工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和团队协作效率,是必不可少的:M...

  • java不像c#开发那么高效率,如何快速掌握它?
  • 答:如eclipse+mysql+sturts+hibernate(ibatis)+spring+jboss就是一个不错的选择。学习java的入门技术非常重要,如果楼主对c#基础比较了解,可以使用对比法快速学习java,其实都是类似的,jdk5.0也出现了foreach语句了,集合类等也...

  • 初级java程序员怎样快速提升自己
  • 答:写出“Hello World”,跟理解那些字是如何显示到屏幕上的是两码事。通过学习支撑你所从事的工作的“基础/底层工作(groundwork)”,你会变得更加在行。看看高级程序员的代码 在工作中看看高级程序员写的代码,然后问一问事情是...

    户户网菜鸟学习
    联系邮箱
    返回顶部
    移动学习网