靠谱的数据开发从业指南No.82
source link: http://mp.weixin.qq.com/s/K-u_L8YwLW0o-r9kLrvLcQ
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
靠谱的数据开发从业指南No.82
数据开发太庞大了
有小伙伴让我聊聊数据开发的职业规划和从业指南,因为数据开发从业人员的知识量实在是太太太大了,今天恰好这个机会好好聊聊。
我们先来看看 InfoQ 整理的这个图,技能树不是一般的庞大,如果你是大牛那忽略我上面说的一切,你能 handle 的。但是作为一个初级人员,那具体应该从哪里去切入呢?
原下载地址。https://raw.githubusercontent.com/TeamStuQ/skill-map/master/data/designbyStuQ/png-BigData-by-StuQ.png
数据开发是有很多种的
很多小伙伴一聊到数据挖掘呢,都会无法自拔地想到机器学习算法,其实嘛,绝大多数的数据岗位并不需要这么高深的知识。但是如果你掌握了技能书的更多内容呢,你可能可以对你数据的上下游有更加强的把控力度,你可能可以进阶到下一个阶段。
数据挖掘的技能树横向和纵向都是很深的,并不适合所有的门外汉,因为往深了学确实很难,需要机器学习、深度学习、概率论、线性代数、智能优化方法等很深层次的数学知识,需要分布式一致性的各种算法,需要资源调度的各种理论。
很多人都觉得要掌握所有的技能才能开始这项工作。两个字概括今天这篇文章,未必。一句话,每个岗位都有自己的侧重点,各项技能在每个岗位的权重都不一样。
数据从产生到被使用,最基础的链路就是。采集 -> 清洗 -> 处理 -> 分析 -> 决策。而在这个链路上,从前到后,所需要的技能是不一样的。一般来说,越处于后端门槛越高,复杂程度也越高。当然我不是说前面就不重要了,每一个环节都很重要,只是门槛高低而已。每个阶段做到牛逼你都可以很牛逼。
所以数据开发的职位从纵向来说,可以分为 数据采集工程师->ETL工程师->数据开发工程师->数据算法工程师->数据分析师。从横向来说,还可以有数据集群运维工程师、大数据平台开发工程师、数据治理架构师、数据服务架构师、大数据系统架构师、大数据框架开发工程师 这些职位来支持前面的这些流程更加方便快捷地开发和落地,以及更好地维护。
数据开发每一种需要什么技能呢?
从职业发展来说,一般来说有这么三条线,只是个人见解,大家看着食用。
主线1:给数据开发人员提供支持的线,就叫他服务支持线吧。
数据集群运维工程师->大数据平台开发工程师->大数据系统架构师->大数据框架开发工程师
主线2:为数据开发人员提供弹药,就叫他数据仓库线。
数据采集工程师->ETL工程师->数据治理架构师->数据服务架构师
主线3:为数据分析人员提供弹药,就叫他数据挖掘线。
数据开发工程师->数据算法工程师->数据分析师
而且会经常的,从主线1到主线3的过程中,越靠后的会越发现,前面的人做的什么玩意,数据太乱了,工具太特么难用了。这个时候可能会产生跳跃,去帮助前面的人完善一些东西。所以主线3的数据开发和数据算法人员经常会跳到主线2帮助数据仓库人员梳理数据层次,梳理数据服务的提供方式。主线3和主线2的人发现工具平台太难用或者集群不稳定,甚至可能开发框架有点难受,都会跳到主线1协助平台和框架的优化。
下面稍微说说三条主线,各自的技能点差异。
主线1:服务支持线
必选:Linux、Hadoop集群,Hive、Zookeeper、HBase、Ozzie、Flume
可选:Impala、各种框架源码
语言:shell、Python
建议路线:1、先学习基础的 Hadoop 集群维护技能,写一些 shell 脚本,使用定时调度功能。2、学会使用平台工具进行监控和维护,并参与到平台开发和工具开发中。3、对现有系统架构和框架进行重新架构或改良。
主线2:数据仓库线
必选:HiveQL、Spark、Hive、Flink、Kafka
可选:Storm、分布式一致性算法、JVM调优、MapReduce、BitTable
语言:Scala,SQL,Java
建议路线:1、学会从业务系统的关系型数据库中抽取数据。2、学会使用Hive SQL 对数据进行清洗。3、学会用 Spark、Flink 对数据进行各种处理和输出,若数据量太大则应该进行调优。4、学会对数据进行治理,对数据进行分层设计,对数据分布心理有数,对数据质量进行全方位监控。
主线3:数据挖掘线
必选:可视化技术、SQL、统计学、概率论、智能优化、机器学习工具(Tensorflow、scikit-learn)
可选:caffee,torch,OpenCV
语言:Python,R
建议路线:1、学会使用 SQL 拿到所需的数据以及预处理出特征。2、使用 R 或者 Scikit-learn 进行数据探索和挖掘。3、对数据进行业务层面的分析,以提取出更有用的东西。4、自己实现一些数据分析的算法。
聊聊数据开发的语言问题
最后聊聊数据从业人员的语言问题。总是有小伙伴问我,该不该学 R,该不该学 Scala ,该不该学 Python,该不该用 Java。我的观点就是,每个语言都只是自己的工具,不要守着一本语言到死,每个语言都有它自己擅长的领域,在每个领域你尽量用它擅长的语言去处理,就好了。(并不是说当然其他语言也会有一些旁支可以处理一些)。
Scala:Spark的实现语言是 Scala,现在也有大神用 PySpark 来实现一些数据处理的东西,为了兼容机器学习框架。
Python:数据爬取和机器学习从业必备,其他语言基本都是旁支。不要以为Python跑得很慢,其实那些框架都是 C++ 和 C 实现的,只是套了一个 Python 的壳,还做了很多优化,比你自己写的 C++ 还快。
R:数据探索和数据可视化有非常多场景是用 R 语言来进行做的。
Java:Hadoop 套件基本都是用 Java 实现的,熟悉 Java 可以让你更加清晰你所占用的资源分布,瓶颈是在 cpu 还是 内存,是磁盘 IO 还是 网络 IO。
建议的切入角度
从 Sqoop、Hive、Spark、Hadoop 、Python入手,了解最基础的数据处理流程,在这下面几个流程中有针对性地进行学习。
1、从关系型数据库用 Sqoop 导入到 Hive 中,这个过程可以用 Ozzie 定时调度。
2、使用 HiveSQL 进行数据清洗
3、使用 Spark 和 SparkStreaming 进行数据离线和在线处理。
4、使用 SparkMLLib 或者 scikit-learn 进行数据初探。
完。希望能对你们会有点启发,对于数据挖掘不会觉得很深奥,觉得有用的话分享给你的朋友吧。你不转发赞赏评论丢硬币丢香蕉🍌一下吗?
PS:微信群满100人了二维码扫不了了,可以作为一个吹逼聊天的地方,万一思想碰撞出什么呢?有兴趣的直接加我微信 DAAA-Banana ,我拉你进去。弱弱地问一句,要是开小蜜圈有人想进吗?因为微信实在刷得太快,公众号频率又太低,小蜜圈可以分享一些很小的不足以成文但个人认为又有价值的点。留言告诉我吧~
Just need a coffee
Recommend
-
62
云计算是如今不少科技公司重点发展的业务,也为创业公司提供了低成本的运维解决方案,比如腾讯在“腾讯云”服务上就倾注了不少资源,以低价吸引了不少初创企业,然而,正在高举高打中的腾讯云,近日却把用户数据搞丢了,惹来了高达千万元的...
-
58
共识魔方 - 靠谱的区块链数据观察站 - NEXT
-
35
靠谱是指一个人对结果的高度负责,对未来能影响结果的风险是否能充分考虑,以及能否做到善于用严密谨慎的思维去对待人和物。 一个人靠不靠谱源于先天的本心和后天的责任心。 小时候数学课有一道数学题是这样的:树上有10只鸟,有人开抢打死了1只,问树上还剩几只鸟...
-
31
问与答 - @adyyq - 不会炒股。有点小钱,看一些资料,感觉指数基金不错,请问你们有买指数基金没?那家的规模大,收益好,本金安全?谢谢。
-
31
马云家的大病无忧宝,靠谱!赔付速度很快,公司收到单据后2天赔付到位,泰康的。
-
13
今天在知乎收到了这样一个问题,我觉得这是一个很不错的疑虑,这个问题相信很多人都考虑过,但是除了在大厂的 “螺丝钉”(褒义) 岗位有机会在工作上深入某个方向之外,很多时候中小型团队,特别是创业团队很难在工作上有这样的条件,因为日常工作可能都被业务包围...
-
22
欢迎关注“创事记”的微信订阅号:sinachuangshiji 文/木子 来源:懂懂笔记(ID:dongdong_note) 双十一之前,...
-
6
靠谱的阿星:如何快速看懂“商业模式”?
-
2
大数据已死!从业10年老哥爆文抨击:这套唬不住客户了
-
0
带你识别AI数据集的各种面孔 (AI 从业万字干货) 2024-01-31 0 评论 397 浏览...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK