全文长度: 2115字
阅读时间: 7分钟
TL;DR(too long don't read)
大数据还是值得转型的,但是想着只靠一个技能翻身的机会没了
前言
在 2013 年,大数据刚刚崭露头角,有一大批程序员,在那个时间点,踏上了靠转型大数据升职加薪的日子。在那个时候,只要稍微懂一点点 Hadoop,会写一点点 HQL,工资翻一番是分分钟的事情。
但是现在是9102年,哦不,是2019年了。单单靠一个技能就想转型到大数据已经没什么机会了。
原因有这么几个。
1. 数据开发平台化比较成熟,普通的开发人员已经可以完成绝大部分的大数据开发,不需要专业的数据开发人员介入,所以靠单一简单技能已经不吃香了。
2.市场已经趋于饱和,红利期已经过去,对于数据开发人员的要求也随着变高。
3.各种培训机构已经批量产出了大批大批的大数据人才,一个个体是拼不过这批经过包装的职业培训的人的。
4.市场对于大数据已经不反应过度了,已经不会给出几年前那种趋之若鹜那么高的待遇了,就是一个普通的工程师
当然,也不是说就不能转型大数据了,恰恰相反,我们要把大数据技能纳入到我们的日常技能树里,就像 MySQL、Oracle 一样。但是我们从观念上可能要有所改变,不要把大数据看成是一个单一的技能,也不要把大数据就当成是救命稻草。大数据更应该是一种态度,是一种常态,我们要能够有用数据看问题的眼界,使用数据分析工具,洞悉数据背后的商业潜能。这才是接下来我们要发力的点,单单靠努力学习大数据工程师技能,已经不太行了。
但以防万一,我还是介绍一下当前大数据中端人才正在干的事情,低端人才基本不要了。
究竟转型大数据有多少种
很多小伙伴一聊到数据挖掘和大数据呢,都会无法自拔地想到机器学习算法,其实嘛,绝大多数的数据岗位并不需要这么高深的知识。但是如果你掌握了技能书的更多内容呢,你可能可以对你数据的上下游有更加强的把控力度,你可能可以进阶到下一个阶段。
数据挖掘的技能树横向和纵向都是很深的,并不适合所有的门外汉,因为往深了学确实很难,需要机器学习、深度学习、概率论、线性代数、智能优化方法等很深层次的数学知识,需要分布式一致性的各种算法,需要资源调度的各种理论。
很多人都觉得要掌握所有的技能才能开始这项工作。两个字概括今天这篇文章,未必。一句话,每个岗位都有自己的侧重点,各项技能在每个岗位的权重都不一样。
数据从产生到被使用,最基础的链路就是。采集 -> 清洗 -> 处理 -> 分析 -> 决策。而在这个链路上,从前到后,所需要的技能是不一样的。一般来说,越处于后端门槛越高,复杂程度也越高。当然我不是说前面就不重要了,每一个环节都很重要,只是门槛高低而已。每个阶段做到牛逼你都可以很牛逼。
所以数据开发的职位从纵向来说,可以分为 数据采集工程师->ETL工程师->数据开发工程师->数据算法工程师->数据分析师。从横向来说,还可以有数据集群运维工程师、大数据平台开发工程师、数据治理架构师、数据服务架构师、大数据系统架构师、大数据框架开发工程师 这些职位来支持前面的这些流程更加方便快捷地开发和落地,以及更好地维护。
如果我想转型,我需要什么技能呢?
从职业发展来说,大数据开发一般来说有这么三条线。
主线1:服务支持线(新手基本不受欢迎了)
数据集群运维工程师->大数据平台开发工程师->大数据系统架构师->大数据框架开发工程师
必选:Linux、Hadoop集群,Hive、Zookeeper、HBase、Ozzie、Flume
可选:Impala、各种框架源码
语言:shell、Python
建议路线:1、先学习基础的 Hadoop 集群维护技能,写一些 shell 脚本,使用定时调度功能。2、学会使用平台工具进行监控和维护,并参与到平台开发和工具开发中。3、对现有系统架构和框架进行重新架构或改良。
主线2:数据仓库线(新手基本不受欢迎了)
数据采集工程师->ETL工程师->数据治理架构师->数据服务架构师
必选:HiveQL、Spark、Hive、Flink、Kafka
可选:Storm、分布式一致性算法、JVM调优、MapReduce、BitTable
语言:Scala,SQL,Java
主线3:数据挖掘线(分析能力强的还是很吃香)
数据开发工程师->数据算法工程师->数据分析师
必选:可视化技术、SQL、统计学、概率论、智能优化、机器学习工具(Tensorflow、scikit-learn)
可选:caffee,torch,OpenCV
语言:Python,R
我是不是学 Scala 就算转型了?
最后聊聊数据从业人员的语言问题。总是有小伙伴问我,该不该学 R,该不该学 Scala ,该不该学 Python,该不该用 Java。我的观点就是,每个语言都只是自己的工具,不要守着一门语言死磕,每个语言都有它自己擅长的领域,在每个领域你尽量用它擅长的语言去处理,就好了。当然,如果你已经工作了五六年还被语言局限,那你可能要好好思考一下了。
Scala:Spark的实现语言是 Scala,现在也有大神用 PySpark 来实现一些数据处理的东西,为了兼容机器学习框架。
Python:数据爬取和机器学习从业必备,其他语言基本都是旁支。不要以为Python跑得很慢,其实那些框架都是 C++ 和 C 实现的,只是套了一个 Python 的壳,还做了很多优化,比你自己写的 C++ 还快。
R:数据探索和数据可视化有非常多场景是用 R 语言来进行做的。
Java:Hadoop 套件基本都是用 Java 实现的,熟悉 Java 可以让你更加清晰你所占用的资源分布,瓶颈是在 cpu 还是 内存,是磁盘 IO 还是 网络 IO。
结论
大数据还是值得转型的,而且很值得,但是想着只靠一个技能翻身的机会没了,想靠着转型大数据涨薪的日子,也一去不复返了。
但是,大数据中高端人才,正在为推动行业发展发挥着越来越大的作用,你,还有机会。