最近发现身边有不少小伙伴想转行做数据工程师,聊天的过程中发现大家对该如何入门有很多迷茫的地方,写篇博客记录一下。
哪些人适合继续阅读
数据工程师该如何入门?话题有点大,而且每个人的理解都很不一样,因此我们会先限定一下会对这个话题感兴趣的人群:
做了几年其它软件开发,发现大数据方向更有前景
在校的童鞋,毕业后想搞数据开发,但是学校没相关课程
没搞过软件开发,对之前的工作没信心想搞互联网,发现大数据方向挺不错
本文结构
前面已经限定了一个大致的话题范围,下面介绍一下主要的文章结构:
数据工程师的日常工作,或者是什么是数据工程师
数据工程师需要具备什么技能
该怎么学
0x01 数据工程师的技能树
1. 什么是数据工程师
数据工程师这个概念其实很模糊,不同的人和公司对它赋予的含义也区别很大,感兴趣的可以看一下我前面的几篇文章。在这里,我们大概聊一下一般意义上的数据工程师在工作中会做什么?
集群运维:安装、测试、运维各种大数据组件
数据开发:细分一点的话会有etl工程师、数据仓库工程师等
数据系统开发:偏重web系统开发,比如报表系统、推荐系统等
这里面有很多内容其实是十分重合的,下面大致聊一下每一块内容大致需要学什么,以及侧重点。
2. 集群运维
数据工程师,基本上是离不开集群搭建,比如hadoop、spark、kafka,不要指望有专门的运维帮你搞定,新组件的引入一般都要自己来动手的。
因此这就要求数据工程师了解各种大数据的组件。
由于要自己的安装各种开源的组件,就要求数据工程师要具备的能力:linux。要对linux比较熟悉,能各种自己折腾着玩。
由于现在的大数据生态系统基本上是jvm系的,因此在语言上,就不要犹豫了,jvm系的java和scala基本上跑不掉,java基本上要学的很深,scala就看情况了。
3. etl
etl 在大数据领域主要体现在各种数据流的处理。这一块一方面体现在对一些组件的了解上,比如sqoop、flume、kafka、spark、mapreduce;另一方面就是编程语言的需要,java、shell和sql是基本功。
本周我们会有一节关于etl的讲座,邀请的是有着8年数据仓库及大数据经验的一位前辈,现任某知名互联网金融公司资深大数据工程师,有兴趣的朋友可以关注本公众号,后台联系小编获取课堂地址。
4. 系统开发
我们大部分的价值最后都会由系统来体现,比如报表系统和推荐系统。因此就要求有一定的系统开发能力,最常用的就是java web这一套了,当然python也是挺方便的。
需要注意的是,一般数据开发跑不掉的就是各种提数据的需求,很多是临时和定制的需求,这种情况下,sql就跑不掉了,老老实实学一下sql很必要。
0x02 如何入门
前面提到了一些数据工程师会用到的技能树,如果希望了解更多,可以看一下《no.3 漫谈数据开发工程师的技术广度》。
下面给一个入门的建议,完全个人意见。
1. 了解行业情况
刚开始一定要了解清楚自己和行业的情况,很多人根本就分不清招聘信息中的大数据和数据挖掘的区别就说自己要转行,其实是很不负责的。不要总是赶热点,反正我就是经常被鄙视做什么大数据开发太low,做数据就要做数据挖掘,不然永远都是水货。
2. 选择学习途径
如果真是清楚自己明确地想转数据开发了,要考虑一下自己的时间和精力,能拿出来多少时间,而且在学习的时候最好有人能多指点下,不然太容易走弯路了。
在选择具体的学习途径时,要慎重一点,有几个选择:
自学
报班
找人指点
别的不说了,报班是可以考虑的,不要全指望报个辅导班就能带你上天,但是可以靠他帮你梳理思路。如果有专业从事这一行的人多帮帮的话,是最好的。不一定是技术好,主要是可沟通性强。
3. 学习路线
学习路线,下面是一个大致的建议:
第一阶段
先具备一定的linux和java的基础,不一定要特别深,先能玩起来,linux的话能自己执行各种操作,java能写点小程序。这些事为搭建hadoop环境做准备。
学习hadoop,学会搭建单机版的hadoop,然后是分布式的hadoop,写一些mr的程序。
接着学学hadoop生态系统的其它大数据组件,比如spark、hive、hbase,尝试去搭建然后跑一些官网的demo。
linux、java、各种组件都有一些基础后,要有一些项目方面的实践,这时候找一些成功案例,比如搜搜各种视频教程中如何搞一个推荐系统,把自己学到的用起来。
第二阶段
到这里是一个基本的阶段了,大致对数据开发有一些了解了。接着要有一些有意思内容可以选学。
数据仓库体系:如何搞数据分层,数据仓库体系该如何建设,可以有一些大致的了解。
用户画像和特征工程:这一部分越早了解越好。
一些系统的实现思路:比如调度系统、元数据系统、推荐系统这些系统如何实现。
第三阶段
下面要有一些细分的领域需要深入进行,看工作和兴趣来选择一些来深入进行
分布式理论:比如gossip、dht、paxo这些构成了各种分布式系统的底层协议和算法,还是要学一下的。
数据挖掘算法:算法是要学的,但是不一定纯理论,在分布式环境中实现算法,本身就是一个大的挑战。
各种系统的源码学习:比如hadoop、spark、kafka的源码,想深入搞大数据,源码跑不掉。
双控开关接线图,双控开关电路图
传GPU芯片公司摩尔线程完成B+轮融资
季丰ATE实验室引进高端测试机93k STH测试机
干货|电路设计中如何减少ESD?
诺基亚6评测 由内到外焕然一新千元市场新秀
怎样入门数据工程师
语音助手正日益成为我们日常生活的一部分
盘点几种常见的数据结构
美国柏恩推出微机电系统(MEMS)环境传感器
三星S10首销上演王者归来,苏宁门店被挤爆!
苹果高端旗舰产品销售情况好于三星 华为小米新机争夺高端人群
两岸合作互相投资 共同竞逐4千亿美元芯片市场
巨头云集的异构集成
LED企业携手电商 “立体式营销”成趋势
消息称瑞萨将退出微波市场转战光器件
NOR Flash厂商兆易创新将与ISSI整并
曝微软计划在Windows 10 2004引入针对文件资源管理器的重大改进 预计正式版在5月份前后推送
优派升级两款中端显示器:四边窄边框,内置有线网口
使能万物智联新时代 广和通燃爆2023深圳国际物联网展
台行政院副院长:未来将投6207亿给半导体产业