我33岁,从国企主管零基础转型大数据开发,年薪涨了20W
Posted Leo.yuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我33岁,从国企主管零基础转型大数据开发,年薪涨了20W相关的知识,希望对你有一定的参考价值。
一、 转行背景
1.温水煮青蛙的八年
男,1989年生,211理工科。家庭条件一般,从小没啥追求,人比较怂。2013年本科毕业留在上学的二线城市,到2021年,在一家国企里干了8年,分别干过培训,行政,后勤,从专员干到主管,工资从3K一点点升到9K,日子过得虽然省吃俭用,但是时间久了,周围的人都这样,我也就习惯了,正所谓温水煮青蛙。
2.转折点
转折点在结婚后,我傻眼了,发现钱根本不够用,房贷车贷,因为经济原因,不敢生孩子,家庭矛盾频发,公司亏损要降薪,月薪过万遥遥无期。中年危机像一头犀牛撞向我,33岁的我眼冒金星。而我感觉最要命的时候还没来,等有了孩子,等父母老了没法劳动了,那时候才是真正的危机。
3.从初选java到决定大数据
于是从2021年初,我开始自学java,想着转行IT能多挣点钱,哪怕多挣3k,那也比降薪强多了。
当时的我自学java有两个月了,但是对大数据仍然一无所知。我又从网上,以及行业内同学那里了解了下大数据行业的薪资,确实比同年限的java开发要高不少。大概高出30%-50%。于是决定转行到大数据。
二、转行难不难
由于我转行的过程中还需要养家糊口,因此,我只能利用工作之余的时间进行。好在国企比较闲,朝九晚五加双休,因为疫情,还时不时50%在家办公。对于零基础来说,学习编程就像学骑自行车,开头的时候是没有方向感的,也是比较着急的。
等到入了这个行,回过头来才发现,大数据或者说编程,它难但又不太难。
难在于,它跟所有的有一定难度的事一样,入门需要个过程,这个过程,不管有多厉害的人指导你,这个心路历程是少不了的,聪明的人早开窍,一般的人晚开窍,但应该极少有人第一天就开窍。
不太难在于,大数据入门和大数据开发,它还没有到达一个吃天赋的地步。只要上过本科,甚至是专科,都可以学会,在目前这个市场上都可以找到相应的工作。这里我不是说没上过本科或者专科的人就笨,学不会,而是没上过本科专科的情况太复杂,这里没法去准确地断言。
本质上,大数据的各个组件也好,编程语言也好,甚至计算机本身也好,它们本身都是工具,作为普通的程序员,只需要学会这类工具基本的使用,就能进行开发,走上工作岗位。有了这样一个认识,我相信对于不少人克服畏难心理是有一定帮助的。
最终是用了6个月,在9月找到了工作,在国庆后跳槽了,跳槽拿到的offer公司都还不小。他们的app在手机上都是比较常见的,薪资都是在20多k。我因为是边上班边学,加上有一定年龄了,用了6个月。
三、学习的重点
写在罗列重点之前:
在真正转行到大数据之前,一直有一个误区,就是认为所有的重点都需要掌握,这是广度。但是事实上,走上工作岗位才更深刻体会到,深度比广度更重要。
很少有人掌握所有的重点,但是优秀、能够独当一面的大数据开发工程师,一定在某一方面比较熟练精通。
我来说说我的学习路线,以及各个部分之间的关系:
- java基础,重要程度⭐⭐⭐
这个是必须掌握,能够理解面向对象,看懂多线程代码,看懂jdbc。因为大数据的组件大都是java语言开发的,我们使用这些组件,虽然不一定需要我们自己造轮子,但是轮子是怎么造的,我们能看懂,还是很有好处和必要的。
零基础的同学建议花上3-4周时间好好学习,练习一下。即使后续做大数据的离线方向,不经常接触java了,但学会了忘掉了,比起没学会还是要强上不少的。之所以是三颗星,而不是四颗星,是因为大部分离线数仓的开发人员,后续接触java的频率还是很少的,尤其是数据分析的人员。实时开发和平台开发会经常用到,接触到。
- shell,重要程度⭐⭐
了解一下基本语法,和python了解其中一个就可以了。不要花太多时间在上面,用2-3天了解一下,动手敲敲就行了。要求后续能看懂,能在原有的基础上改进。
-
linux,重要程度⭐⭐⭐,花上2~3天学习一下。
-
maven,重要程度⭐⭐,1天,重点了解理解一下依赖和项目管理。
-
hadoop+zookeeper,重要程度⭐⭐⭐⭐,这是大数据的基础,又分为HDFS、MapReduce、Yarn。建议时长1周。
-
mysql+JDBC,重要程度⭐⭐⭐,5天
-
HIVE,重要程度⭐⭐⭐⭐⭐, 7天
MySQL和HIVE两者用法相近,但本质不是同一个东西,先花5天学完MySQL+jdbc(MySQL增删改查即可),然后再学hive(1周左右)。HIVE是大数据开发最常用的武器,不可以不会。
哪怕你其它的都不会,就会这一个,你也能找到工作。但是这个不会,就会别的,首先不太可能,其次,性价比太低。因为MySQL/HIVE,它的学习成本较低,相对简单易学,使用范围最广,几乎没有之一。
-
到这,就可以接触离线数仓项目了,(基于Hive的离线数仓项目),重要程度⭐⭐⭐⭐⭐。如果你和我一样,不是应届生,那么这是你找工作最重要的砝码。大概需要2周。
-
辅助组件:flume, azkaban(离线数仓项目会用),sqoop(离线数仓项目会用),这些一共需要大概5的时间学习下,重要程度⭐⭐
到这,就可以找大数据离线这一块的工作了。
当然你也可以选择再花7~8周时间继续往下学习大数据实时部分。
-
Kafka,如果你选择继续往下学,重要程度⭐⭐⭐⭐,否则⭐
-
Scala+Spark或者flink,选一样,或者全部。如果你选择继续往下学,重要程度⭐⭐⭐⭐,否则⭐
-
基于spark的实时数仓项目,或者基于flink的实时数仓项目。如果你选择继续往下学,重要程度⭐⭐⭐⭐⭐,否则⭐。
-
在12的过程中,需要学习和使用redis,hbase,clickhouse,等等一些组件,重要程度⭐⭐⭐。
我个人的情况是学到了13,但是工作中只用到了8这一步。市面上的工作机会,70~80%只需要用到8或者9这一步即可,也就是说,离线数据仓的开发占了大部分。每个人可以根据自己的情况做决定。
- 附加项,算法和数据结构。
这个在应届生里面比较重要。但是如果你是社招,不太建议你在入门的时候去啃这一块。因为就算是大厂,大数据开发岗问这一块的也是少数。社招的话,还是项目经验更重要。这个可以在入门以后,作为进阶学习,以图后续更好的发展。
- 源码同上。
14、15附加项是需要时间积累的,也是能看出功底的。要想在开发行业扎根,稳定发展,这两样属于绝活。但是年龄大的话不建议在上车阶段就去搞,时间上性价比不高。
四、面试
1.面试问题
我面试过很多的公司,当面试面得多了之后,你会发现大家问的问题大同小异。面经网上有很多,常见问题,一定要熟练掌握,不常见问题,一般也不用去准备了。
对于常见的面试问题,我总结了以下几个方面:
Hadoop的组成,shuffle的过程
Hive的优化
项目的整体流程,细节,以及优化经验
如何保证数据的准确性
数据倾斜的问题
小文件的问题
数仓分层
拉链表
数据更新方式(全量,增量,新增及变化)
各种组件挂掉的处理方式
Hbase的rowkey设计
精准一次性(kafka和flink常见)
Flink窗口,三种时间语义,CEP,watermark,exactlyonce,checkpoint。
数据量
集群规模
各种SQL
由于spark我没有涉及,因此我总结的面试问题,不包括spark及spark项目。
2.面试心态
刚开始面试的时候,心态会比较紧张,这是正常的。当面试了5场以后,就好很多了。面试的时候不会的地方没有关系,保持谦虚有礼貌,非极端情况不和面试官硬刚,一般面试官不会刁难你,我经历过数十场面试,没有遇到过面试官刁难的情况。
3.面试方式
主要分为线上和线下。线上又分为电话和视频。这些都是常见的,正常的面试方式。
4.面试周期
个人认为面试周期在2周这样为妥,如果连续面试两周,超过15场面试,没有找到工作,那么应该进行总结、巩固,1~2周后再进行面试。
五、总结
以上情况,均是基于我33岁,211,男,北京市场的2021年下半年大数据学习和找工作情况。如果你22岁,如果你在上海或者深圳,或者是杭州和成都,情况是略微有差异的。
比如我,我的特点一就是年龄大,对时间比较敏感,同时因为出了学校比较久,学起东西来没有20岁出头那时候快了。因此,像14、15,算法和源码部分我是直接暂时放弃掉了,如果年轻,对时间没那么敏感,还是建议多少掌握一些的,毕竟都是能换来真金白银的东西,也对日后学习和工作大有裨益。
种一棵树最好的时间是十年前,其次是现在,诸君共勉。
源:大数据肌肉猿
以上是关于我33岁,从国企主管零基础转型大数据开发,年薪涨了20W的主要内容,如果未能解决你的问题,请参考以下文章
如何从零基础转行大数据工程师暂获年薪30W,看阿里云大牛怎么说
LZ从Java Web转大数据,并且成功拿到上市公司Offer,工资直接涨了9K+