Java后端开发工程师是否该转大数据开发?
撰写我对java后端开发工程师选择方向的想法,写给在java后端选择转方向的人
背景
看到一些java开发工程师,对java后端薪酬太悲观了。认为换去大数据领域就会高工资。觉得java后端没有前途。我从事java后端开发,对大数据领域工作有些了解,但不深入。本文描述一下我对java后端和是否转大数据开发的个人见解。
目的
分析大数据领域分类
分析大数据工作工资高的原因
分析造成觉得java后端开发不够前景的原因
java后端转大数据工作做什么
转去大数据领域的各类方向与java后端比较衡量
一、大数据领域工作我认为分4类
类别业务开发架构组
1数据处理ETL、爬虫未知
2数据统计实时流式计算、离线流式计算、Elastic-search分词统计架构研究spark hadoop源码开发数坊系统、shuffle优化。
3数据分析基于mahout、sparkStream 做机器学习、自然语言性能优化
4数据算法/建模推荐算法、用户画像、风控建模未知
二、大数据领域工资高的原因
大家看到大数据工资高,其实是大数据领域包含了建模或者算法工程师那部分。高工资的就只有推荐算法、用户画像、风控建模、自然语言这些工作,职位为算法或者建模工程师。
然而大数据领域的大部分工作,都是上图表中,第1、2类的工作,如:etl、爬虫、实时离线流式计算,es、顶多就机器学习。即使这些工作也只是工程级的应用(换句话说就是写业务代码,搬砖),如果工资高也是有架构能力(提升spark性能之类),而不是大数据应用开发。
三、分析造成觉得java后端开发不够前景的原因
有人觉得java后端开发工资低,没有前景,没有适应时代。第一、大数据时代很久了,很早就开始招大数据了,不是需求火爆的状态,如安卓工程师一开始火,如现在做的人多了,像安卓变多了,大数据的应用开发就不像2014年刚开始的时候那么高工资了,但是大数据中算法、建模工程师依然高薪,那种要求高质量高的工作都是10个人里面只有1个会的那种。第二、很多java后端开发都是业务开发,写好业务没bug渡过一天又一天,没有遇到好项目或者没有自主学习,导致做了很久的java开发工程师,都是做业务,写CRUD、redis、mq等,会写代码是一回事,但是有没有好的技术方案就是另外一回事。
四、Java后端转大数据工作做什么
java换去做大数据其实只能做etl、爬虫、实时离线流式计算,es、顶多就机器学习这些工程级的应用,也就换套工具写业务代码,换套工具搬砖而已。因为Java开发人员多数是使用、应用程度,而不是研究程度,所以Java工程师转大数据很少有人会做到第3、4类的工作,如果做第3、4类估计是重新开始了。其实第1、2类这些工作薪酬跟java后端没什么区别,毕竟两个领域都有纯业务搬砖和自带技术体系的人。
这些大数据工程级应用(第1、2类),也有架构组,如同java后端一样,也有业务架构和基础架构。其实如果积累经验java后端和这些大数据晋升我认为是一样的。
举例
假如表中的第2类,大数据工程级应用做spark、hadoop,一种是做应用开发,如双11在页面显示华为、小米等品牌实时出货量多少,就用实时流式计算。另一种属于架构工作,如开发个数坊系统(也叫数据仓库、DataWareHouse)出来让大数据应用开发同事在上面做 OLAP。这些架构组的人,一般需要对hadoop、spark、presto源码有过研究,或许会在上面二次开发,或者进行性能优化工作。前者是换套工具搬砖,后者是架构组。如同java也有些业务代码和架构设计。
五、转去大数据领域的各类方向与java后端比较衡量
考虑方向
要么转做大数据架构,如研究spark、hadoop、presto,搞个数坊系统、shuffle调优等,毕竟属于架构组,工资会高一点。
要么转做推荐算法、用户画像、建模/算法类。而这部分工作都是有要求的,算法过硬、研究生、985、211 、数学专业,这些工作也会更高。数据挖掘与分析不止会mathot、spark streaming,还有SAS/SPSS 。
如果转做大数据应用做实时流式计算、离线流式计算、es分词统计,其实是相当于业务码农,如果有java后端开发经验的话,这种那还不如在java后端继续深耕,毕竟换去做大数据应用开发深耕也是一样的。
考虑晋升机会
考虑另一部分,能晋升到领导位置的,一般是伴随公司成长的核心员工。公司成长,开始是业务,一般都是java后端业务代码。等到中期、后期做报表才会用上大数据业务开发(第1、2类),有性能问题就会有架构组,再后期才到推荐算法这些让app更好体验的东西,如淘宝首页推荐。所以业务架构在前期就比较容易晋升。
等公司成长起来了,公司有钱自然就会招很好的算法、建模工程师做真正有价值的部分。
而实时流式计算、elastic-search这些业务码农,也只是搬砖,现在做的人像安卓一样多了,就不像2014年刚开始的时候那么高工资了。
考虑所在城市的岗位数量
如第3、4类工作,岗位比较少,换公司换工作是否方便,有些公司如:中国移动 的第3类大数据工作就有外包出去,不是正式编制。画好跳槽路线,因为转行第一间不一定是你的终点,所以要看其他的更上流的企业的要求是否能匹配自己。
BackUp作用
多学大数据只是防止当前公司业务停止,没有业务开发时,java后端开发工程师可能被裁员掉,学大数据和前端React.js类只是对于java后端开发另谋活路的backup。因为有些职位就希望你全栈,但现在很多都前后端分离的。
而被淘汰掉的java后端只是写业务代码,用用redis、mq。
java后端人人都会写,java后端技术领域还是很广的,但有没有写出好的技术方案就另外一回事。
总结
大数据、前端页面开发对于java后端开发工程师来讲,我觉得了解就可以了,知道有解决办法,不必每个领域都精通,况且没办法每个领域都精通。
如果后端开发转去做大数据、项目经理、产品经理岗位,估计都是java后端技术没做上去(本身不喜欢做程序员的也有可能),或者是只会做纯业务代码这些被淘汰掉了,所以就换领域了,还有转hr的。不过同级别的java后端开发和产品经理薪资确实有差距,估计一两千。
我觉得大数据工程级应用开发(第1、2类)和Java后端开发薪资就没什么差距,以前java后端能转大数据应用开发,是因为那时候还缺人,现在不缺人了,要招都是招有真实经验的。如果你从事java后端开发几年了,要转大数据领域,相当于你有一个升高级java开发工程师的机会,还是选择中级大数据应用开发工程师的机会,反正都是写业务代码的。如果你的条件过硬,如985/211学历、数学专业、算法研究经验,如果要转算法/建模工程师就早点转,大数据领域高工资的就是这类人。如果java后端开发工作经验4以上年了,没有硬性条件,建议继续深入后端学习。如果java后端开发工作一两年,你想怎么转都可以。
如想了解薪酬,可以在招聘网站搜大数据工程师(一般就是指第1、2类的),和算法工程师、风控建模工程师、推荐算法工程师、用户画像工程师。我所知道有个风控建模经理三万多。
Java后端开发工程师是否该转大数据开发?的更多相关文章
- 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进
点击上方 蓝字关注我们 作者 | 宋哲琦 ✎ 编 者 按 在不久前的 Apache DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统 ...
- 杭州某知名xxxx公司急招大量java以及大数据开发工程师
因公司战略以及业务拓展,收大量java攻城狮以及大数据开发攻城狮. 职位信息: java攻城狮: https://job.cnblogs.com/offer/56032 大数据开发攻城狮: https ...
- BAT推荐免费下载JAVA转型大数据开发全链路教程(视频+源码)价值19880元
如今随着环境的改变,物联网.AI.大数据.人工智能等,是未来的大趋势,而大数据是这些基石,万物互联,机器学习都是大数据应用场景! 为什么要学习大数据?我们JAVA到底要不要转型大数据? 好比问一个程序 ...
- Java转大数据开发全套视频资料
大数据在近两年可算是特别火,有很多人都想去学大数据,有java转大数据的,零基础学习大数据的.但是大数据真的好学吗. 我们先来了解一下什么是大数据. 大数据是指无法在一定时间内用常规软件工具对其内容进 ...
- windows下大数据开发环境搭建(1)——Java环境搭建
一.Java 8下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载之后 ...
- Java转型大数据开发全套教程,都在这儿!
众所周知,很多语言技术已经在长久的历史发展中掩埋,这期间不同的程序员也走出的自己的发展道路. 有的去了解新的发展趋势的语言,了解新的技术,利用自己原先的思维顺利改变自己的title. 比如我自己,也都 ...
- 2019春招——Vivo大数据开发工程师面经
Vvio总共就一轮技术面+一轮HR面,技术面总体而言,比较宽泛,比较看中基础,面试的全程没有涉及简历上的东西(都准备好跟他扯项目了,感觉是抽取的题库...)具体内容如下: 1.熟悉Hadoop哪些组件 ...
- 大数据开发实战:Spark Streaming流计算开发
1.背景介绍 Storm以及离线数据平台的MapReduce和Hive构成了Hadoop生态对实时和离线数据处理的一套完整处理解决方案.除了此套解决方案之外,还有一种非常流行的而且完整的离线和 实时数 ...
- 大数据开发实战:离线大数据处理的主要技术--Hive,概念,SQL,Hive数据库
1.Hive出现背景 Hive是Facebook开发并贡献给Hadoop开源社区的.它是建立在Hadoop体系架构上的一层SQL抽象,使得数据相关人员使用他们最为熟悉的SQL语言就可以进行海量数据的处 ...
随机推荐
- Java 从入门到进阶之路(二十)
在之前的文章我们介绍了一下 Java 中的包装类,本章我们来看一下 Java 中的日期操作. 在我们日常编程中,日期使我们非常常用的一个操作,比如读写日期,输出日志等,那接下来我们就看一下 Java ...
- 使用ASP.NET Core 3.x 构建 RESTful API - 4.3 HTTP 方法的安全性和幂等性
什么样的HTTP方法是安全的? 如果一个方法不会该表资源的表述,那么这个方法就被认为是安全的. 例如 HTTP GET 和 HTTP HEAD 就被认为是安全的,但需要注意的是,这并不意味着执行GET ...
- 傅立叶变换—DFT
背景:最近看到实验室其他同学在用傅立叶变换解决问题,我也想通过并行来解决这个问题,所以看了一下傅立叶变换的东西,感觉涵盖的东西还能多,我只是初步做了一下了解(一定很片面,但是我主要是为了应用它,主要了 ...
- C++ | C++ 基础知识 | 类型与声明
一.类型 C++ 包含一整套基本类型,这些类型对应计算机最基本的存储单元并且展现 1.0 布尔值 一个布尔变量(bool)的取值或者是 true 或者是 false,布尔变量常用于表达逻辑运算结果. ...
- KindEditor.ready 不执行的解决方法
问题描述 按照官网的要求,一一都设置好了,但就是没法显示富文本编辑器. 1.设置好textarea输入框 <textarea id="myEditor" name=" ...
- OpenStack Identity API v3
Table Of Contents OpenStack Identity API v3 What’s New in Version 3.7 What’s New in Version 3.6 What ...
- ArcGIS Desktop 10.1 下载地址及破解
ArcGIS Desktop 10.1 正式版请到这里下载 http://pan.baidu.com/share/link?shareid=27476&uk=3608003693 正式版破解方 ...
- Java之String类用法总结
String类概述: 1.String类代表字符串.Java 程序中的所有字符串字面值(如"abc")都作为此类的实例实现. 2.String是一个final类,代表不可变的字符序 ...
- 20190925Java课堂记录(一)
判断字符串是否回文 设计思想 利用递归,每次返回长度减二的字符串,最终返回结果 源程序代码 import java.util.Scanner; public class palindrome { st ...
- scrapy在存储数据到json文件中时,中文变成为\u开头的字符串的处理方法
在settings.py文件中添加 FEED_EXPORT_ENCODING = 'utf-8'