感觉职业生涯进入瓶颈期,该怎么应对?

Anterior 发布于 2016/03/13 04:09
阅读 3K+
收藏 1

不知不觉已经工作快两年了,算上实习应该两年多的时间了。在一家不大不小的公司里,做着数据相关的工作。具体做的事情有可视化后台开发、ETL、数据评估。可视化后台开发是做了一个管理页面,可以方便的把关键的数据通过表格和报表的形式进行展现,这也是我刚入职时候做的事情。当初对数据挖掘也没有太深入的理解,只是把侧重点放在了代码本身上,注重的都是代码是否优雅,程序是否有漏洞,扩展性如何,开发是否便利等等。而没有考虑更应该关注的核心问题,就是是否能用一种通用的模型概况数据处理的各个方面。如:关系操作,数据切片、下钻等更加专业的数据挖掘方式上去考虑,导致最初关注的问题并没有被有效的解决。这些问题直到遇到kibana后才恍然大悟。无论从抽象层次还是专业程度都是值得学习的。

可视化后台做过一段时间之后核心上基本稳定了,剩下的就是按照原有的模式在继续开发上层应用了。我也闲了下来,开始做日常支持,包括ETL和数据评估。ETL主要是和原始数据打交道,原始数据包括日志、数据库、消息队列里面的数据。对于日志数据做的最多的就是字符串处理和正则,目的从文本中抽出来有用的信息并且结构化。整个工作的流程就是写好脚本(shell、awk、python、java),加入到调度系统中放到hadoop集群上定时的跑,把抽取出来的结构化的数据导入到hive中,用来做数据评估。可能还有一些非常复杂的需求,需要综合多方面的数据进行处理,但是原理上基本是一样的。数据库的数据也是写脚本同步过来,上传到hive,消息队列的基本一致,只是处理方式不同。现在做的事情自动化程度比较低,基本上还是处于通信基本靠吼得时代,大量的脚本部署在集群中的各个角落,每个月总会有那么几天出现任务出现大姨妈。然后就是报警、排查、修改然后继续下一个轮回……

在做ETL的同时也会做一些数据评估,根据评估需求,最长做的就是写SQL在hive中查询数据,然后把结果进行汇总,如果有需要再开发报表,定时发送。做这部分事情对于具体业务会有比较深刻的认识,需要熟知各个业务数据含义。但是最让人沮丧的就是hive,偶尔会出现写了个SQL,在集群里跑了几个小时结果……结果任务挂掉了。。。这种时候死的心都有。这也是我一直不喜欢hive的原因。虽然也很耐操,但是真的还没有耕地的牛快。以至于想做一套实时查询的系统来替换掉hive。但是最终各中因素,宣告尝试失败。。。

上面叨叨这么多算是对自己一年多工作的一个总结吧,也是现在感觉无力的缘由。

这段时间的工作,对于技术上的成长而言感觉成长的很慢,而且好像还有后退。先从自身上找原因吧:

  • 不喜欢现在做的事情,感觉很低效,又有一点点无聊,但是为了生存还得继续
  • 性格不成熟、有完美主义情节
  • 执着于技术本身却又忽略了技术

可能这些原因也还不是根源所在,也可能我想通了这些原因也就突破瓶颈了。反正这会是乱乱的。

在工作的过程中也发现了一些问题,也做过努力。就像上文提到的,感觉现在ETL自动化程度很低,脚本开发不方便管理……和老大说了想要做一套ETL系统,用系统来管理ETL任务,整合数据来源和输出,和公司统一的监控体系打通,让开发人员只把焦点集中在数据本身的处理逻辑上。刚开始提出来的时候,leader不温不火,感觉大家做的都很愉快,为毛要搞一套系统呀?后老boss拍板,说要搞一个,leader重视了,结果拿着我的方案卖完乖,最后把监控的部分分给我去搞,其他的别人搞。说实话心经过这件事,心里有点小小的不开心。

监控搞完了,最近也闲下来了。觉得还是想学点什么,做点什么。这几天仔细的分析了一下,自己今后学习的方向,也结合客观因素进行了简单的分析。列一列,一方面梳理下自己的思绪,另一方面也希望亲们能给点建议。

1. 继续做现在做的事情,ETL,数据评估等

积极的因素:这件事情就是本职工作,继续去做可以往深入了去做。想上面提到的,可以深入的学习shell,python,awk、SQL等常用的脚本语言。可以熟练的写MR,深入的学习hadoop,hive,spark等框架的原理与应用。总之就是围绕数据处理这条主线继续深入学习。包括但不限于数据收集、数据查询、数据分析、数据可视化等领域相关的技术。开发相应的数据处理一体化系统,跟踪一些新兴的数据处理相关的技术。

消极的因素:这部分目前也是公司争夺最焦灼的地方,上游数据收集ops在做,下游的核心的数据分析运营在做,hadoop的运维也是其他团队在搞。我们做的事情说白了就是把存储池里的数据上传到hdfs,然后做个字符串处理或者写写SQL去。时间碎片化比较严重。经常日志丢了得放下手头的事情去补数据。主观上,我不是很喜欢做这件事情。

2. Java开发

积极的因素:对于Java的IO、网络编程、并发编程、JVM以及一些常用的框架和编程规范能熟练掌握。如果继续在Java上下功夫,我想的是深入的钻研常用的框架,和相关的技术。包括但不限于:Spring、Mybatis、消息队列、Netty、Reactor、序列化、Rpc、缓存技术等。还有一方面就是提高设计能力。

消极的因素:现在的部门属于内部支持性的部门,也没有高并发和IO密集型的应用需求。说白了就是学了这些东西也没有一个恶劣的环境做检验。很难从发现问题解决问题这条路上去获得实质上的提高。另外也不会有时间和排期可以深入的去钻研。可能很多问题都是凭空想象,所谓的高可用和高可靠、代码规范、发布流程其实没有那么大的意义,因为做出来的东西用户就是那么几个人,系统也不会有太大的压力,出了问题也没什么影响,可能神不知鬼不觉的直接在线上修改、重启就完事了。。。

3. 机器学习

积极的因素:很感兴趣,感觉是一个很好的发展方向。并且可以和大数据相结合。

消极的因素:机器学习专业性很强。本人渣本毕业,上学的时候没有这方面基础。主要是数学、和外语上短板比较严重。偏导都忘记怎么求了……虽然买了数学书、在努力的坚持看ng的课。但是对我来说是一个全新的领域,而且这个领域远不止这些。也就是说想要入门就需要花费很大的代价,而且即便入门也需要时间和积累,需要实际问题和论文当做养分才能有所发展。就环境的客观因素而言,可能学这个短期内不会有什么实际的用处和价值产生。但是如果长期积累,或许可以能让自己做喜欢的事。

大概就是这些吧,叨叨这么多,其实也是感觉自己很迷茫。即有自身原因,也有客观环境的影响,现在感觉很无力,好像进入了瓶颈期。听过这样一句话,“之所以迷茫,是因为野心”感觉说的也好有道理。我的野心或许就是对技术的渴望,我不想安于现状的混吃等死。说实话,总有一种不安,就是我现在做的事情根本不值我的薪水。也就是这种不安,让我更想努力,更像在技术上能够精进。也是这种不安,让自己变得浮躁的不能自已。也尝试劝过自己,工作就是混口饭吃,做好份内的事情就好了,何必把自己搞的那么累。可是……就是做不到,还是想折腾。。。

反正叨叨的就是这点p事儿,可能自己现在也是当局者迷,也希望有缘看到此贴的同行能给出一些建议,尺度越大越给力。



加载中
2
你是错的我恒对
你是错的我恒对

我cao,比我还能吹,居然还有人点赞,就一个做BI的,太能装逼了,才写过几行代码,这么能吹,你先转到程序员再吹行吗?

  • 深入的学习hadoop,hive,spark等框架的原理与应用。
  • 对于Java的IO、网络编程、并发编程、JVM以及一些常用的框架和编程规范能熟练掌握。

你是错的我恒对
你是错的我恒对
回复 @吐槽的达达仔 : 你好DBA
吐槽的达达仔
吐槽的达达仔
反正我们BI是需要写代码的。。而且还要肩负起数据库调优的职责。。如果BI只是跑个SQL,那就太LOW了。。
0
行业协汇袁斌
行业协汇袁斌

楼主居然还记得偏导数这个名词。。。

佩服啊,这些玩意儿本人早就丢到火星去了。

0
yueshide
yueshide
总有一种不安,同感啊。现在大数据这一块很火,
0
水东流
水东流
数据工程师本来就是这些活
0
求是科技
求是科技
我想从事这个啊,求指导?目前我专职于app后端(ssm框架)、数据库设计、接口设计等工作。
0
吐槽的达达仔
吐槽的达达仔

和楼主面临一样尴尬,本人一方面在学机器学习,另一方面在搞爬虫。。。

楼主的这些技能,持续性发展肯定是不够看的。。

工作中还会搞点java,数据仓库啥的。。

0
gaofeixmrs
gaofeixmrs
才工作2年,技术上就进步这么快,给我们工作10多年的老开发好大的压力!:)
你还年轻不安于现状是对的,建议你走第一条路,如果学精了公司又没有实践成长机会可以考虑换工作。
巴林的狗尾草
巴林的狗尾草
确实,没看出来才工作两年,感觉描述的蛮厚重的
0
二刀刀
二刀刀
我现在也是这样~可是换工作的话工资会被腰斩,继续熬着,看看什么时候会真的废掉
0
sijifeng
sijifeng
数据中心很多都是和楼主类似的工作 
0
沧海一刀
沧海一刀
没什么卵用。  劳资干了8年了 ,月薪3K 
keppy
keppy
莫逗。。。
返回顶部
顶部