Overview:
- 基本概念
- DS的职能要求
- DE的职能要求
- 总结
好了,就解释到这里了,今天主要给大家好好说说python的发展方向,这篇文章也是藏了好久了,群里各种问怎么学,大数据分析怎么学,爬虫怎么入门,说实在的,你关注我号久一点,都知道有那么几篇文章是专门给入门看的,还有几篇是资料总结的。会找的都能找到。
但是一篇可能不够,因为我想尽可能的给大家剖析行业情况,让大家在做选择的时候不至于还不知道这是干啥的,只知道这个很火。
今天就先给大家讲大数据分析工程师。
一、基本概念
对于一大部分想转行做IT,做python的,都是冲着大数据分析来的,那你知道大数据分析的是啥吗?你知道大数据分析的岗位职能分配情况吗?
如果这些都答不上来的话,那就别追风口,如果盲目的跟风,只会让你进来找不着北,到头来,浪费1年时间,还的回去干老本行。
首先,我们经常叫的大数据分析师有两种岗位定位:
- 大数据科学家,Data Scientist,DS
- 大数据工程师,Data Engineer,DE
从这两个单词里,你就能看出端倪了,那接下来就以我在普华永道的工作经历告诉你,这两者的区别,以及工作内容划分。
二、DS职能要求
1. 专业知识
DS的职能是算法分析,是基于对行业背景的了解帮助客户作出预期计算。而这里面就会涉及到很多专业知识,俗称统计分析。
和pwc同事共事的时候,我经常向他们讨教关于DS的一些事情,再加上一起做项目,分工明确,也自然对DS更了解一些。我见过的DS都是硕士毕业,还都是全美***0的学校,要么博士。
不是学历歧视,是你要做这事情,就得要这点本事,你没有7年,你的专业知识支撑不了你做DS。如果你不理解这句话,我给大家举个例子:
大家都读过小学(就怕我说都读过高中,你说你初中毕业为了生存,就出来打拼了)不考虑天才好么,我们都是小老百姓。然后解题思路就是按照老师教的,而思路只局限在一元二次方程组,二元一次方程组,而读过大学的,他可能直接用积分就给你解出来了;几何题都做过对么,几何题难的是什么?做辅助线啊!辅助线出来,人人都是华罗庚,还喜欢后面跟一句,我要是画出来了,我也会做。
这是什么?就是知识边界啊。你所知道的星辰大海,只是别人的沧海一粟。所以专业知识必不可少。
2. 行业背景
接下来DS还需要有某个领域的行业背景,俗称BK,background knowledge。你可能会奇怪为什么还要这。
因为大数据分析都是针对行业来做的,那么行业内的行话,套路,潜规则,生存法则都是不一样的,你要对公司做预期分析,你就得对行业有一个基本认识,甚至深入了解。
我们以前的DS,贯穿各大实体行业,有保险的,医疗的,建筑的,心理的,法律的等等。为什么要招那么多DS,就是因为每个DS都有自己擅长的几个领域。一定的BK能够帮助DS在面对数据的时候快速的作出信息过滤,能够在聊需求的时候,快速给出反馈。这才是价值。
3. 工具
到了第三块,才是你们关心的python,为什么把python放***?因为python只是一个工具。对于开发者来说,python可能是你们的底,但对于DS来说,python只是一个交通工具。
以前用excel VB,后来用java,现在还有人在用R,不过更多的还是python。这就好比说,现在如果你想去某个地方,坐地铁能到的,基本都坐地铁,因为又快又方便。那没有地铁的时候呢?只能做公交。没有公交的时候呢?就得骑自行车,或者走路。
所以DS从来不会关心代码运行效率,他们关心的是编码效率。而python正好又是编码效率极高的。
所以你要和我说你在外面培训了4个月的大数据分析后,就想做DS了,那请你再考虑考虑。
三、DE职能要求
相对DS,DE就比较杂了,做的事情也多。就拿我来说,当时中国data team 就3个,2个DS,你说我是DE也可以,说我是打杂的也可以。因为DS只负责算法输出,而其余的都是我来做。
你们想想,一个项目光有算法能行吗?谁去执行它,它要如何被外部调用?脏数据的清洗工作谁来做?还有很多很多的事情需要你考虑。
那我一个个来说,首先DE最重要的事情就是辅助DS清洗数据,我们叫data cleaning。因为很多时候从外部拿到的数据,无论是买来的,爬来的,还是已有的,都是原始数据,DS需要对这部分数据做一个预处理,否则很容易污染样本数据。那DE的工作,很重要的一部分就是去清洗数据。至于规则是你和DS讨论的,没有一个固定的模版。
其次,刚刚说到的数据来源,有一个是爬来的,所以你还得会爬虫。关于爬虫部分的内容我会另起一篇,给大家好好讲讲。当时我想做,但没有做的一部分就是爬虫,因为全美有很多公开数据是可以去获取的,当时我想做的是分类,包括清洗、过滤、入库、展示。没来得及做。
如果你会爬虫,DS就会很高兴了,因为他们不用为没有数据犯愁了,你要知道,对于DS来说,数据的数量和质量都是他们关心的东西。而老板更是了,因为DS要数据,他就要花钱去买,如果你是DE你说你可以尝试爬爬看,那老板对你什么看法?
那你如果还会做后端开发就更好了,我当然的主要经历就放在了自动化建设上面。US那边的老板是没有要求做,那我是本着提升生产效率去的,所以是自己给自己加戏了。***的效果还不错,让我一个任务从一周到1-2分钟,只需要改配置就可以了,当然这个过程是非常痛苦的,我们前前后后一起对需求,review代码。
然后服务端写好了,我们还可以做前端展示,对于vendor来说,他们不关心数据怎么来的,他们想看直接的东西,那不就是dashboard吗?这块我也没做,只是开了个头。
后来发现我们有一个20人的app团队在做这个事情,我肯定没有人家20个人做得好,但是起码在他们交付前,我们data team也可以体现出价值来不是?否则只有等app team做完了,把我们的数据接入了,老板在看的到。
所以我一直强调,价值是自我实现的,平台给你的是机会,能做多大,都看你自己。前几天还和一个读者说这个事情,我说别和我扯公司规范,流程,在我看来都是借口。
你做运维,一定要等测试代码过了给到你,才能发布,那你为什么不能把测试之后的步骤自动化?让测试自己提交jira,然后打钩子,做CI/CD?部署服务器,和我说测试服务器就要手搭,搭好了之后有一套脚本会自动化部署其他服务,那为什么不把创建服务器也自动化?你又不是物理机,你是云服务器啊。
题外话了,我们收回来,所以对于DE来说,做的事情可以很多。那python就是我们的武器库了,武器是爬虫、数据清洗、后端、前端等等,要什么拿什么,就看你有多少了。而武器库里还可以加上kettle、tableau、informatica等等,这些只是附加项了。
这个,培训机构4个月培训一个武器,我是相信的。而他们鼓吹的大数据分析师,其实就是DE。不能说绝对,只能说大部分把,给自己留条路……
四、总结
好了,今天说了那么多,希望能给正在大数据分析路上的你,吃一颗定心丸,该走的路一步不能少。