我的大数据开发学习之路
很多小伙伴在跟我交流的过程中,会问我这样一个问题:"大数据框架这么多,学了有啥用,有没有一些框架可以不学,企业里面开发要求会用这么多框架吗"
我刚开始学习大数据的时候也和大家一样,这么多框架,不知道从何下手,又想速战速决,还不知道自己学习的内容是否能够对付未来在企业的开发工作...
之前自己在学习大数据的时候浪费了很多的时间,这里为了帮助大家在学习大数据的时候少走弯路,同时也是对自己过去三年学习大数据过程的一个总结,今天就好好跟小伙伴们说一说如何高效学习大数据,一路直通大厂!!!
学习路线预览
编程语言
- Java:对于目标岗位是数仓开发的同学来说,只需要学习Java基础部分即可,后续有时间建议学习一下Web框架,这一部分是加分项。对于目标岗位是平台开发的同学来说,那么除了Java基础部分,Web框架是必会的
- Linux:在面试的过程中经常会问到 "请介绍一下你熟悉的几个Linux命令",所以Linux的学习也是有必要的,同时在平时学习的过程中,需要直接接触到大数据环境,这些环境都是搭建在Linux环境上的,那么就需要熟悉Linux命令来部署以及运行大数据框架。
- MySQL:SQL学习不管是对于后端开发还是大数据开发,都是必会的基础知识,而对于数仓开发的同学来说,SQL需要写的更熟练一些,也需要学习一些高阶的SQL技巧。
硬核框架
- 学习顺序:Hadoop三件套(HDFS,MapReduce,Yarn) -> Zookeeper -> Hive -> Flume -> Kafka -> HBase -> Scala(面试从来没被问到过,可以不学) -> Spark -> Flink
- 在学习这些框架的时候,它们的基础原理都是需要熟悉的,比如MapReduce的执行原理、Flink的watermark机制等,并且适当的去学习源码,比如HDFS的读写流程源码、Spark的Shuffle过程源码等,目前大数据开发岗位的面试越来越难,所以如果你懂源码,面试官就会有眼前一亮的感觉!!!
- 注意:在面试中问的较多的框架有 Hadoop三件套、Zookeeper、Hive、Kafka、Spark、Flink,所以这几个框架在学习的过程中需要重点关注一下
万能项目
以下推荐的项目是个人觉得还不错的,不是打广告!!!
- 《某谷离线数仓》:这个项目涵盖了数仓的建模知识(理论相当重要),还有就是这个分层思路基本上可以和很多企业对齐。在学习的过程中,要学会去提炼亮点,因为可能很多找大数据开发的同学都做过这个项目,那么如果你讲的东西都是别人讲过的,那么就很那脱颖而出。
- 《某谷实时数仓》:如果倾向于去做实时数仓的同学,可以学习这一部分。
- 《谷粒商城》:如果倾向于去做平台开发的同学,又没有真实的大数据平台的开发经历,那么就学习这个项目来突显自己的后端开发能力也是不错的。
刷题突击
- 算法:LC+ 剑指offer,算法题是很多同学认为在笔面试中最难的一部分,我觉得这一部分的学习没有捷径,多刷题即可!!!(这里提一下自己的刷题方法,不一定适合大家哦。我是按照算法类型去刷的,比如 动态规划、回溯、贪心等)
- SQL:牛客 + 面试常见HQL(前面的文章总结过,感兴趣可以看看),对于数仓的同学来说,SQL刷题要非常熟练,并且在练习的过程中尽量结合业务知识,因为在面试的时候,面试官通常会结合它们的业务来出题(只有结合业务的SQL才是最难的)
送福利啦!!!
书籍推荐
以下都是自己学习后觉得还不错,并且对面试有帮助的一些书籍
书籍PDF高清版都可以免费送给大家
- 《阿里巴巴大数据之路》
- 《华为数据之道》
- 《数据分析思维:分析方法和业务知识》
面试八股文
这是之前在牛客写过的一篇大数据开发面试八股文的文章,仅展示了部分面试经典题目,我自己总结了一份字数10w+的大数据面试笔记
总结
- 本文介绍的大数据开发学习路线仅是个人学习过程的一个总结,不一定适用于所有人,大家可以借鉴,切勿盲目照搬
- 如果同学们还有大数据相关的一些疑问,可以跟我讨论讨论,我会尽可能给大家解答