写在1024:一名数据分析师的修炼之路
导读
大家都把今天当做是程序员的节日,那么自己也想凑个热闹在这个有意义的日子里,将自己一年来修炼数据分析师的亲身经历做以分享,以求对他人有所借鉴。
注:全文无图,只有干货。
大概在一年多以前自己重新思考职业归属的时候,恰巧当时网络开始大范围疯传数据分析师的各种培训课程、Python也越来越成为网红语言,受此大环境的熏陶和感染,自己逐渐入坑数据分析,从此数据分析师的圈子里便多了一名新人——当然,这里的新无关乎年龄。
时至今日,自己早已正式从事数据分析师一职数月有余,在目睹网络炒作所赋予的职业属性之外,对这个角色和岗位有了更多的亲身感触和认知,虽然与资深数据分析师仍相去甚远,但至少也算是有了一点体会和发言权。下面主要从数据分析师的技能需求、自身学习历程和长远发展定位三个方面做以分享。
这个问题其实是一个老话题,但仍然觉得有必要重申一下,一方面是觉得当前这个岗位网红属性太重——培训机构疯狂炒作、企业常常设此岗位却又定位不清晰;另一方面很多想投身数据分析师的求职者也对此缺乏清晰的了解,容易受到外界的误导。当然,自己也谈不上对此认识足够全面和权威。
与传统的程序员岗位不同,数据分析师本质上仍属于程序员行列,但对业务了解提出了一定要求,如果说程序员和产品经理是对立的双方,那么数据分析师可以说是程序员中最懂产品业务的人、也是产品线里最懂编程的人,所以从这个角度讲数据分析师的职业属性是七分技术+三分业务。正因如此,数据分析师的技能需求也主要围绕技术功底和业务理解。比如在某招聘网站上随意挑选了一个数据分析师的岗位要求,其中很明确的提出了技术功底(SQL+数据分析语言+算法能力)、业务要求(数据敏感度+业务理解)。
从职位属性来看,这是一个面向风控的数据分析师
与此同时,正如前文所说数据分析师是一个网红岗位,所以很多企业也大多设立这一职位需求,由于这些企业的业务种类繁多,进而导致数据分析师的具体要求也随之而异,除了风控数据分析师这一大类外,另一种常见的数据分析师的应用场景是电商。除此之外当然还有很多其他小工种的数据分析职位。
当自己也认不清这一局面的时候,我选择从数据分析是视角来全面认识数据分析师,所以就有了这篇推文:听说数据分析师挺火,我们来数据分析一下!
可以说,自己的数据分析学历历程是受了网络炒作的很大影响,基本也都是按照网络的那一套学习路线走下来的,不过也谈不上错,所以也就如实记录分享。
数据分析必备——ESP基础套餐。ESP=Excel+SQL+Python,这应该也算是数据分析师的基本功了,Excel简单实用高效,SQL是数据存储、简单分析以及被众人吐槽的取数的基本载体,Python是一门胶水语言,尤其是数据相关的第三方库众多也是不争的事实,所以打算入门数据分析却不知如何入手时,那么不妨先把ESP基本功打扎实。Excel相对简单不再细述,附SQL和Python学习历程:
数据分析利器——Python数分三剑客(numpy+pandas+matplotlib)。都说Python语言适用于数据科学领域,其实更准确的说是因为有很多功能强大的第三方库,比如数分三剑客在数据分析的领域有着举足轻重的地位。三者的定位也各不相同:numpy=numerical python,侧重基础的数值计算,类似Matlab中矩阵计算的思想和方法,但面向数据类型主要以数值为主,功能也更偏重于基础的矩阵相关类操作;pandas=python data analysis,则是基于numpy的一个加强版数据分析工具,有着瑞士军刀的美誉,涵盖数据读写、数据清洗、数据聚合统计、建模分析以及可视化全过程,对于字符串和时间序列还有专用的属性接口,尤其是字符串属性接口中还内置了正则功能,运用起来简直不能再丝滑;matplotlib=matrix plot library,顾名思义是一个绘图库,其实也是实现了matlab中功能的一部分,也是基于numpy基础之上开发实现,绘图操作更为接近底层,虽然繁琐但支持更为精细的定制化需求,pandas中的可视化接口实际上就是调用了matplotlib。这里仍然附自己学习三个库的总结:
数据分析番外篇:业务学习。在完成了必备的技术能力储备后,发现缺乏业务理解可能会是一个致命的短板,但也认识到业务不像技术可以随时学习,业务需要依赖具体场景和方向。在了解大体方向和定位后,自己请教了一名从事数据分析师的好友,并听从了他的建议,学习了《数据化管理-洞悉零售及电子商务运营》一书,显然这是一本适用于电商数据分析的业务书籍,自己当前也并不是从事电商类的数据分析,但通读下来仍然对自己有了很大启发,比如也正是从那时学到了数据分析的六字箴言:对比细分溯源,当然自己习惯于在前面再加个趋势二字,于是“趋势、对比、细分、溯源”这四个词八个字常常是自己做数据分析的指导思想。
数据分析进阶一:Tableau。当初学习Tableau无非是在看了众多招聘需求后,发现有些企业要求对Tableau具备一定掌握,以便更为方便快速的完成可视化报表输出。实际上,Tableau是否必需,完全取决于职位对应的业务种类:如果企业对应的商业化数据分析,经常有输出报表需求,那么一般会要求掌握Tableau或者PowerBI的,这俩功能定位基本相似,视情选择其一即可。附自学Tableau学习总结:
数据分析进阶二:Hive。学过了SQL之后,发现当数据体量庞大时,还会要求懂得数仓理论和Hive技能。虽然数据库和数据仓库二者定位和原理有很大差异,但语法功能却是很相近的,基本上在熟练掌握SQL功底之后学习Hive会很容易上手。不过,学习Hive的难点在于它不像学SQL一样,就只需要学SQl就够了,Hive背后对应的是大数据相关的一套生态系统,虽不用全面涉猎,但至少也要了解Hadoop的大致原理、hdfs的基本操作,光是配置一个Hive环境和依赖,对很多新人来说都会是一个噩梦。
数据分析进阶三:机器学习。在完成了数分三剑客的掌握之后,应对一些基本的数据处理和统计分析其实已经足够,而且更准确地将机器学习已经算是算法岗位的要求而不再是数据分析师的职责范围,但仍然推荐在学有余力的情况下有计划的学习涉猎。有了机器学习的思维和技能,往往能激发另一层面的数据分析业务和结果。具体而言,Python做机器学习,主要就是掌握sklearn库,这也是一个实现优雅、功能强大、说明文档友好的第三方库,也是个人最喜爱的一个Python第三方库。当然,机器学习本身是一门大课程,甚至在有些企业中会单独设置机器学习的岗位,也不会奢望一名数据分析师完全胜任。附sklearn学习总结:
数据分析进阶四:pyspark。早在开启hive学习之时,就有入坑spark的打算。前面提到了pandas的种种好处,但在面对大数据时,其不支持分布式计算的弱点难免乏力,此时一种新的数据处理框架Spark真香扑来,pyspark当然就是spark的python版本。这一块自己目前仍然在加紧学习中,掌握还不够深入。附几篇简单的pyspark学习总结:
PySpark SQL——SQL和pd.DataFrame的结合体
Spark Core——RDD何以替代Hadoop MapReduce?
数据分析进阶五:深度学习。机器学习的plus版就是深度学习,当然二者侧重的领域也是不一样的,机器学习面向相对较为传统的分类、回归、聚类、推荐和降维等算法场景,而深度学习的两大经典领域则是CV和NLP,其中前者操作的数据类型是图像,后者操作的是语言文本,更具体说用到的深度学习技术就是CNN和RNN,再加上基础的神经网络DNN,这也是深度学习中三个最为主要的场景。不过说起来简单,但每一个场景都值得深入研究,每一项技术都能支撑一个岗位和专家称号,这又是一条漫漫学习路。
虽然自己当前从事的岗位就是一名数据分析师,但内心却仍然觉得只做数据分析是远远不够的,换句话说数据分析师对应的层次仍然是相对较为基础的数据处理和统计分析层次,纯粹的数据分析师发展可能也会比较受限(虽然有人还提过数据分析师的最高角色叫首席数据分析官,Chief Analysis Officer,首字母缩写就不写了……),但总觉得不会是常态和坦途。所以,目前仍然会多学一些算法相关的技能,主要是对标sklearn+pytorch+pyspark,或许一名算法工程师会是自己的下一个dream role。
以上,权当致敬自己忙碌的当下!
相关阅读: