实习一年,我从Java入门者成为了一名大数据开发。
第一份实习offer
专升本的第一学年末,凭借着自学Java拿到了人生的第一份Java开发的实习offer。我深知那时候我的Java水平有限,也深知能拿到offer并不是因为我多优秀,而是公司一批招了20多个人。
17年7月,收拾好行李,和舍友体验了一天的找房、打扫、入住流程之后,于第二天的早晨第一次踏入了公司,开发岗的八个人被安排在空闲的工位上等待着新人培训。培训主要分为:数据安全培训、数据库培训、Linux培训等。培训之前说是有一个人可以进入大数据组实习,所以那时候的我充满着渴望与热情,以致于大学里一年都没学懂的Linux,自学了三天就把基本的命令练习地滚瓜烂熟。
培训过后,其他7人被分到了各个组内,陆续离开了这片空闲工位。而我,在接下来一个月一直处于无人认领的状态,大数据的实习名额也无人再提及。在这段实习期最安逸的日子里,我决定自学大数据。那时候网上大数据教程不像现在一样丰富,于是从某宝上花25RMB,买了一套大数据课程开始自学。
自学的过程和预料的一样一波三折。还记得刚开始跟着视频搭建Hadoop,却怎么也不成功。或是版本问题,或是操作系统问题,也许是个人能力问题。那时候也没有人指导,只能自己摸索,视频上20分钟搭建好的Hadoop,而我用了五天时间搜集资料、不断尝试,最后才在我的虚拟机上搭建完成。
一个月后某一天,我终于被人领走了,进入大数据组的那个人原来是我!
初识大数据
初入大数据组,还记得那时候的心情是小心翼翼的。那时候组里没有那么多的年轻人,感觉都是大佬,也不敢多说话,只能默默地坐在工位上。第一份工作是关于hive的,很简单。简单到什么程度,一份列表和一个hivesql,我只需将列表中的每项粘贴到sql的where条件空白处,分别执行并截图保存即可。空闲的时候也会被安排各种写工程文档的工作。
就这样在理想和现实之间工作了一个月。当我以为实习生涯就要在这种平平淡淡中度过的时候,人生出现了转机。组里年轻的运维小哥决定离职,我也被领导叫进了办公司,在各种鸡汤灌输加持下,我第一次勇敢的说出了”我可以“这三个字,我也开始转职成为了一名大数据运维。
运维工作就是写一些监控调度来保障正常生产,有时候也需要人工干预,所以出去玩也要背着电脑以备不时所需。虽然我的运维工作技术含量不高,但是因为这份工作,与组内同事的工关联也密切了起来,也开始渐渐融入到这个集体中。
人生,总会有让你努力的理由,为了别人,亦或自己。
关于理想和学习
理想今年你几岁
虽然我是一名运维,但始终有着开发的梦想。在下班回到家之后,会继续看我的课程来学习大数据。在公司的日常,干完领导安排整理文档的工作就开始学习。工作的时候喜欢听大佬们讨论技术,虽然我一句也听不懂。所以那时候我给自己的目标就是,一定要听懂大佬们讨论的技术,于是我开始利用早晨公交车上的一个小时开始看公众号文章,一天要求自己至少看五篇,当某一天回过头来,发现已经关注了近300个计算机行业的公众号。
那一年flink还未兴起,公司流处理使用的是商业版的IBM Streams,这个平台带给我的感觉就是稳定且小众。它的开发语言是SPL(Stream Processing Language),一种只适用于这个平台的开发语言,所以导致那时候基本上都没有人愿意接手这个平台。我在运维这个平台应用的过程中,开始自学SPL,从最开始研究别人的程序,到后来在官网上寥寥的资料中学习语法,最后开始负责SPL的开发。目前,我是公司唯一一个会SPL开发的人。
科普一个SPL简单的例子:
composite Main { graph stream<rstring sourceFile, rstring movedFile, uint64 fileSize> Dir3 = Di { param directory : "/tmp/work"; moveToDirectory : "/tmp/active"; output Dir3 : sourceFile = FilePath(), movedFile = DestinationFilePa } stream<rstring name, uint32 age, uint64 salary> Beat = Beacon() {} stream<rstring name, uint32 age, rstring login, tuple<boolean young, boolean rich> info> Annotated = Punctor(Beat){ param punctuate : age >= 18u; position : after; output Annotated : login = lower(name), info = { young = (age<=30u), rich = (salary>100000 } }
实习是我整个计算机生涯成长最快的时光,让我提升了技术、扩展了眼界,确立了从业方向。那时候的我,对知识充满了无尽渴望。
关于加班
虽然现在很多人,包括我内心都很抵制加班和996,但是不可否认的是,实习加班的日子使我快速成长。
17年,是公司大数据起步的一年,也是大数据平台动荡的一年。大数据行业,当以数据为核心,数据的实时接入是大数据根本,也是重中之重。11月的一个夜晚,接入程序即将随着数据规范的升级而进行新版本割接。作为一名不明所以的旁观者,选择留了下来当个配角。
负责的同事升级前测试的时候没有问题,但等到十点割接的时候却发生了乱码问题。当时我自学过Java,所以就坐在旁边跟着看,跟着他们在上万行密密麻麻的代码逐行找问题,从晚上十点一直看到凌晨五点,眼花缭乱,当我看到一个方法中全局变量和局部变量命名相同的时候,弱弱地指了出来,修改了这个问题之后,数据不再乱码,代码层面问题得以解决。
凌晨六点,新程序启动,但在运行了一个小时后,OOM内存溢出。我也是那时候,开始第二次学习JVM,跟着大家一起通过jstat、jmap等查看内存和gc,调整jvm参数一直到中午十二点,最后只能增加处理机器来暂时保证程序的正常运行。下午两点回到家,睡到下午六点又去了公司,又一直工作到凌晨四点才休息。那个星期我以工作时长65H位居公司第一。
以后的日子,大家周六周天都聚在一起寻找问题。功夫不负有心人,在长时间的测试之后,发现是Kafka0.8版本的吞吐瓶颈导致的性能问题,后来升级到v1.0之后,这个问题就解决了。不过这一次,我真正的融入到了大数据这个集体,也是这个时候我成为了一名参与者,了解了数据从接入到存储的整个流程,为我以后完全负责大数据程序开发打下了基础。
实习的日子,感谢那年冬天加班的夜晚,让我离开发更近了一步。亦感谢我搭乘回家的101路公交车可以运营到凌晨一点,让我在很多加完班的夜晚都很有安全感。
实习过后,最要感谢的往往不是那个和你谈笑风生的人,而是那个指出你的错误并帮助你的人。
关于朋友
感谢大数据每个人对我的帮助,尤其感谢带我入门、亦师亦友的刚哥,和对我无私帮助、经常蹭他车的超哥。
实习的时候,遇到一个好的师傅是很重要的。可能很多人向往的实习生活是轻轻松松,每天可以谈笑风生,这些固然重要,但更重要的是有多少人愿意将自己的知识教给你,你到底学到了什么。
实习期的我无疑是幸运的,有人倾囊相授于我、有人指引我前行的路、有人指正我的不足,有人谈论技术人生,出了错误有人给我兜底。等我长大再回首,这种愿意耐心帮助你的人还能遇见几个?虽然后来一起吃饭、一起喝酒,他们经常会说愿意教我是因为我自己努力好学,但是我知道他们在很努力地培养我。
不加班的日子,我一般都从公司学习到八点半,刚哥有时候研究技术或者看球也是这个时间回家。学习的时候我遇问题,就会寻求他的帮助。我一直都都记得,每当这个时候他会不紧不慢的走过来坐下,然后在电脑上操作,会把这个问题的解决思路解释给我。
下班路上,我们只有短短600米三个路口的共同路程,但是一路上他都会叮嘱我要好好努力,偶尔也会解答我的一些困惑。每当最后一个路口分别时,他往北,我向东,他会对我挥挥手,我说一句我回去了,他回一声注意安全。如今路依旧,但终究只能成为一段记忆深刻的青春。
物是人非事事休。毕业两年半之后的今天,我可以说我实现了理想,成为了一名大数据开发,也经常自诩是目前大数据组资历第二的人。组里的年轻血液越来越多,有时候我特别期待成为当初那个很有耐心的人,但最终愿望落空,因为再也没有人愿意刨根问底,没有人想知道这个大数据平台的架构,没有人关心数据的流向,更多的人最终还是更倾心于谈笑风生。
实习遇到的朋友终会分离,而学到的知识、养成的习惯会陪伴一生。
关于我
我从小到大都是个不善言辞的人,和陌生人说话自带尴尬体质,是他们可以让我表达自己。
在大数据实习的第一个月,一直做一些写文档的工作,后来做了大半年运维,牺牲了很多休息时间来加班完成工作。一年后实习结束,成为了一名大数据开发。我在运维岗的时候,幻想过但没奢望过有一天可以在开发岗上做自己喜欢的工作。那时的我只是和刚开始自学Java一样,在公司、在家里、在公交车上一直在学习大数据。
当你还在埋怨生活决定了你命运的时候,多想想是不是自己先放弃了理想。
18年6月,毕业前夕,引进Scrapy构建了百万级数据的爬虫程序,研究用Flume写了几千行的配置,将8000亿/天的数据落地到了HDFS。
后来我毕业了,后来他们离开了公司,后来的某一天,领导说工资你自己开吧。至此,我的故事结束。
未来亦可期
2020年末,和刚哥、超哥一起吃饭,亦回忆感叹以前的日子,举杯,一饮而尽、皆在酒里。我感叹那时候数据量1000亿/天,我只是个参与者,如今数据量10000亿/天,而我却成了主导者。亦感叹那时候我以为大家会一直在一起工作,最后还是扎根在了各地。
那天晚上的风很冷,我走在回家的路上,身边一辆101经过,不过这次是背道而驰。
写的都是日常工作中的亲身实践,处于自己的角度从0写到1,保证能够真正让大家看懂。
文章会在公众号 [入门到放弃之路] 首发,期待你的关注。