3年Java开发转型大数据,如何跳出CRUD舒适区?


3年Java开发转型大数据,如何跳出CRUD舒适区?


自我介绍

我是小张,不是科班出身,大学学的是生物工程,后来也是自学加培训入的行,入行就做了 3年的Java 开发,后来觉得大数据前景更好一些,就想着转型大数据,经过x哥指导后,在去年 7月份成功入职了一家大数据公司。

公司一般,不是大厂,不过目前我感觉还行吧,薪资涨了8K,而且我也算是大龄开发了,即将奔 3 ,工作前两年光顾着玩了,没想着规划,导致落下了很多东西,现在跟着大家一起努力,搞好大数据。

转型前

在做大数据之前,我做了快三年的 Java 后台开发,第一家公司也算是一家中规中矩的公司,没啥复杂业务场景,常年的 CRUD,基本也用不上算法跟数据结构的优化,常规的 Java Api 就足以应付日常需求了。

我想学大数据的想法萌生在去年国庆节那段时间,具体也没啥原因 就是感觉大数据未来可能会更好一些,同时也觉得转大数据有 java 基础会好转些,于是便在去年工作之余自学大数据了,当然 Java 未来也不差,最近火的微服务那一套掌握了也够吃得开了。

为什么转型

其实要说到为什么转型,这个还真没啥理由,可能是有些受当时热门技术的影响和薪资方面的影响吧。

在刷 Boss 招聘的时候,总感觉一般的大数据岗位比一般 java 岗位薪资要高,另外就是前些年的大数据热,各大高校也开了大数据课,时间也是成本啊,万一等新一届的大数据专业的大学生毕业了,到时候我就是再想转可能都没机会转了。

刚开始转型的行动和心理

说到刚开始转型的时候,其实心里特别没底的,最先的就是去网上找了大数据视频,一边看视频,一边学,要知道看视频效率是非常低的,但是没办法,总归人家视频中有一套体系,按着体系来学习总不会差太多,于是便开始了漫长的视频学习,整个视频看完大概花了3~4个月的时间,都是下班 或者 周末时间看的,说实话看完记住的真是不多,当时也没有什么好的办法,好在视频里也有对应的小项目可以做做,一来二去,跟着视频就到了年后。

最开始转型的时候最苦恼的就是没有规划,也没人问,不知道自己处于什么位置,漫无目的的跟着视频走效率也不高。

转型过程

过年的时候一次巧合我刷到了x哥的帖子,那上面公众号说有大数据的学习方法,一开始我是抱着怀疑的态度试试的,因为视频看的差不多了,打算就今年要出去面试了。之后要了份面经,边上班边刷面经,差不多一个月的时间吧,面经上那些简单的面试题算是掌握了,而那些源码级别的问题说实话我到现在也没弄明白。

之前光顾着按部就班地看视频,不知哪些是重点哪些是可以跳过的,看完也觉得似懂非懂,看项目视频的时候抓不到重点,无法与真实场景连接在一起。

要说准备转型的过程中的我觉得比较困难的点还是自己学习的时候没有方向感,没有重点。每个人的经历不一样,学的知识可能有很大差别,找到适合自己的才是最好的,知道自己的进度如何,知识体系差在哪,及时补充

,这点非常重要。

面试过程

在去年7 8 月份的时候我面试了几家大数据公司,由于我是从 java 转过来的,侧重点包括了 java 和 大数据 ,面试对 java 基础和大数据的框架考察的比较详细,hadoop 读写、spark分区机制等是常问的面试题。

当然面试也肯定离不开项目,我是把自己工作经历加上了大数据的知识,这边感谢大疯哥帮忙整合项目,给了我一些方向和思路,结合自身项目的业务场景,离线、实时都有涉及。

由于我面的不是大厂,可能考察的知识并不是很深入,x哥规划的知识体系基本上覆盖了考察的知识点,剩下的就是结合业务场景来说说为什么使用某种技术,解决了啥问题之类的了。最后也是比较幸运,找到了比较合适的公司。

转型后日常工作

新入职的这家公司是做舆情分析的,到现在也差不多入职3个月了,我所在的组就叫数据组,主要负责两方面的工作:

1 实时数据的处理与落地,实时这块用的还是比较老的 jstorm+ rabbitMQ 的技术,整个数据处理过程包括 数据采集+数据预处理+NLP属性+搜索引擎,我就处于数据预处理的环节。

技术上相对来说并不是很难,但刚入职还是得多花时间,一般的问题通过百度都能找的到。难就难在处理的业务上,到现在我也还在熟悉业务,业务上有很多语义、舆情上的东西,随着工作的深入,业务熟悉也在加深吧。

2 离线数据的再分析,计算,我们这叫做数据回溯,就是用旧数据做一些 sql统计,没啥复杂的逻辑, hive 常规操作就搞定了,不会像专门搞数仓的那种各种连接,各种函数的。

3 还有就是各种集群的常规维护吧,多少要会点集群维护的东西,我们这是没有专门的数据运维,所以一些集群操作,都是我们组的自己来弄的。

其实,说到日常工作,对我来说还是比较有挑战性,毕竟技术栈都是新的,接下去还要接入一些新框架Flink这些来替代现在的框架。公司业务也很深,不过我觉得业务这东西对现阶段的我来说可能还不是硬实力,但多少得懂点,所以未来我还是想再学学技术,先把技术弄扎实了,到哪都能混下去嘛

经验总结

1.要说经验的话,如果你还是学生的话,抓紧在学校学习的机会,打好基础最重要。要是你是已经工作的兄弟的话,咱本来就没多少时间学习,如果自己学习效率不高的话,赶紧找人给做个适合自己的计划,时间成本也是很高的啊,有人带跟自己憋完全就是两个世界。

2.另外学习要注重平时积累,最好别搞突击战,不管是视频也好,文档也好,耐心跟着进度学下去,平时努力了,结果应该不会太差。

3.别裸辞,能在职学尽量在职,学的差不多再离职集中面试不迟。

4.转型成功不代表一劳永逸,而是新阶段的开始,要做好终生学习的准备。

最后

给大家分享一下我自己的学习路线和自学时收集的一些还不错的学习书籍、视频还有大数据面试题。

学习路线:

  • Hadoop
    • 工作流程(Shuffle)
    • 实现全局排序与局部排序
    • 实现join操作
    • 数据倾斜
    • 单机架构
    • 工作流程
    • 资源如何配置
    • 三种调度器
    • 单机架构
    • 读写流程
    • 副本策略
    • 单机环境中SNN如何工作
    • HA架构
    • 故障案例:例如block块损害该怎么修复
    • 如何编译支持各类压缩
    • HadoopAPI使用
    • HDFS
    • Yarn
    • MapReduce


  • Zookeeper
    • 单机/集群部署
    • 过半机制
    • 选举制度


  • Flume
    • Source
    • Channel
    • Sink
    • Interceptors
    • Channel Selector
    • Sink Precessors
    • Taildir
    • Exec
    • Spooling
    • Avro
    • 自定义
    • Memory
    • File
    • HDFS
    • Logger
    • Kafka
    • Avro
    • 自定义
    • 架构
    • 工作流程


  • Scala
    • List
    • Map
    • Array
    • Set
    • case class
    • 伴生对象/类
    • 数据类型
    • 方法和函数
    • 循环
    • 类和对象
    • 集合以及算子
    • 模式匹配
    • 隐式转换


  • Spark
    • DStream概念
    • Source
    • Transformations
    • Output
    • Performance Tuning
    • Kafka对接方式以及消费语义
    • DF/DS API
    • 外部数据源
    • Tuning
    • 概念
    • Transformations
    • Action
    • Cache
    • 累加器和广播变量
    • Shuffle源码实现
    • 内存模型
    • 支持CDH
    • Building
    • 架构以及工作流程
    • RDD
    • SQL
    • Streaming
    • Yarn提交作业流程以及如何提交
    • Spark调优


  • Kafka
    • 单机/集群部署
    • 常用命令
    • 核心概念
    • offset管理
    • 怎么保证数据一致性
    • 调优


  • HBase
    • HBase-CDH环境部署/单机部署
    • 核心概念
    • 逻辑/物理模型
    • 架构以及读写流程
    • RK设计
    • 调优

    需要获取书籍、视频的朋友:关注我帮忙转发一下文章,后台私信【资料】即可全部获取

    以下是部分截图:

    3年Java开发转型大数据,如何跳出CRUD舒适区?

    3年Java开发转型大数据,如何跳出CRUD舒适区?

    还有一些大数据方面的面试题,我已经整理成了一份文档想要获取的朋友,关注转发后私信【面试资料】即可

    3年Java开发转型大数据,如何跳出CRUD舒适区?

    3年Java开发转型大数据,如何跳出CRUD舒适区?


    分享到:


    相關文章: