嘿,你真的了解什么是数据工程师?

2019年初,广州的温度波动在10°~15°,我辞去老东家的工作,徘徊着接下来的工作应该投身在工业大数据还是互联网大数据的抉择中。回顾着这2年的工作,心头涌现一丝的暖意,庆幸自己能尽早的进入这个行业,并谈谈自己的一些看法。

大数据有什么用?

大数据有什么用,看你怎么对待它。如果你把它放在某个角落,真的没什么用,还占用空间。
数据只有通过利用才能产生其商业价值,除此之外,就是一堆0和1的数字。如果用1句话来描述什么是大数据,那么大数据就是:

大数据是1种方法论,其目的是通过数据解决业务中的问题。

过去,我们依靠人口红利的粗旷式发展,各种砸红包各种优惠活动,而到2018年人口没有达到预期的数量,我们逐渐步入了精耕时代。通过对大数据的利用,我们可以提供差异化、定制化服务,甚至是经济学中常说的价格歧视,最常见的就是宰熟现象的出现。
实际上,大数据是个笼统的说法,如果我们从业务的层面进行划分,那么有:

  • 保险企业的信贷大数据
  • 政府企业的政务大数据
  • 互联网企业的网站大数据
  • 物联网企业的工业大数据

简而言之,大数据不是1个完美的技术,它是传统统计学的1种延伸。

大数据的岗位有哪些?

在数据行业中,常见的一些细分的岗位有:

  • 数据工程师
  • 数据分析师
  • 数据建模师
  • 数据算法师
  • 数据库工程师
  • 数据科学家

其中数据工程师和数据建模师以及数据库工程师,倾向于技术的范围。而数据分析师、数据算法师更多的偏向于业务范畴。至于数据科学家,那是1种光环和荣耀,至今还尚没有人达到。

大数据涉及到哪些技术?

从事大数据行业,主要会涉及到如下一些技术:

  • MapReduce思想
  • Hadoop工具及其生态圈
  • Python和R
  • 机器学习库
  • OLAP与数据仓库
  • 实时计算与离线计算
  • NLP

当然,根据不同的行业的细分,需要掌握的技术也是不同的,不可以偏概全。

大数据需要的技能?

上面我们介绍会使用到的一些工具和已经现有的技术,那么对应的能力上的体现有哪些呢?
我们需要具备跨领域的知识面,需要对如下专业的知识有所接触:

  • 经济学
  • 心理学
  • 统计学
  • 逻辑推理,而不要过多的脑补

换句话说,大数据行业的技能并不是单一的,而是交叉的。另外,需要有理性的认识,而不是通过脑补来解释一些现象。

拍脑袋的决策与用数据说话

在过去,我们要开拓市场,常常需要组织一批行业的专家一起开会,然后通过这些专家的观点来拓展业务。有的项目甚至是领导拍脑袋的决策的产物,可想而知其效果。
随着二八法则的慢慢消退,长尾效应的逐渐显现。通过大数据中数据的协助,我们可以通过产品差异化的定位,找到盈利的出发点,从而进行新的品牌建设,而不是同质化的争夺用户。
数据还有1个好的用途,就是连接,可以通过数据打通一些渠道。例如快播CEO的短连接产品的推出。

数据具有欺骗性

人脑袋的容量是有限的,另外人往往还具有主观性。在经济学中有个现象,之前听部门老大吃饭的时候提起过,就是过于乐观。比如有95%的人相信他自己的驾驶技术比50%的人都要好,当然由于故事的场合和时机不对,效果也大打折扣。
那么,数据是不是就相对公正呢?实际上,数据也是具有欺骗性的,数据的欺骗性在于对数字的精心设计,比如Java版本11比版本8提升了30%,如果Java对某段代码的执行时间是0.8s,那么对等的Java版本11的执行速度就是0.56s,结果其运行速度还是不如C++。

我应该如何快速进入角色?

要想快速进入角色,首先需要对某件事情感兴趣,然后要敢于做别人不敢做和不愿意做的事情。1个简单的例子,就是要从实践中做起,比如从数据采集、数据清洗等岗位做起,而不是一来就非要做数据挖掘的岗位,懂什么机器学习算法。
在实践的过程中,慢慢形成自己的知识体系。另外,要跟对人,这也是1个比较重要的问题。
如果你的老大的水平,自己都不懂相关的知识,不要指望他能给你分配什么好的工作,而且还提升你自己的能力。
需要谨记的是,无论是985还是211的高材生,他们进入这个行业实际上并没有比你在技能上有多大的优势,他们也是数据民工。只是他们懂得找到合适的工具做合适的事情,而不是瞎干盲干。

向数据技术转型的困难

大数据技术是1套数据+业务+需求的完整解决方案。其关键不在于数据技术本身,而在于是否能收集到足够多、有价值的数据,以及找到适合数据技术的业务应用。
而1个恰当的业务往往是随着数据的增加缓慢的有所改善。在大数据中,充斥着大量毫无规则却无法在短期内被利用的数据,而我们却将其称为垃圾。
纵观整个行业,你会发现其技术水平停滞在数据画像、标签云等方面,对于更为深层的东西,并没有被公示出来。

大数据开发工程师与数据分析师有什么区别?

数据分析不仅仅是掌握统计知识和算法模型,更多的是对业务产品的认知、看法和判断。相比而言,大数据开发工程师更多的是把时间花费在开发上,对编程语言的使用上。
很多企业招聘大数据开发工程师,实际上公司内部并没有太多的数据积累,最简单的方式就是想让你通过爬虫采集相关的数据,比如分布式爬虫。但是又不愿意花钱购买机器、带宽等服务,因为这些东西加起来的花费比你采集数据的成本还高。
下面是几个业务分析场景:

  • 场景1:某产品的日流量出现异常波动,需要通过数据分析定位问题原因所在。另外1个场景是互联网中访问不了,通过日志定位问题所在,是DDOS攻击、DNS异常、服务异常等
  • 场景2:每个季度,部分需要出1份关键业务报告,并对业务发展趋势进行分析。此时,需要清楚产品当前的主要问题是什么?下一步的发展潜力在哪里?
  • 场景3:产品B最近几个月流失了10%的客户,我们需要找出流失的原因(分析原因),然后找到对策,如何减少客户的流失?
  • 场景4:新上线的产品策略或新推进的运营活动,带来了多少业绩上的提升?推广后存在怎样的问题,有没有达到最初的期望,以及如何进行下一步的优化等。

对于上述的业务,最常见的工具自然是Hive,这个被神话的玩意。用过的人都知道,查询1个语句可以泡杯咖啡再回来看结果。
而1个典型数据分析项目的5个执行步骤:

  • 选择分析的主题
  • 确定方案思路
  • 实现数据统计
  • 产出分析报告
  • 推进业务落地

对上述的5步,可以在简历上有所表现。如果你不知道怎样编写相关简历的话,可以从上述5个方面入手,即使在行家看来你也是比较专业的。

数据技术团队的建设

数据分析团队通常有4种类型的工作:

  • 日常业务监控与分析:产品数据监控、问题追踪等
  • 专题分析:针对某1个产品业务,进行相对深入、全面的分析
  • 搭建数据系统:汇总数据日志,研发自动报表和数据可视化系统等
  • 建设数据模型:针对某个业务场景,进行数据建模提升业务效率

说起来容易,但是做起来很难。因为招聘1个合适的人比找1个靠谱的项目还难。而且团队水平层次不齐的话,一般的培训又不能面面俱到,自然整体水平并不会太高。

机器学习很难?

机器学习很难,不知道多少次听到同事谈起这个话题。机器学习确实很难,需要掌握统计学、凸优化、数据结构、编程语言等各方面的技能,于是吓退了一大半的学习者。但是反观这几年,Scikit-Learn,PyTorch等库的推出,似乎机器学习明天就要抢占人类的饭碗,明天人工智能就会统治地球,人类终将走向灭亡。
在软件行业,终会有那么一些布道者,把很简单的东西搞得极其复杂,复杂到别人看不懂,然后显示自己的权威。有些企业喜欢搞些高大上的技术,也好方便卡标。然而,技术从它诞生的那一天起,就被标上了简单化的标签,因为复杂的东西机器压根就不懂得执行。
如果你潜心把上面的功课给做好,而不是一上来就玩什么PyTorch之类的工具,机器学习真的可以说是婴儿水平的智力。

年薪百万不是梦?

从1个入门的新手到掌握精髓的高手,需要相当长的学习时间和实践项目的锤炼,使得供给的增长注定是缓慢的。
而1个人在事业上的发展速度相当于在火车上行走的人,而在外界看来,它的发展速度等于火车的速度+人行进的速度。而选择高速发展的行中有深度的职业(长期供应小于需求),是获取快速发展和高额薪资的不二法门。
高薪的行业总是不乏挑战者,但是如果有一天这些神话的泡沫被捅破,也摔死了不少人。1个人的薪资不是他懂多少技术决定的,而是他创造的价值赋予的。如果你的老板觉得给你100万年薪能给他带来1个亿的收益,那么这一百万并不算的上是什么。
另外,我们看到的百万年薪,是真的是实发工资?有没有包含股份或其他方面的内容在里面,这也是值得探讨的问题。

参考书籍:

《大数据分析的道与术》

若文章对您有帮助,请打赏1块钱。您的支持,可以让我分享更多精彩的文章。转载请注明来源


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。