撰写我对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后端开发工程师是否该转大数据开发?的更多相关文章

  1. 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进

    点击上方 蓝字关注我们 作者 | 宋哲琦 ✎ 编 者 按 在不久前的 Apache  DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统 ...

  2. 杭州某知名xxxx公司急招大量java以及大数据开发工程师

    因公司战略以及业务拓展,收大量java攻城狮以及大数据开发攻城狮. 职位信息: java攻城狮: https://job.cnblogs.com/offer/56032 大数据开发攻城狮: https ...

  3. BAT推荐免费下载JAVA转型大数据开发全链路教程(视频+源码)价值19880元

    如今随着环境的改变,物联网.AI.大数据.人工智能等,是未来的大趋势,而大数据是这些基石,万物互联,机器学习都是大数据应用场景! 为什么要学习大数据?我们JAVA到底要不要转型大数据? 好比问一个程序 ...

  4. Java转大数据开发全套视频资料

    大数据在近两年可算是特别火,有很多人都想去学大数据,有java转大数据的,零基础学习大数据的.但是大数据真的好学吗. 我们先来了解一下什么是大数据. 大数据是指无法在一定时间内用常规软件工具对其内容进 ...

  5. windows下大数据开发环境搭建(1)——Java环境搭建

    一.Java 8下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载之后 ...

  6. Java转型大数据开发全套教程,都在这儿!

    众所周知,很多语言技术已经在长久的历史发展中掩埋,这期间不同的程序员也走出的自己的发展道路. 有的去了解新的发展趋势的语言,了解新的技术,利用自己原先的思维顺利改变自己的title. 比如我自己,也都 ...

  7. 2019春招——Vivo大数据开发工程师面经

    Vvio总共就一轮技术面+一轮HR面,技术面总体而言,比较宽泛,比较看中基础,面试的全程没有涉及简历上的东西(都准备好跟他扯项目了,感觉是抽取的题库...)具体内容如下: 1.熟悉Hadoop哪些组件 ...

  8. 大数据开发实战:Spark Streaming流计算开发

    1.背景介绍 Storm以及离线数据平台的MapReduce和Hive构成了Hadoop生态对实时和离线数据处理的一套完整处理解决方案.除了此套解决方案之外,还有一种非常流行的而且完整的离线和 实时数 ...

  9. 大数据开发实战:离线大数据处理的主要技术--Hive,概念,SQL,Hive数据库

    1.Hive出现背景 Hive是Facebook开发并贡献给Hadoop开源社区的.它是建立在Hadoop体系架构上的一层SQL抽象,使得数据相关人员使用他们最为熟悉的SQL语言就可以进行海量数据的处 ...

随机推荐

  1. ELK学习实验009:安装kibana的仪表盘

    一 metricbeat仪表盘 1.1 安装metricbeat仪表盘 可以将metricbeat数据在kibana中展示 [root@node4 ~]# cd /usr/local/metricbe ...

  2. 关于有向图走“无限次”后求概率/期望的口胡/【题解】HNCPC2019H 有向图

    关于有向图走"无限次"后求概率/期望的口胡/[题解]HNCPC2019H 有向图 全是口胡 假了不管 讨论的都是图\(G=(V,E),|V|=n,|E|=m\)上的情况 " ...

  3. 【题解】CF742E (二分图+构造)

    [题解]CF742E (二分图+构造) 自闭了CodeForces - 742E 给定的条件就是一个二分图的模型,但是有一些不同.不同就不同在可以出现相邻两个点颜色相同的情况. 构造常用方法之一是按奇 ...

  4. 2020了你还不会Java8新特性?(五)收集器比较器用法详解及源码剖析

    收集器用法详解与多级分组和分区 为什么在collectors类中定义一个静态内部类? static class CollectorImpl<T, A, R> implements Coll ...

  5. awsl

    from enum import Enum, uniquefrom math import sqrtfrom random import randint import pygame @uniquecl ...

  6. Spring Boot 添加Druid连接池(1.5 版本)

    Druid是一个关系型数据库连接池,是阿里巴巴的一个开源项目,地址:https://github.com/alibaba/druid .Druid不但提供连接池的功能,还提供监控功能,可以实时查看数据 ...

  7. 小小知识点(十八)U盘中病毒了,System Volume Information文件夹删除不掉

    win+R调出命令窗口后搜索cmd,启用cmd命令编辑器,并输入以下命令: attrib "H:\System Volume Information" -s   //这句话可以选择 ...

  8. SpringBoot 2.1.6 启动原理解析(一)

    小白第一次写博客,如果有不足之处烦请各位大佬指正. 用了好久的SpringBoot了,一直不清楚它内部的一些启动原理,如何加载yml文件.如何初始化bean的,今天就记录一下,新建了一个springb ...

  9. 流程控制-物流费用计算(嵌套if)

    题目描述 快递公司规定,如果物品体积超过2.5立方米,不允许快递.如果重量超过40kg,不允许快递.快递收费价格为: 小于等于1kg,一口价10块钱: 大于1kg,小于等于5kg,10块钱的基础上,每 ...

  10. 【原创】Android adb错误“'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件。”处理方法

    才刚刚接触Android没多久,现在使用adb命令的时候出现错误“'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件.”,如下图所示: 这个问题一般有两种可能: 1.就是没有配置环境变量, ...