首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
我是一个粉刷匠粉刷本领强
星环科技_产品与项目_数据工程(实习员工)
发布于上海
关注
已关注
取消关注
码一下
@蓦_然:
我的大数据开发学习之路
刚刚在牛客上搜“大数据开发学习路线”,正好搜到之前一个师弟的帖子,师弟当时学习路线基本上就是我以前学习时总结的路线。 这篇学习路线是当年我秋招完,根据自己学习的资料整理的,基本上是避开了不少坑。 在其他平台的一个数据: <stron> </stron> 因为牛客上不能放链接,所以我看过的一些视频、资料,这里就没放链接了。 一、前言 说在最前面,可能有些地方理解的不是很好,有不好的地方,望见谅,毕竟每个人想法不一样,不喜勿喷,谢谢~ 要从事计算机行业的工作,不管是什么工作,开发、测试、还是算法等,都是要有一门自己比较熟练的编程语言,编程语言可以是C语言、Java、C++等,只要是和你后续工作所相关的就可以(后续用到其他语言的话,你有一门语言基础了,学起来就快了)。一般初学者入门语言大多都会选择Java、C语言、C++或者Python,而且现在网上有很多好的视频,可以供初学者学习使用。关于学习视频或者资料的选择,知乎或者百度等都有很多讲解了,也可以跟师兄师姐咨询,这样可以少走很多弯路,当然,有人说,走一些弯路总是有好处的,但是我这里说的弯路不是说不犯错误,不调bug,而是指学习资料以及一些知识点的偏重点,这样可以尽量节约一部分时间,刚开始时,总会有点迷,而且当你真正投入进去学习时,会发现时间总是不够用。 我前面是做的Java后端开发,后续自己才转的大数据,所以一些Java开发所需要的东西自己也有学习过,也都是按照正常的路线走的,JavaSE阶段,然后数据库,SSM框架,接着做了一些网上找的项目,之后发现对大数据比较感兴趣,就开始找大数据相关的资料学习,看视频,看博客,敲代码,大概花了3-4个月吧,所以大数据学习的时间不是很长,不过也是一步步艰难走过来的,但是刚刚开始接触大数据相关的东西时,一度怀疑这么多东西自己能否学得完,是不是能用得到,学完又忘了,忘了又回头看,不过还好,坚持过来了,还好没有放弃,工作也还ok,找的大数据开发岗,待遇也还不错吧。 下面就说一下我自己从Java开发到大数据开发的曲折学习之路(狗头保命.jpg)。 因为是找大数据相关的工作了,所以Java后端涉及到的一些SSM框架等知识点就不介绍了,毕竟后续一段时间也没有做了。自己看过的大数据学习相关的视频+资料大概是200G-300G吧,从Linux->Hadoop->。。。->Spark->项目,还有就是一些面试文档,面经等。一些视频看了两遍或者更多,跟着学,跟着敲代码,做项目,准备面试。 涉及到需要学习的东西包括:JavaSE,数据结构与算法(计算机行业必备),MySQL,Redis,ES(数据库这些可以看项目,也可以自己熟练一两个),Linux,Shell(这个可以后期补),Hadoop,Zookeeper,Hive,Flume,Kafka,HBase,Scala(Spark是Scala写的,会Scala做相关的项目会更容易入手),Spark,Flink(这个是找工作时有面试官问过几次了不了解,所以找完工作才开始接触学习),相关项目。 放个大概的图吧 二、编程语言阶段 如果是零基础的话,建议还是从视频开始入门比较好,毕竟一上来就看教材,这样有些代码的来龙去脉可能不是很了解。如果是有一些编程语言基础的话,从视频开始也会更简单,一些for、while循环你都知道了,学起来也会快很多。 最初选择的是Java,选择Java是因为团队有师兄师姐是做Java开发的,有人可以前期指点下,不过C语言也有接触过。 JavaSE我是选择的黑马刘意的为主,因为刚刚开始学Java看过一本《Java从入门到精通》,没什么感觉,后续又在看了慕课网的Java初级视频,还是没感觉出来啥(当时就有点怀疑自己了~~~),可能有点没进入状态。 还好后续找了黑马刘意老师的JavaSE视频(我是看的2015年版本,那时候19版还没出),觉得他讲的真的是很好很详细,每个知识点都会有例子,也都会带你敲代码,做测试,可能前面有C语言基础,然后也看过Java的一些语法,所以学起来还是比较顺利,后面的IO流、多线程等知识点时,也有看书看博客,或者看看其他老师的课程,讲解的可能自己比较容易接受就可以,反正都是多尝试,尽量懂一些,后续可以回头来复习。JavaSE相关的视频,先看一遍,后续有时间建议再看一遍,而且这些经典的视频,看两遍真的是享受。 如果有一定基础了的,JavaSE前面七八天的视频可以加速看,但是不懂的一定要停下开仔细想想,零基础的还是尽量不要加速吧,慢慢来稳些。后面的视频建议还是跟着视频来,尽量不要加速,代码尽量都敲一敲,第一遍基本上一个月到一个半月可以结束。 JavaSE可以说是很基础也很重要的东西,主要重点包括面向对象、集合(List、Map等),IO流,String/StringBuilder/StringBuffer、反射、多线程,这些最好是都要熟悉一些,面试也是重点。 JavaSE之后,如果你是要走后端路线的话,可以跟着一些网上的视频继续学习,这里我就不多做介绍了。 Scala的学习,Scala是一门多范式 (multi-paradigm) 的编程语言,Scala支持面向对象和函数式编程,最主要的是后续Spark的内容需要用到Scala,所以前面学习了JavaSE,到Spark学习之前,再把Scala学习一波,美滋滋,而且Scala可以和Java进行无缝对接,混合使用,更是爽歪歪。后续Spark学习时基本都是用的Scala,也可能是和Java结合使用,所以Spark之前建议还是先学一波Scala,而且Scala用起来真是很舒服(wordcount一行代码搞定),适合迭代式计算,对数据处理有很大帮助,不过Scala看代码很容易看懂,但是学起来还是挺难的,比如样例类(case class)用起来真是nice,但是隐式转换学起来就相对比较难。学习Scala的建议:1. 学习scala 特有的语法,2. 搞清楚scala和java区别,3. 了解如何规范的使用scala。Scala对学习Spark是很重要的(后面Flink也是要用),虽然现在很多公司还是用Java开发比较多,而且Spark是Scala写的,如果要读源码,会Scala还是很重要的(至少要看得懂代码)。 Scala主要重点包括:隐式转换和隐式参数、模式匹配、函数式编程。这里我看的是尚硅谷韩老师的Scala视频,韩老师讲的真的很不错,五星推荐,哈哈。 也许有人会觉得Python也是需要的,但是学习阶段,可能用Java还是比较多,面试也基本都是问Java相关的内容,所以Python后续工作会用到的话,再看看Python的内容吧。 三、大数据框架 大数据这方面的知识点自己可以说真的是从零开始的,刚刚开始学那会Linux基本都没用过,心里那个虚啊,而且时间也紧迫,想起来都是一把辛酸泪。 刚刚开始学的时候,看了厦门大学林子雨的《 大数据技术原理与应用》课程,可能这个课程是面对上课的,所以看了一些,感觉对自己帮助不是很大(并不是说课程不好,可能不太适合自己,如果是要了解理论知识,很透彻,但是俺时间紧迫啊),所以就继续在网上找视频,然后发现尚硅谷的培训视频很多人去参加,而且知识点也很齐全,大数据相关组件都有讲课,还有一些项目比较好,所以就找了它相关的视频,看的是2018年的,所以视频不算旧。 来一张推荐系统架构的图,先看看 一般来说,Flume+Kafka对数据进行采集聚合传输,一方面Spark对实时数据进行处理,传输给相应的数据处理模块(比如实时数据处理的算法模块,Spark也有提供常见的机器学习算法的程序库),另一方面采集的数据也可以放入数据库(HBase、MongoDB等)中,后续MapReduce对离线数据进行离线处理,数据处理完毕用于后续的使用,数据采集处理的流程大概就是这样。如果是推荐系统,实时推荐会给用户产生实时的推荐结果,让用户进行查阅选择,比如你在界面浏览了或者看了新的物品,然后刷新下界面,可能给你展示的东西就有一些变成跟你刚刚浏览的相关了。离线推荐的话主要是对离线数据进行处理,为物品或种类做出相似的推荐,如果后续用户搜索相应的物品时,给用户展示相应的产品,比如你在淘宝搜索大数据书籍,淘宝会给你推荐相关的书籍,这就算是为大数据书籍产生的推荐结果。 1、Linux基本操作 一般我们使用的都是虚拟机来进行操作,所以要安装VM( Virtual Machine),我使用的是CentOS,所以VM和CentOS都要跟着安装好,跟着视频操作,一定要动手实践,将一些Linux基本命令熟练掌握,一些VIM编辑器的命令也要会用,做相应的一些配置,使用SecureCRT来做远程登录操作(也可以使用其他的,自己顺手就行)。再强调一遍,基本操作命令尽量熟练一点,如果一下记不住,打印一些常用的,自己看看,多用多实践,慢慢就会用了。还有一些软件包的下载安装卸载等,跟着操作一遍,熟悉下,后续都会使用,Shell编程可以后续补。 2、Hadoop Hadoop是一个分布式系统基础框架,用于主要解决海量数据的存储和海量数据的分析计算问题,也可以说Hadoop是后续整个集群环境的基础,很多框架的使用都是会依赖于Hadoop。主要是由HDFS、MapReduce、YARN组成。这个部分安装Hadoop,Hadoop的三个主要组成部分是重点,对他们的概念要理解出来,知道他们是做什么的,搭建集群环境,伪分布式模式和完全分布式模式的搭建,重要的是完全分布式的搭建,这些部分一定要自己动手实践,自己搭建集群,仔细仔细再仔细,Hadoop的NameNode,DataNode,YARN的启动关闭命令一定要知道,以及他们的启动关闭顺序要记住,不要搞混。后续视频会有一些案例操作,跟着写代码,做测试,把基本环境都配置好,后续这个集群(完全分布式需要三台虚拟机)要一直使用。 3、Zookeeper Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。分布式安装ZK,对ZK有一定的了解就可以了,了解它的应用场景,以及内部原理,跟着做一些操作,基本上有一些了解即可。 4、Hive Hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。Hive的安装,它的数据类型,以及它的数据定义、数据操作有较好的了解,怎么操作表(创建表、删除表,创建什么类型的表,他们有什么不同),怎么操作数据(加载数据,下载数据,对不同的表进行数据操作),对数据的查询一定要进行实践操作,以及对压缩方式和存储格式要有一些了解,用到时不懂也可以去查,最好是能理解清楚。这部分有什么面试可能会问,所以视频后续的面试讲解可以看看,理解清楚。 5、Flume Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。对于Flume,对它的组成架构,以及对Flume Agent的内部原理要理解清楚,Source、Channel、Sink一定要知道它们的各种类型以及作用,有哪些拓扑结构是常见常用的,例如一对一,单Source、多Channel、多Sink等,它们有什么作用,要理解清楚。还有一个重点,就是对Flume的配置文件一定要了解清楚,不懂的可以上官网查看案例,对于不同的情况,它的配置文件要做相应的修改,才能对数据进行采集处理,视频中的实践案例一定要跟着做。 6、Kafka Kafka是一个分布式消息队列,缓存数据。比如说实时计算中可以通过Flume+Kafka对数据进行采集处理之后,Spark Streaming再使用Kafka相应的Topic中的数据,用于后续的计算使用。对于Kafka,要理解Kafka的架构,什么是Kafka,为什么需要Kafka,应用场景。基本的命令行操作要掌握,比如怎么创建删除Topic,怎么通过生产者生成数据,消费者怎么消费数据等基本操作,官网也是有一些案例可以查阅的。 7、HBase HBase是一个分布式的、基于列存储的开源数据库。HBase适合存储PB级别的海量数据,也可以说HBase是很适合大数据的存储的,它是基于列式存储数据的,列族下面可以有非常多的列,列族在创建表的时候就必须指定。所以对HBase的数据结构要有一定的理解,特别是RowKey的设计部分(因为面试被问到过,咳咳,所以点一下),对于它的原理要了解,一些基本操作也要都会,比如创建表,对表的操作,基本的API使用等。 8、Spark Spark是快速、易用、通用的大数据分析引擎。一说到Spark,就有一种哪哪都是重点感觉,哈哈。 Spark的组成可以看下图 Spark是基于内存计算的,对于数据的处理速度要比MapReduce快很多很多,而且数据挖掘这些都是要对数据做迭代式计算,MapReduce对数据的处理方式也不适合,而Spark是可以进行迭代式计算,很适合数据挖掘等场景。Spark的Spark SQL能够对结构化数据进行处理,Spark SQL的DataFrame或DataSet可以作为分布式SQL查询引擎的作用,可以直接使用Hive上的表,对数据进行处理。Spark Streaming主要用于对应用场景中的实时流数据进行处理,支持多种数据源,DStream是Spark Streaming的基础抽象,由一系列RDD组成,每个RDD中存放着一定时间段的数据,再对数据进行处理,而且是基于内存计算,速度快,所以很适合实时数据的处理。Spark MLlib提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据 导入等额外的支持功能。对Spark的核心组件、部署模式(主要是Standalone模式和YARN模式)、通讯架构、任务调度要有一定了解(面试问到了可以说一波),Spark Shuffle要好好理解,还有内存管理要知道,对Spark的内核原理一定要好好理解,不仅面试可能要用,以后工作也是有帮助的。 9、Flink Flink是一个框架和分布式处理引擎,用于对无界(有开始无结束)和有界(有开始有结束)数据流进行有状态计算。Spark和Flink主要都是在数据处理方面应用,在数据处理方面的话,离线数据处理:Flink暂时比不上Spark,Spark SQL优点在于可以和Hive进行无缝连接,Spark SQL可以直接使用Hive中的表;Flink暂时做不到这一步,因为官方不支持这一操作,Flink只能将数据读取成自己的表,不能直接使用Hive中的表。对于实时数据的处理:Flink和Spark可以说是平分秋色吧,而且Flink是以事件为驱动对数据进行处理,而Spark是以事件为驱动对数据进行处理,在一些应用场景中,也许Flink的效果比Spark的效果还要好些,因为Flink对数据更加的敏感。比如一秒钟如果触发了成千上万个事件,那么时间驱动型就很难对数据做细致的计算,而事件驱动型可以以事件为单位,一个个事件进行处理,相比而言延迟更低,处理效果更好。 四、大数据项目 其实一些培训机构的视频里面有很多大数据相关的项目,学习期间可以跟着视频做两到三个项目,自己理清思路,把项目理解透彻,还是可以学到很多东西的。 根据自己情况,选择两到三个项目重点跟着做,理解透彻一点 大数据项目实战 某硅谷的视频里面有很多大数据相关的项目,而且都是文档配代码的,学习期间可以跟着视频做两到三个项目,自己理清思路,把项目理解透彻,还是可以学到很多东西的。根据自己情况,选择两到三个项目重点跟着做,理解透彻一点。相关项目文档资料我已经放到网盘,公众号回复相应关键字获取领取方式。 相关项目、涉及技术框架: 五、书籍 书籍部分,这里我放两张Java开发和大数据开发我自己的书单(很多,路漫漫,吾将上下而求索~) Java后端书架: 大数据书架: 大概就这些,大部分我也是需要的时候看相应的部分,所以有时间可以好好看下,不然就需要哪一部分看哪一部分,有助于学习即可。 六、结语 无论什么开发,都是需要编程基础的,并不是学会使用这些框架怎么样就可以了,所以对于编程语言,数据结构与算法,计算机网络这些基础也是要的,这些基础知识也有助于自己以后的发展,如果是应届生校招的话,面试基本上都是JavaSE和数据结构与算法等的知识点,还有大数据组件相关的知识点,以及对项目的理解,这些都是要自己面试前准备好的,多看面经,多找面试题看,面几次,心里有谱了,后续面试就好了。 不管是从事什么样的计算机相关的岗位,编程都是很重要的,数据结构与算法特别重要,还有就是leetcode刷题,提升自己的编程思维,后续笔试面试都要要的。 要将一行行代码看做一叠叠rmb,但是一行行代码能不能转换成一叠叠rmb,自己就一定要:坚持,多敲代码;多敲代码,坚持;坚持。 再加一句:以上纯属个人总结,也许有理解不是很好的地方,每个人都有自己的学习方法,不喜勿喷,谢谢~
点赞 100
评论 11
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
04-09 16:23
顺丰集团_大数据挖掘与分析工程师(准入职员工)
顺丰内推顺丰内推码
已经来工作一个多月啦,感觉幸福度很高,顺丰真的是很值得来的一家公司!公司里的氛围很好,同事们很nice很好沟通,和大家私下相处也贼融洽。工作很充实但是没什么压力,领导带教都不push,感觉每天来公司都很开心~💼 公司岗位数据分析💢 工作强度在整个集团里算卷的,顺丰科技大多数部门965美滋滋,但是我进的部门业务多975,双休基本可以保证,需求多的话周末也要赶一下进度。🫶️ 团队氛围进的团队好,前辈都很热心教人,有问必答。❤️ 职场感受希望我这次转正能通过吧,能过的话会来报喜😊4月还有很多HC!!!顺丰科技25届校招+实习内推启动!【🍀内推码】0H0PCC(简历来源选择校园大使...
顺丰集团工作强度 108人发布
点赞
评论
收藏
分享
04-09 16:41
快手_后端运维(准入职员工)
快手内推-快手内推码
在快手做了三个多月的后端开发实习,在这里浅浅分享下我的实习体验~ 工作节奏: 基本上是早10晚9,周末双休。整体来说工作强度还是不小的,不过应该也是互联网常态了吧QAQ 福利待遇: 技术岗是400/天,晚上8点以后下班会发30餐补,入职也会一次性发180能量券,学校不在当地的话还可以申请1500/月的房补。¥这块老铁厂还是挺大方的哈哈。 实习生培养: 团队氛围很nice,我的mentor人真的很好,有问题向他请教都会很细致很耐心地给我解答,好感度upup~不过同事们平时可能都比较忙,捕捉到他们不容易,所以每次沟通或者汇报前最好提前做好准备。具体工作职责的话,一开始基本是接同事们剩下的活,直接上...
快手公司福利 286人发布
点赞
评论
收藏
分享
04-11 09:49
华中科技大学 Java
六次一面挂,被自己蠢哭了
已经面了三家厂,六次一面了,感觉每次一到项目介绍部分就会被卡住,面试官甚至问到我有没有了解过一些工具库还有消息队列底层怎么实现的,不知道是不是项目太烂大街的缘故。求大佬能帮看一下,指点一下是不是应该修改简历或者现在开始重新搞个新的项目#简历中的项目经历要怎么写##暑期实习##简历#。
吴offer选手:
不是,是因为你没去做项目整理,整理一遍就知道怎么讲了(模块、亮点、未来可优化的地方)。整一下就好了,这个bg不是酷酷约面啊,别浪费了。哥们想约个大厂面试难上天,面试都进不去会再多也没用
简历中的项目经历要怎么写
点赞
评论
收藏
分享
02-24 01:06
成都理工大学 Java
Java选手,求指导
打算今年冲一下春招或者秋招,但是现在有点迷茫,不知道接下来做什么了(正在学习算法准备面试题),求各位指导#Java# #春招#
嘎嘎嘎搬砖侠:
我工作6年了,还没开发过70个接口,惭愧惭愧
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
分享一个询问八股问题的提示词
4972
2
...
关于找实习心态的有感而发
3506
3
...
挑战全网最早暑期实习!
3210
4
...
呜呜~好喜欢上班,上班好幸福~
2305
5
...
美团耐泡king(泡了13天,已回人才库)
1896
6
...
腾讯云智测开一面
1565
7
...
美团后端实习 - 一面
1408
8
...
KPI面十大特征
1287
9
...
全志--嵌入式软件二面
1092
10
...
有毒把,这么点时间写这么复杂的代码,这太难了把。
1070
创作者周榜
更多
正在热议
更多
#
春招进度记录
#
43182次浏览
352人参与
#
打工人的工作餐日常
#
30965次浏览
282人参与
#
实习进度记录
#
43452次浏览
347人参与
#
软开人,说说你的烦心事
#
35070次浏览
220人参与
#
你想吐槽公司的哪些规定
#
11345次浏览
40人参与
#
诺瓦星云求职进展汇总
#
187978次浏览
1620人参与
#
打工人的精神状态
#
38713次浏览
777人参与
#
一觉醒来,秋招难度下降一万倍……
#
60803次浏览
529人参与
#
荣耀求职进展汇总
#
825905次浏览
4666人参与
#
机械制造秋招总结
#
46993次浏览
462人参与
#
机械校招之路总结
#
85242次浏览
1829人参与
#
滴!实习打卡
#
601517次浏览
6391人参与
#
如何KTV领导
#
47309次浏览
373人参与
#
查收我的offer竞争力报告
#
155133次浏览
962人参与
#
参加完秋招的机械人,还参加春招吗?
#
38034次浏览
454人参与
#
研究所笔面经互助
#
62487次浏览
418人参与
#
我在牛爱网找对象
#
167930次浏览
1247人参与
#
秋招感动瞬间
#
18810次浏览
184人参与
#
我在牛客求捞
#
37056次浏览
199人参与
#
工作经验重要还是工资重要?
#
70603次浏览
667人参与
牛客网
牛客企业服务