学大数据要学哪些算法_大数据之路(原文:大腿转行之路)

1

文章由来

       机缘巧合认识了大腿哥,那时他还在漫漫转行路上,出于缘分,我对他给与了帮助,包括学习视频,面试题,简历指导,面试辅导及offer筛选等,当时我们约定他入职后要给我写一篇转行之路的文章。

       最后他选择了一个月薪综合15K左右的大数据开发工作,然后才有了这篇文章,以下均为大腿哥所写。

2

转行前个人情况

      我毕业于福建某普通本科学校,学习的是农学类专业,跟编程八竿子打不着。

       转行之前职位是数据分析,然而工作中大部分时间都在做报表、写sql查数据,可以说没有任何技术含量。准备转行时我对编程是一窍不通,连IDEA都不会用,唯一优势可能就是sql写的比较熟,但也仅限于查询数据。 

3

转行原因

 当时公司只有我在做数据分析,没人带自己瞎做成长很慢,以至于做了快两年还是没整明白啥是数据分析;

 此外在公司做了快两年,各种杂事都推给我做,领导每次说涨工资最后总是不了了之。总之成长很慢,工资很低,在这种情况下我希望能找到一个有挑战性,工资高,前景好的行业,综合考虑最后选择了大数据开发。

4

学习过程

1

Java学习

       学大数据之前一直在思考学大数据要不要学java开发,现在回过头来看学习java是很有必要的。因为学大数据的相关技术时会涉及到java,而且有了编程思维会帮助你更快的学习。

 我学习java其实是从2019年9月才开始,在慕课网上从最基础的数据类型开始看起,整个java基础看了差不多1个月。后面开始看SSM框架,也是看了差不多1个月左右,跟着视频敲代码完了在oneNote上做笔记。这段时间还挺煎熬的,因为对很多东西毫无概念,基本看完就忘。由于当时我在技术部,学的差不多之后我就跟领导说想做个开发项目学习一下。领导就把公司报表系统的几个小需求交给我做了,几个需求做完,对编程就开始有感觉了像开了窍,回头再看基础和框架就有更深的认识了。

  学习java期间我基本每天下班后能保证3小时的学习时间,白天做完手头上的活就以做项目的名义光明正大的学java,而且节假日无休。虽然很努力,但是现在看有很多地方纯属浪费时间。一是当时有个朋友给推荐了个web开发项目视频,然后这项目用开发工具的是Eclipse,我跟着学一遍之后后面用IDEA就很不习惯。所以目前准备学java的同学,如果你们学习的视频里还在用Eclipse就果断放弃,千万不要再看这些过时的东西。其次,我当时接项目的时候有一个前端需求,为了这个小需求我把html、css还有js都看了一遍,如果你只是想做大数据开发,前端其实可以忽略不看。另外,春节的时候因为疫情在家,我把多线程和虚拟机从头到尾看了一遍,结果到现在也没用过,基本也都忘记了,这部分了解一下即可。

  总结一下,java这部分要把基础打牢,建议多刷算法题,能做一个SSM的web开发项目练练手最好,其他的了解一下即可。

2

大数据学习

       由于学过一段时间java,开始学大数据的时候还是很自信的,结果被现实浇了一盆冷水。

      最开始学大数据一般从Hadoop开始,首先要做的就是学会搭集群。开始搭集群时我是一脸懵逼的,虚拟机不懂,linux不懂,更别谈什么分布式。搭建Hadoop集群时各种报错,因为是自学,一个bug都要解决几天,那是我第一次感受到被bug支配的恐惧。而且那段时间因为刚复工,白天事情很多,晚上回来没就日没夜的搭集群,有次搭cdh的伪分布式集群,搭了一天一夜没合眼,最终集群搭建成功的时候真的激动哭了,那种成就感到现在都记忆犹新。

         搭完集群后就要开始学各种技术栈了,HDFS、MapReduce、Yarn、Hive、Spark、Scala等等。那段时间刚复工,公司事情很多,尽管我每晚坚持自学还是感觉进度很慢,渐渐萌生裸辞的念头。 

       到了5月,感觉还是没学到什么,索性就提了辞职申请,5月底正式离职开启了全日制自学模式。

       刚辞职的时候很激动,感觉每天能学很多东西,不过慢慢的也产生很多问题。一是大数据组件很多,学完就忘,对自己越来越不自信;二是没有找到合适的大数据项目,也不知道什么是大数据项目;三是裸辞在家没有收入,房租合同也快到期了,心态有点崩。到了7月份开始病急乱投医了,因为自己搞不定,开始在网上付费找人教我。期间遇到很多坑,有些人给你推荐的东西学到最后发现不太行,浪费不少时间。

       最后遇到了我的贵人-昌哥,听了他建议之后准备了两个项目:一个离线数仓,一个spark streaming实时流处理项目。包括后续的简历指导及面试辅导,重新确立好学习路线之后就是夜以继日的准备了,一边看项目视频结合自己的体会把当成自己的项目来思考,一边复习巩固之前学过的技术栈。这段时间应该是收获最大的一段时间,很多技术栈都看了第二甚至第三遍,慢慢感觉很多东西已经牢记于心了。

5

面试过程

       两个项目看完都过了8月了,准备开始投简历。第一周没收到什么理想的面试机会,陆续收到几个面试邀请和电话面试。虽然没有拿到offer,不过开始熟悉面试套路和面试官的口味了。

       总的来说简历要想过项目经验要有亮点,一是项目至少要有2个或以上,二是项目中用到的技术栈一定要牛逼,反正就大胆写。花了一个星期调整,然后开始全力投简历,一个星期的时间收了4个offer,由于我当时房租到期,加上自己信心不足就没继续等了,赶在9月前上了岸。后面入职之后其实又收到几个很不错公司的的面试邀请,不过那时我已经搬过房子了,也就没再考虑了。所以找工作一定要耐心,一边面试一边调整,总会找到合适的。

6

总结建议

  • 如果你也是0基础转行,最好找个靠谱的人带一下,实在不行就报个线下班找人指导,线上的就算了;

  • 学习的时候,要注意学项目,在项目里学技术,不要死抠技术栈;

  • 简历要好好写,项目经验要有亮点,最好多用点新的技术栈;

  • 多面试几家公司,不要急着入职,薪资往高点开,撑死胆大的饿死胆小的;

      最后的最后,我想说的是:从0转行大数据开发真的很难,并没有很轻松,但是只要你有足够的耐心和毅力,坚持下去,真的可以转行成功。

7

大腿哥面试题总结

一、Linux类

1.怎么查看用户组

2.怎么修改文件权限

3.常用的命令有哪些

4.怎么修改文本文件第一行字符

二、Shell

1.怎么知道上一条命令有没有执行

2.怎么定义变量

3.怎么使用参数

三、Java

1.java基本的数据类型
2.HashMap

三、Hdoop

1.安装Hadoop的8个配置文件?

2.8个配置文件都做了什么?

四、HDFS

1.HDFS如何DataNode检测是否发生故障?2.读写流程

五、Hive

1.Hive的执行流程?

2.hive的元数据信息存储在哪?

3.sql语句的执行顺序from-where-group by-having -select-order by -limit

4.on和where的区别

5.hive语句方面的优化

六、Hbase

Hbase和Hive的区别与适用场景

七、spark

Spark的优化;

Spark的原理;

spark sql有没有用过,生成什么对象?

Spark streaming统计行为次数的思路;

Spark streaming优化思路;

八、项目

数仓项目:数仓的实现思路;

拉链表是什么;

数仓分层思路;

数据采集过程中遇到什么问题,怎么解决?

总结:

(1) java几乎不会问,HDFS/MR/Yarn/flume/sqoop这些组件基本不问。问的多的还是Hive ,spark

(2) 项目的问题问的比较多,几乎都是从项目问起,引申出来

建议:

项目的技术栈要选好,多用spark/hbase这样的,spark是重点;MR感觉已经被淘汰了,没人问; 

学习的时候多研究项目,面试官更关注你能不能干活,而不是熟悉原理;

64c97071fbf4041cc621e96e01583fac.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值