我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个月。

三、学习的重点
写在罗列重点之前:

在真正转行到大数据之前,一直有一个误区,就是认为所有的重点都需要掌握,这是广度。但是事实上,走上工作岗位才更深刻体会到,深度比广度更重要。

很少有人掌握所有的重点,但是优秀、能够独当一面的大数据开发工程师,一定在某一方面比较熟练精通。

我来说说我的学习路线,以及各个部分之间的关系:

  1. java基础,重要程度⭐⭐⭐

这个是必须掌握,能够理解面向对象,看懂多线程代码,看懂jdbc。因为大数据的组件大都是java语言开发的,我们使用这些组件,虽然不一定需要我们自己造轮子,但是轮子是怎么造的,我们能看懂,还是很有好处和必要的。

零基础的同学建议花上3-4周时间好好学习,练习一下。即使后续做大数据的离线方向,不经常接触java了,但学会了忘掉了,比起没学会还是要强上不少的。之所以是三颗星,而不是四颗星,是因为大部分离线数仓的开发人员,后续接触java的频率还是很少的,尤其是数据分析的人员。实时开发和平台开发会经常用到,接触到。

  1. shell,重要程度⭐⭐

了解一下基本语法,和python了解其中一个就可以了。不要花太多时间在上面,用2-3天了解一下,动手敲敲就行了。要求后续能看懂,能在原有的基础上改进。

  1. linux,重要程度⭐⭐⭐,花上2~3天学习一下。

  2. maven,重要程度⭐⭐,1天,重点了解理解一下依赖和项目管理。

  3. hadoop+zookeeper,重要程度⭐⭐⭐⭐,这是大数据的基础,又分为HDFS、MapReduce、Yarn。建议时长1周。

  4. mysql+JDBC,重要程度⭐⭐⭐,5天

  5. HIVE,重要程度⭐⭐⭐⭐⭐, 7天

MySQL和HIVE两者用法相近,但本质不是同一个东西,先花5天学完MySQL+jdbc(MySQL增删改查即可),然后再学hive(1周左右)。HIVE是大数据开发最常用的武器,不可以不会。

哪怕你其它的都不会,就会这一个,你也能找到工作。但是这个不会,就会别的,首先不太可能,其次,性价比太低。因为MySQL/HIVE,它的学习成本较低,相对简单易学,使用范围最广,几乎没有之一。

  1. 到这,就可以接触离线数仓项目了,(基于Hive的离线数仓项目),重要程度⭐⭐⭐⭐⭐。如果你和我一样,不是应届生,那么这是你找工作最重要的砝码。大概需要2周。

  2. 辅助组件:flume, azkaban(离线数仓项目会用),sqoop(离线数仓项目会用),这些一共需要大概5的时间学习下,重要程度⭐⭐

到这,就可以找大数据离线这一块的工作了。

当然你也可以选择再花7~8周时间继续往下学习大数据实时部分。

  1. Kafka,如果你选择继续往下学,重要程度⭐⭐⭐⭐,否则⭐

  2. Scala+Spark或者flink,选一样,或者全部。如果你选择继续往下学,重要程度⭐⭐⭐⭐,否则⭐

  3. 基于spark的实时数仓项目,或者基于flink的实时数仓项目。如果你选择继续往下学,重要程度⭐⭐⭐⭐⭐,否则⭐。

  4. 在12的过程中,需要学习和使用redis,hbase,clickhouse,等等一些组件,重要程度⭐⭐⭐。

我个人的情况是学到了13,但是工作中只用到了8这一步。市面上的工作机会,70~80%只需要用到8或者9这一步即可,也就是说,离线数据仓的开发占了大部分。每个人可以根据自己的情况做决定。

  1. 附加项,算法和数据结构。

这个在应届生里面比较重要。但是如果你是社招,不太建议你在入门的时候去啃这一块。因为就算是大厂,大数据开发岗问这一块的也是少数。社招的话,还是项目经验更重要。这个可以在入门以后,作为进阶学习,以图后续更好的发展。

  1. 源码同上。

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+

从16K跳槽到20K,最后算下来年薪却还降了,我笑了····

零基础如何快速入门深度学习?

[转帖]33岁程序员,年薪30万:“幸亏我被裁了”!

33岁,年薪30万:“幸亏我被裁员了”