五年Java外包转型大数据架构,就是这么霸气

简介: 五年Java外包转型大数据架构,就是这么霸气

前言


乔二爷(化名)是我学习群的元老,我们去年就认识,他是五年Java经验的老鸟。去年年底他刚开始学大数据的时候给我打过电话,咨询一些学习路线上的问题,那时刚转型大数据的我给了他几点不太成熟的建议,并提供了一些我自己整理的资料,今年年初就成功转型了,并且从数据开发到现在的架构,实属牛逼。

个人介绍
我乔二爷,专科,坐标二线城市。14年8月毕业开始从事Java开发,月薪3800,在外地驻场两年多,17年初开始接触大数据,18年底开始系统学习,今年开始正式全职做大数据相关的开发和架构工作。薪资涨幅40%,当前年薪20万+。



为什么想转大数据


今天距离去年下决心从上家公司要离开时差不多有一年的时间。这一年来,自己的心智和心态都发生了不小的改变。这一节的主题是为什么我要想转大数据?


其实在在遇到锋哥之前,在2017年初,我在云南出差驻场的时候就开始在接触大数据。我记得那是从元旦节开始的,当时是买的黑马2016年的几块几包邮那种。了解到大数据的时候,简直开启了我的新世界的大门,从薪资的角度来讲,普遍比Java 高,也是我无法拒绝的。当初看这个很大程度就是看到薪资去的。



转型之前的工作


在17年年中回到成都总公司到18年4月份左右,陆陆续续的进入到公司的其他业务线,但是工作内容跟大数据并没有沾边,没有用上。这段时间内,时不时的晚上也在回来看看视频学习,那时候学习习惯不好,很多内容就看看,并没有去写一些代码,做一些笔记去理解它们。当然了,吸收的效果也就比较差了。


这段时间其实是有个业务有实时计算的问题,当时先从前台定时任务去触发请求过来再到后台从数据库里面查询,跑了一段时间,越来越慢,因为很多页面时一分钟一次,一次要读取十来个接口,页面才能拼装完成。


由于这是数据都有时间的特性,也就是可以通过时间维度来组装,日数据可以从小时统计,月的可以从天累计,年的可以从月累计。就这样,请求进来,只需要当天的数据从数据库里面拉以外,其他的时间段的数据都从缓存里面取出来拼装。这一次改造,基本上解决了频繁查库,还有慢的问题。但是冷启动的时候这个缓存怎么做,是个问题,当时我们很简单,访问一遍页面。


然后我不满足,在一天看文章的时候发现了 Storm 这个东西,第一次接触实时计算的东西。这个时候学的那个大数据课程,没有看到这里来,然后就去翻,发现里面有这个的讲解。新世界的大门,又看了一点点。


看了一遍,很爽,想去改造我们上面的那个功能,老大让我去搞了。此时采用的方案是 Kafka+ Storm ,也是比较平常的方案,但是这些东西在我们公司都是第一次用。很多人只听过kafka ,没用过,更别说 Storm 了。数据源到Kafka 这一层,要么是通过写一个应用程序部署到客户那边从别人数据库采集好通过Kafka 的api 写到 Kafka 中,要么就是用canal 去解析人家的binglog 日志,往Kafka 里面送。


接下来就是写storm 的代码了,当时我记得写完了一个业务以后跟他们介绍这些东西的时候,包括当时的技术总监在内的都比较懵逼。因为它们没接触过大数据相关的组件。


但是这个事情没有结尾,因为中途我被调到其他的业务线去支撑去了,这个事情他们没有接起来,一是没人会整,第二就是前面的那一遍改造已经完全够用了,速度啥的都满足要求。但是这个事情对我来说还是有不小的收获,给后面要决心去做大数据埋下了伏笔。



18年5月份的样子,接又手了公司的一个跟大数据沾边的业务线,下面有差不多12个人的样子。工作内容更多是在协调管理上。技术上的事情基本上没有太多。这个项目组的特点就是收集三方数据,然后内化为我们的大屏应用。


部分项目的数据量,有些表也是上亿的。符合一些大数据的特点。完全可以用大数据的套路来做,如果让我今天来做。我会采用大数据这一套来做采集、处理、和收集这一套来做。以前都在一个Java 项目里面来做的,收集回来的数据直接就处理成了需要的结果数据。后面的改需求,从新计算数据这些还得从新取数据回来,去改代码,然后重新部署。


有个印象比较深的项目,处理这个数据加班了一个周末,一直搞到周一的凌晨三点半才回去,这还是常态。那时候吧,其实是有点数仓的概念,但是怎么落地不知道。想找人去取经,咩有。


差不多时间来到了10月份,带团队这几个月,基本上在加班中度过,但同时我也意识到技术上的欠缺,加上每天处理各种项目上的协调事宜,很多东西加班加点出来,只是做些假数据(客户的意思)出来让各种项目的领导看一看而已。对我们技术来说,真的,浪费你的青春。


可能有人会说走管理不好么?不也管了十来个人了么?确实,管理是后来想要去做的方向。只是当前来说,一来心智不成熟,怕带坏别个,二来,技术管理,首先是技术,然后才是管理。这点我是在公司呆了十年的一个大哥身上看到的,他最开始是公司技术部门的经理,但是没有什么技术能力,我也是他招进去的。不是说他不好,而且技术这方面不太能够管理一个技术研发部门。


四年过去了,到现在,我以前的那个组长,现在带了公司的研发部门50多人的样子,他的管理技能是最近两年才学习的,而待了十年的那个领导,边缘化了,非核心部门。其实从这一点来说,我看到了一个技术公司的管理,什么技能才是最重要的?


大家可以想想看,如果公司因为一些因素要减员,会首先考虑什么样的人?


其实在未来的职业发展上的考量,我认为我在30岁之前,应该重要积累的是技术能力。而那时候离30岁,还有5年。


考虑到这些方面的问题,还有就是快要装修了,一旦装修得去贷款,又会花一大笔钱,按照现在的薪资水平还不起,后面想摆脱这些去做大数据可能又得往后推迟,时间就是钱呀。


终于,在2018年12月5号,我裸辞了,还是在这种到处裁员的环境下。但是大家千万千万不要学我,如果你的经济实力不能满足你未来六个月的开销,那就别这样做,因为你会面临非常大的心里压力。



开启转型之路


从公司出来的那天中午,天很蓝,银杏儿颜色也很好看,直接去的媳妇儿学校,她在那里准备二次考研。


当天晚上,我就跟媳妇儿一起坐在他们学校的图书馆了,感觉真好。


其实前面两天我在刻意的去练习我的注意力不集中问题,也就是浮躁,想静静心。如果你静不下来,浮躁的话,你做不好任何事情。


然后复盘了一下这几年来自己的不足。有两个比较大的问题就是学习方式问题,没有记录知识(这里的记录是说自己写的,自己整理的,不是你收藏、剪切别人的)和形成知识体系的习惯。然后就是浮躁,这也想学,那也想学,这里看一下,那里看一下。到头来,没有一个做好了的。


通过番茄时钟和冥想的帮助,我能够集中一些注意力了。然后开始学大数据的内容,计划还是跟到课程走,还是黑马那一套。但不是说全部走完,因为时间确实不是太充足,我是计划到年后三月份的样子,能够先搞定面试。


学习方式跟之前有了改变,说一点比较明显的就是在学习原理的时候,我会在晚上复习的时候把图自己画一遍,当然了画的时候回去思考他,然后所有的代码都敲一遍。那些自己画的原理图到现在都能记得到。


大概一个星期左右,在星球遇到了锋哥,跟他大概介绍了一下情况,聊了聊,给了一些建议。虽然给的路线我没有完全按照那个走,但是他提供的路线和资料对我很有借鉴意义,最重要的是给到我「信心」,让我确定了这么做下去是正确的。


前面说到了体系的东西,说一个点,就是JVM 的知识,因为这一块是以前不敢想的东西,觉得太难了。确实也很难,不是你背一点面试题就能搞定的。当时我看了网上的讲解JVM的 知识课,这个课是买的一个架构课里面的一个章节,老师讲得不错,然后结合《深入理解JVM虚拟机》这本书,看了内存布局、垃圾回收等几个被常常问问题的几个章节,整理了几篇文章,一个多星期后,发现不少的 JVM 面试知识点都能回答上来了。而且脑子里面能够关联起来这些东西,这是以前完全没有的感觉。


不光是JVM ,任何一项技术,都希望大家能够体系化的去学习。这点在大厂面试的时候,相信你有深刻的体会。


后面大概在图书馆呆了一个多月的样子,从她学校那边回自己住的这边来了,然后还是坚持早上九点开始学习,中午从十二点休息到一点半,晚上到10点左右,基本上按照大学的作息时间来的。


持续到3月份的样子,其实在4月份入职之前,不去面试的时间,都会按照学习时间来,但是早上也会时不时去小区篮球场打一个小时球,缓解压力。要么早起去外面公园转转,保持清醒,思考问题。


面试,说实话,我效果不太好。后来请教锋哥这位面试老鸟,帮我从简历书写投递到面试完的复盘都梳理了一下,不得不说经验是实实在在的财富,这些方法对我后面的面试帮助非常大。


今年的行情对于低学历的人来讲,是真的太难了,不过只要坚持,还是有机会的。有好几个公司,去面试聊一个多小时都没结果。很多直接丢垃圾桶,机会都没得。但是最终还是收到了两个,虽然感觉还可以拿到更好的offer,但是还是去了,因为实在拖不起了,必须得回血。薪资算下来,在之前的基础上上涨了40% 的样子,现在差不多一年有20来万。


虽然没有太好,但是我进入到这个行业了呀,后面可以继续积累,往自己想去的地方冲啊。



 当前的状态


现在的情况稍微轻松一点,只是比较意外的是,具备系统开发能力的只有我一个人,其他的小伙伴是做数据治理,建模和数据开发的。因为我们是数据服务部分,很多对外提供接口开发这些东西也落到我头上了,但是还是可以搞定,没加过班!


除开公司的那八个小时以外,现在基本每周差不多学习时间在15~20个小时左右。基本上晚上回来会学习两个小时,因为我的目标是去互联网公司。前面那段时间学的东西是达到了普通公司的需求,但是如果你没有成体系的知识,是不得行的,现在也在一块一块的去补充。


贴一个链接,我今年的#阿里一面#的经历。知乎专栏上「记一次阿里巴巴一面的经历」(https://zhuanlan.zhihu.com/p/60828766) 有差不多1.2K 的赞,大家感受一下里面的流程。内容很简单,但是没有深厚的积累,还是不行的,我就是反例。



一些感想和建议


1.如果你想好了要转大数据,那就立即开始吧。路线没思路的,可以请教请教过来人。当然了跟网上的培训课程走,哔哩哔哩上面多得一匹,只要你想你就能找得到。关键是你别只是观望呀,得去做呀,去学呀。


2.对于转型的人来说,简历上的项目非常重要,可以说是敲门砖。网上的项目虽然很多,但你得根据你实际来,这里求精不求多。
3.除了知识实力之外,简历书写以及整个面试过程也都是整体实力的一部分,刚开始没重视面试这块,以为有实力就行,导致浪费了很多机会。


4.不管怎么样,都希望大家能够花时间好好想想以后要怎么走,自己需要具备什么样的能力才不会被这个高速发展的社会抛弃,才不会有所谓的多少岁危机。


5.别在自己的舒适区待太久,不然出不来,出来「混」,迟早是要还的!想好了就立马行动,别找借口!


6.最后希望大家都有自己的核心竞争力,也希望我的35岁危机不是因为生活压力,更不是因为怕被裁员。


--end--

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
8天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
30 0
|
2天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在企业转型中的关键角色
【5月更文挑战第21天】 随着数字化转型的浪潮席卷全球,企业正面临前所未有的挑战与机遇。本文深入探讨了云原生架构如何成为推动企业敏捷性、可扩展性和创新能力的核心动力。通过分析云原生技术的基本原理及其在各行各业中的应用案例,揭示了该技术如何助力企业实现资源优化、加快产品上市时间以及提高服务质量。文章旨在为企业决策者和技术实践者提供洞见,以便更好地理解和应用云原生架构,从而在竞争激烈的市场中保持领先地位。
|
2天前
|
缓存 监控 Java
Java一分钟之-Apache Geode:分布式内存数据平台
【5月更文挑战第21天】Apache Geode是低延迟的分布式内存数据平台,用于构建实时应用,提供缓存、数据库和消息传递功能。本文聚焦于Geode的常见问题,如数据一致性(数据同步延迟和分区冲突)和性能瓶颈(网络延迟和资源管理不当),并提出解决方案。确保数据一致性可通过选择合适的数据策略和利用`InterestPolicy`、`CacheListener`;提升性能则需优化网络和合理配置资源。通过示例代码展示了如何创建和操作Geode的Region。正确配置和调优Geode对于实现高可用、高性能应用至关重要。
18 1
|
3天前
|
SQL 分布式计算 Java
大数据软件基础(2)—— Java、SQL
大数据软件基础(2)—— Java、SQL
8 0
|
7天前
|
NoSQL Java 关系型数据库
爱了!阿里高工纯手打金三银四Java架构面试大全,涵盖近年来1000余道大厂面试真题
爱了!阿里高工纯手打金三银四Java架构面试大全,涵盖近年来1000余道大厂面试真题
|
7天前
|
消息中间件 架构师 算法
java架构师面试题及答案
java架构师面试题及答案
|
7天前
|
Dubbo Java 应用服务中间件
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
|
8天前
|
Java 关系型数据库 MySQL
java+B/S架构医院绩效考核管理系统源码 医院绩效管理系统4大特点
医院绩效考核管理系统,采用多维度综合绩效考核的形式,针对院内实际情况分别对工作量、KPI指标、科研、教学、管理等进行全面考核。医院可结合实际需求,对考核方案中各维度进行灵活配置,对各维度的权重、衡量标准、数据统计方式进行自定义维护。
14 0
|
8天前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
34 2
|
8天前
|
消息中间件 Java 微服务
Java微服务架构实践指南
Java微服务架构实践指南
25 0