从事大数据开发两年的程序员经验之谈!【深度好文】

很开心,自己选择了计算机这个行业,从事大数据工作这个方向,本人是毕业于重庆某一本大学的硕士一枚,目前已有两年的开发经验,不敢说对大数据有很深刻的见解,但对于一个从学校0开发经验到快速熟悉编程,熟悉大数据开发,到独立完成模块的大数据的开发工作,我有话说。


在校


首先先说一下自己在学校的经历吧,我在学校的专业是软件工程,但我们学校这个专业师资并不强大,学的课程都是老掉牙的、甚至很多老师都很久没有更新过自己知识库的、只是照本宣科式地给我们上课。


有个别老师对数据库原理比较懂,据说当初他自己单独接了项目做某移民数据库项目以及学校的OA系统,但对于本科又是重庆某一本院校的通信类专业,再加上在大学时基本没怎么认真学习(当时心智不成熟吧,总之就是没有好好扎实学习),课上对老师讲的毫无概念,所以硕士期间的学习总结一下:


就是本专业的知识并没有掌握该掌握的,反倒是被导师逼着各种编论文,帮他写项目标书,当免费劳动力去了。迫于找工作的压力,我研三都出来实习了,很庆幸遇到了现在的这家大数据公司,从实习至今我一直在这家公司工作,那下面就说一下我在这家公司的经历吧。


从事大数据开发两年的程序员经验之谈!【深度好文】

实习


进入公司实习,当时心里特别兴奋,觉得终于有人要了,所以我对这份工作倍感珍惜,也特别认真。印象很深的是我自己在校根本没练过Java编程,对一些基本的语法都不是很理得清,比如if…else…等多层嵌套我都不太会这种,但是呢,我当时一门心思在这上面,不懂我就问.不过还有点补充的是,因为自己0经验,有的时候问的问题会让人家都听不懂我在说什么,因为自己还没有编程的一些基本概念吧,所以才会有这种尴尬的场面。


这里呢,不得不承认互联网程序员行业对稀有的妹子程序媛还是挺友好的,通常我有问题,我团队的同事都很乐意帮我解释,本身我自己也是那种打破砂锅问到底的求知特质,还有就是比较外向吧,所以我每次都会问同事再加上自己测试把不懂的问题搞懂,完了再做笔记,那段时间我每天都感觉大脑很吃力,觉得在学校呆久了过惯了那种不怎么用脑子的生活,一下子遇到这种需要自己设计逻辑并且编程实现的任务都感觉很烧脑,从这种状态也可以看出我的确是一个0经验的人,就这样,我慢慢地熟练了Java和Python,能独立完成一些数据接口,数据画图,统计的任务。


独立开发


到后面,我慢慢又可以参与到团队的开发项目中,跟着团队的架构师及其他同事一起接触,让我对项目开发框架,测试,大数据等又有了进一步的认识,这个过程呢自己基本熟练掌握了Java,但对一些编程规范、设计模式、数据库的连接池、多进程的设计、单元测试、集成测试、大数据的开发api等有了进一步的熟悉,在团队的帮助下,我自己也独立负责了一个模块的开发.


虽然印象中这个第一次负责正式项目的开发很是艰难,很多都是借助外力或者参考别人的demo完成的。项目开发过程中,遇到某些功能,该怎么取名,该再哪一层实现,该测试覆盖哪些逻辑,以及该怎么debug问题,这些都是经过向团队同事请教慢慢学会开发的。


再说说大数据开发这一块吧,虽然前面自己对Java编程,项目级的开发都有了一定掌握,但在Spark开发这块也是从0开始的,印象中,每次自己提交一个Spark任务只要一报bug心里都特别紧张,不知道该怎么办,在同事的带领下我慢慢熟悉了;过程中同事也有不耐烦,这也是件好事,对我来说,我要加快自己学习脚步,自己尽量先把问题搞懂,实在解决不了才会去请教。


独立负责项目


在开发大数据过程中,对大数据spark的rdd,spark sql等这块比较熟练之后,也开始独立负责一个项目,跟客户交付数据的项目,这种项目虽然开发不难,但后期维护要不断跟进客户的反馈做一些增加的开发或者问题的定位解决,期间学会了解决集群重启,集群日志查看,集群任务运行进度等的一些技能。


后面公司又接到了一个大数据项目,数据量比咱们之前在公司处理的多得多,资源有限,驻场几个月开发真是苦啊,大数据任务经常跑不出来,于是cdh集群使用,cdh集群问题定位,数据倾斜,资源参数调优等等也逐渐又熟悉了。


感悟


到现在,回首一下自己的大数据之路,感觉有点赶鸭子上架式地艰难加幸好我挺过来了,回想我自己实习期间,重庆很热的夏天,每天起早挤地铁很晚下班,但我每天却依然感觉很充实,因为每天都能遇到新问题,能掌握新技能。在我工作的两年多时间里完成了近两百篇的博客(csdn:sinat_26566137),部分是自己公司遇到的一些大数据问题,另外的是自己转载的对自己解决问题有帮助的一些文章。现在为止,我感觉自己对大数据有了一定的了解,对于自己的问题有了一定的认识,知道问题大概是什么原因导致的,知道怎么筛选问题的解决思路,知道自己该去补足哪一块,具备了一定的独立性。


从事大数据开发两年的程序员经验之谈!【深度好文】


总结


总结一下,自己两年的大数据开发经历吧:


(1)明白自己的学习体质,对症下药。我感觉自己是一个问题驱动型的人,就是在学校那种主动去书本上学那种方式对我而言是很难真正掌握的。一遇到问题,我就感觉自己有压力去驱使我学习搞懂了,比如向同事请教,自己查资料。再此呢,也特别感谢我公司的伙伴对我的帮助,我曾一度给自己定目标:我以后也要做一个像他们这样的人,就是对新人很友好,很愿意帮助新人的人;


(2)有一颗爱学习好求知的心。我个人是理工科出身,对于逻辑思维这方面很有兴趣,觉得能自己编程实现一个功能是一个很值得崇拜的事,并且觉得编程世界的思维很具有吸引力,有很多值得探索学习的地方,对一个事物有兴趣,就会潜移默化地去找一些学习资料来学习。


现在的时代都是网络时代,网上很多大数据资源都可以获取到,只要自己想学,有鉴别力地找一些优质的学习资源,结合自身的学习方式,就能很快掌握一些基础知识的,打下一些理论基础也很有必要的;像那些所谓的牛人,遇到新问题自己能拿出解决方案,不也是因为自己见多识广么,而且能把当前的问题抽象出来找到自己之前的类似的解决思路以此来推演。


(3)懂得借助外力,另外自己也要勤奋踏实。感觉我自己底子一般吧,从0到1进入大数据开发一方面借助外力,公司整体的开发氛围,同事请教借助外力等这些都能很快让我进入状态,氛围的确很重要,像学英语口语一样,一个不会口语的人,天天呆在一群说英语的人中间,耳濡目染,自己对这个东西的认识熟悉程度也会很快提高。

从事大数据开发两年的程序员经验之谈!【深度好文】

当然我的借助外力也是阶梯性成长变化的,从最开始:这是什么问题都不懂,从头到尾需要别人解决;到后面:简单问题,基本自己能解决看懂,比较难的自己能描述清楚问题,请教别人,别人给个思路后我自己能实现;再到现在:基本能靠自己解决问题。除了借助外力之外,还主要靠自己勤奋吧,遇到问题不可能一直需要别人解决,自己也要有自尊心,别人也有事情忙,所以,自己也会加强原理性东西的学习,帮助自己理解这些问题,对问题解决有自己的思路。


最后说一下,想要学习大数据的限时领取免费资料及课程

领取方法:

还是那个万年不变的老规矩

1.评论文章,没字数限制,一个字都行!

3.私信小编:“大数据开发教程”即可!

谢谢大家,祝大家学习愉快!(拿到教程后一定要好好学习,多练习哦!)


分享到:


相關文章: