每年总有很多人,怀揣着对世界的一知半解、满腔似火的热情、还有对美好生活的向往,走出象牙塔,投身社会。
世界很大,诱惑很多。对于未来,甚至在工作多年后,他们仍然没有清晰的方向,或者缺乏独立、深度的思考。
方向很重要,而人生很短暂。往哪里走,怎么走,再怎么也得花点时间思考一下,不是吗?
如果你决心要在数据科学领域有所作为,或者立志做数据分析,这篇文章提了点小建议,希望对你有所帮助。
一、去大厂还是去小厂?
我们做每件事之前,都要先明确做这件事的目的和意义是什么。
先来问问自己,做数据分析的目的和价值是什么?我的理解是,致力于用数据帮助企业解决业务问题,辅助业务决策。
关于这个问题,你可以花3-5年时间来思考和领悟,不急,但需要想清楚。
你还面临一个抉择,到底是去大厂还是去小厂?
之前接到很多猎头电话,不少都会问:“你是做分析还是做挖掘的呀?”刚开始,也常会和猎头在电话里“理论”一番。后来在大厂待过才明白,大厂分工比较细,分析是偏向经营分析,即取数分析写报告,而挖掘则是建模调参部署等。小厂就不一样了,谈需求、确定思路、指标设计、平台搭建、接入数据、处理数据、建立宽表、模型训练、结果分析、撰写报告、模型部署、报表计算、数据可视化等一整个流程,一个人几乎都可能会参与。
如果有机会,请一定要去大厂历练几年!大厂大多都很开放,常常敢为天下先,敢于引入一些新的东西,包括技术、思维、制度,技术比较先进,优秀的人也很多。
大厂的管理制度也很完善,福利待遇当然会更好些。大厂的数据规模绝对够大,而且应用场景也多,可施展的空间应该会比较大。所以,抱着学习的态度在大厂里混几年,是可以成长很快的。(有好,当然也有不好)大厂流程繁杂,整体效率偏低,提一个取数申请可能需要1-2周。大厂的内部竞争也大,存在于不同项目团队,也存在于同一部门不同成员之间。大项目资源投入大,小项目资源申请很困难,重视程度也不一样。最主要的,大厂分工很明细,不同职位的轮换似乎不大容易,从入职到几年后离开一直做经营分析都是有可能的,容易导致能力的单一,不利于个人综合素质的培养。
相比之下,小厂就灵活多了,人和事都不会很复杂,而且效率也高。小厂可能会优先考虑做这件事情的投入和产出,即看应用效果。(大厂反而愿意给资源去试,短期内不怎么关注投入产出。)所以,在小厂工作,既要学会帮公司赚钱,也要学会帮公司省钱。小厂分工不会很细,大多需要一个人做多种工作。所以,小厂里面的程序员常常身怀多技。但小厂数据规模小,技术实力较弱,团队成员整体素质不高,而且项目流程不大规范,常常怎么简单怎么来,怎么高效怎么来。有些小公司的码农,除了对外发过一两封邮件,平时的沟通几乎是在QQ里,结果待了几年之后连写一封邮件都不会。有些小厂自己没有数据,重要是作为乙方给大企业做项目,这种模式常常受甲方牵制,可发挥的空间很小,而且一个项目周期往往比想象中要长(我本人之前就厌倦做乙方),因此不大建议去这样的公司。
不管大厂还是小厂,在选择时,建议都要看看所要加入的团队。
综合来说,建议先去大厂混几年,再去小厂找个Title高点的职位发挥自己所长。
再来说几句,什么场景下分析,什么场景下挖掘呢?
分析其实是一个很笼统的概念。把当前营业额跟去年同期做对比发现增长了不少,这个也可以认为是分析。分析是从数据中发现问题或规律,并提出合理的建议。分析常常伴随着要写报告,进而要给业务方汇报分析结果。最好是给决策层汇报,因为决策层有拍板的权力,而且对数据结果的感知和可能的应用有自己独到的认知。
如果需要把分析的结果固化下来,定期输出结果,提供给业务方,这个时候就需要开发数据产品了。
挖掘是用算法解决某个具体的复杂问题,用常规分析方法解决不了的,如客户流失预警、商品最优推荐组合、最有投递路线规划等。
所以,我一般认为,分析是从数据中发现问题或规律,而挖掘是其中的一块。
二、1-3年,“所见即所得”,打磨基础技术
在职业生涯的初期,请牢记,“所见即所得,所感即所知,多见即多得,多感即多知”。
不管在大厂还是在小厂,一定要参与到实际项目当中,好好打磨自己的技术。不管是大项目还是小项目,一定要借助来之不易的机会,以极致的工匠精神修炼自身。
你最好能从基础数据处理做起。只有这样,你才能早点知道,数据并不像在学校里做实验用到的数据那样“好”,它可能看起来“又脏又乱”。只有这样,你才能早点知道,给你取数的那个程序员是如何花了2-3天甚至一周时间才把数算好。
如果你精通SQL,那就太好了,这样就可以直接能够在数据平台查看原始的数据了。
最好要看一看最原始的数据长什么样。你不一定能一下子理解这些数据,但你可以慢慢地感受它们,因为它们所投射出来的是最真实的业务场景。
举个例子吧,原始的会员注册信息数据里面,性别一般填“男”、“男性”、“女”、“女性”、“未知”、“其它”等值,但处理好之后的二手数据里面,性别就变成了“男”、“女”、“未知”等三个值了。仅看这三个值,可能会漏掉一些业务场景,填“男”可能是从移动端输入时选择的,填“男性”则可能是手工填写注册表格时勾选上的。而漏掉的这个场景,说不定就是所要找的那个分析点。
你最好还能熟练掌握一两门编程语言,比如当下流行的Python,作为入行的基础技能。(顺便说一下,码农界普遍认为只会SQL的不算真正的程序员~~)
当今时代,编程已经从娃娃开始抓起。早在5年前,英国规定5岁以上儿童必须学习编程课,法国将编程列入初等教育选修课程,美国已有40个州制定政策支持计算机科学,有35个州将计算机科学课程纳入高中毕业学分体系。美国前总统奥巴马就曾在全美发起“编程一小时”的运动,旨在让全美小学生开始学习编程。2017年,浙江、北京、山东等省确定要把Python编程基础纳入信息技术课程和高考的内容体系。编程将是一项很基础的技能,也将是承接其他知识的基石。在未来,会编程很可能跟使用智能手机一样普遍。
当处理基础数据的时候,必然会在数据库或数据平台上进行。你可能需要对这些存储数据的环境加以了解,如传统的结构化数据库Oracle、Mysql、DB2等,又如当下流行的Nosql数据库HBase、Redis、MongoDB、Cassandra等,再如大数据集群平台、原理及其相关概念,类似Hadoop、Hive、Hue、MapReduce、Spark、Scala、Sqoop、Pig、Zookeeper、Flume、Oozie等。你或者也需要了解数据传输的工具,如DataStage、Kafka、Sqoop等。你甚至也可能被安排做安装系统、部署软件、配置环境、同步数据等一些琐碎的工作。
关于这些,如果你非常感兴趣,可以考虑往大数据平台方向发展,成为数据开发工程师、数据平台运维工程师、或者数据平台架构师。
你不必理解太深,可仅仅停留在了解层面,但知道这些知识会让你和数据开发工程师、运维工程师和平台架构师沟通起来顺畅很多。
当处理和分析数据时,有些关于数据的操作是必然需要掌握的。首先是常见格式的数据导入导出,如TXT、CSV、XLS,然后是主要的数据加工技巧,包括建表/视图、插入、更新、查询、并联、串联、汇总、排序、格式转换、循环、常用的函数、描述统计量、变量,等等。
这些操作很基础,但不简单。你可能经常会遇到各种情况,如花了一个下午时间就是没能把一个很小的CSV数据文件正确地导入到数据库中,不是乱码就是错位,或者两表关联时老是报一些烦人的错误,或者日期字段进行格式转换时出现空值......反正状况百出,防不胜防。
关于这些基础操作,需要不断积累经验,尽量能够做到在不同场景下快速高效地完成,轻松应付。
如果有人已经给你取好了数,而你的工作是分析数据写报告,那么分析技巧首先是你需要培养起来的。对拿到的数据,要时刻保持疑问,不能太乐观,因为别人算好的数据未必完全是你想要的数据,又或者数据质量并不是你想的那样好。
在分析之前,需要进行数据探索,看看数据质量如何。
比如,你需要清楚有多少数据量,有什么信息,可衍生什么指标,缺失情况如何,如何填补缺失值,值的分布情况如何,如何处理极值,名义/字符变量是否需要转换,等等。
分析时,要清楚指标不同形态的含义,如绝对值、占比、同比、趋势、均值、标准差,等等。
在这里,我想指出,数据有对比才有意义。如果一个穷人捡到100元,他会很高兴,这够他吃好几天了。但如果让一个富人去捡100元,那感觉就不一样了,他可能觉得他不值得这么做,因为用弯腰去捡的时间挣到的钱远远不止这么多。
统计学知识是必须要掌握的,这是基础。如果你非数学或统计学专业出身,那么请自学。
另外,也请你一定要掌握主流算法的原理,比如线性回归、逻辑回归、决策树、神经网络、关联分析、聚类、协同过滤、随机森林,再深入一点,还可以掌握文本分析、深度学习、图像识别等相关的算法。
关于这些算法,不仅需要了解其原理,你最好可以流畅地阐述出来,还需要你知晓其在各行业的一些应用场景。
关于这些算法,你最好能够参与关于模型开发的具体项目实践。那样的话,你就可以清楚关于建模的大概流程是怎么样的,不同算法在建模中有不同,需要注意哪些地方。
作为职场新人,你不仅需要打磨技术,纯技术之外的技能也需要不断修炼。
职场的做事方式方法、为人处事以及一些潜规则,更多时候只能靠悟,说出来就可能不大好了,因此需要不断领悟。毕竟,悟性这东西是很重要的。
还有,沟通是码农普遍的老大难问题,建议重视起来并加强。
如果你有机会和很牛的人在一起工作,那你太幸运了。你可以多请教优秀的人一些问题,也可以平时多观察那些优秀之人的做事方式、工作习惯,看看有哪些好的地方、好的品质值得你学习。只要吸纳进来,就可以转化为你的优点,推动你进步。
俗话说:“三人行,必有我师。”每个人都有每个人的优点,对于所遇到的每个人,建议多欣赏别人的优点,少抨击别人的缺点,这样你就可以“兼收并蓄”,逐步塑造更好的自己。
三、3-5年,“技多不压身”,拓展能力边界
当迈过了最初的3个年头后,你的技术越来越好,也做了不少项目,也越来越清楚自己未来的方向,但你也会发现有越来越多的东西还需要去学习和加强。
这个时候,你的知识是零散的,还远未形成体系。你也许还需要花些时间好好梳理和总结过去几年积累的经验和知识,不断沉淀,形成自己的知识体系和方法论。在梳理的过程中,你会不断清楚自己有什么,缺什么,哪些地方弱,哪些地方强,未来需要花多少时间补强哪项技能,等等。
你可以沿着数据的整个流程,即数据采集、数据存储、数据处理、数据分析/开发模型、报表计算、数据可视化,不断拓展自己的能力边界,最好在流程中的各个环节都做过项目。
例如,在数据采集环节,你可以学一下爬虫技术。
这个时候,你不再是新人。新人大多是等着别人安排工作,并在详细的指导之下完成。而你慢慢成长为老司机了,需要独立完成一个个任务了,如独立开发一个模型、写一份会员分析报告、梳理关于近期营业额下降原因分析的思路,等等。你需要不断适应在无人指点的情况自己去寻求问题解决办法,也可能需要应对此前没有遇到过的新情况并独立展开调查研究。几乎没有人帮你,你也没法指望别人明确告诉你怎么做。而你需要的是,历经3年之后成长路上的一个质变。
在这过程中,你可能需要不断查找资料,咨询别人,并加以思考,梳理出有效的方案,最后落地执行。在这过程中,可以有效训练以下几方面的能力:
- 查找资料
- 会问问题
- 总结梳理
- 写作能力
关于总结梳理,建议定期做,常常做,每天做,建议养成一个日常习惯。
对于不同问题和场景的思路整理总结,常常需要方法论指导,如麦肯锡金字塔原理、结构化思维等。关于这些方法论,不仅要谙熟于心,也需要将其应用到实际工作当中。这是受用一生的知识,你也可将其运用到你的日常生活中,用以解决你日常的问题和需求。
关于思路的整理,可以借助思维导图工具。
另外,请注重培养自己的数据敏感性和数据思维,越早开始越好。关于如何培养数据思维,将以另外的文章单独阐述。
EXCEL是操作和处理数据最方便的工具,也是必须掌握的办公软件。很多人会用EXCEL,但根本不精通EXCEL。简历里那句“精通EXCEL等办公软件”,常常是一个谎言。建议你好好学一下EXCEL,包括展示数据、透视表、函数、画图、动态图表、VBA等。不要仅仅停留在最粗的层面,比如画图,使用默认设置也可以画出一个图表,但是不好看,阅读体验不好。关于怎么用EXCEL画好图表,推荐阅读《EXCEL图表演示之道》、《最简单的图形与最复杂的信息》。
写分析报告,难免会用到PPT。关于如何写好PPT这件事,从来就不是件轻松的事。但你可以给自己一些时间去学,比如3年、5年、甚至10年。刚开始,写得不好没关系,但一定不要放过每一次锻炼的机会。
在领导眼里,会写材料的人比会编程的人更有存在感。而且,会写材料的人总是显得那样“稀缺”。如果你是别的同事眼里的“会Coding的人中最会写PPT+会写材料的人中最懂技术”的那个人,那你将会很受重用。
四、5-10年,“不忘初心”,有所为有所不为
在别人眼里,数据分析和开发模型是很高大上的。但这高大上,常常处在很多尴尬的处境。数据分析汇报一次之后就没了下文,模型开发了,部署了,也定期出数了,但就是没用起来。用户方或业务方觉得这些东西对他们业务帮助不大,可有可无(虽然包装一下用来忽悠一下投资人可能也有点用处),还不如一个经验规则来得有效,简单粗暴,省时省力。
关于经验规则和算法模型之争,如果你坚定认为你开发的模型比业务方所认为的经验规则更有效,那么,请你拿出“证据”,用数据说服业务方,让他们改变观念,觉得你是对的。
之前信奉的那句“数据驱动业务”,是不是错了吗?
此刻,请回到初心吧!我们的初心是什么?那就是用数据帮助业务解决问题,用数据辅助业务决策。数据分析只是其中一种形式,当然还有其它。因此,不要迷恋数据分析,不要迷恋算法模型。“不管黑猫白猫,抓到老鼠就是好猫。”
你或许开始注重追求数据解决方案的实用性,强调落地执行,更看重应用效果。
你必须真正理解业务方的需求。当业务方进行选品和定价时,他们需要一份关于竞品的商品数据来做参考;当业务方想随时看到当前时刻的订单量,你需要实时汇总数据并实时呈现给他们;当业务方既想看总体的经营数据,也想看各区各部门各门店的经营数据,你需要开发一个多维度层层钻取查看的功能......而这些都不是数据分析和算法模型,但这些也是数据应用,也能产生数据价值。
如果有机会,不妨尝试做个数据产品经理。数据产品经理需要从产品角度实现业务功能。在当前数据产品化的趋势下,这是一个很有挑战性的事情,不容易做好。毕竟,讨好一大群用户,比单独讨好一个用户要难得多。
在数据产品设计里,数据可视化是一个重要的事情。好的图表会说话,好的功能会抓住用户的心。即便撇开数据产品,我们在分析报告里也会需要数据的可视化表达。
数据可视化传递的是一种明确的数据信息,一目了然,赏心悦目。从画好一个数据图表,到功能版式的精心设计,再到对功能细节良苦用心的把握,你需要不断精进。一旦你感兴趣,你将会很快沉迷于其中,因为那是一种美的表达。
五、10年+,“砥砺前行”,创新、创业、创造
是的,你已经做了十年,希望你无悔当初的选择与坚持。
此时你也遇到很多瓶颈,或许你空有一身好武艺但得不到老板重用,或许你想做个实力派但处于各种原因离技术越来越远,或许你很努力但职务仍然上不去,或许你面对繁重的工作心有余而力不足,各种分身乏术......你一直在等待和寻找着机会,突破自己。
如果你在一个行业待了十年,在别人眼里无论怎样都已是个专家,所以,请自信!
你还需要在圈里有一定的影响力,需要树立个人品牌,最好能在圈里外有较好的传播。或许你需要逐步提升讲课程的能力,这是一种知识分享与传递,也是提高个人影响力的有效途径。不要放过任何露脸的机会。
你或许已经深刻明白,分析的结果、开发的模型、数据产品只有被应用起来,才真正算是产生价值。你会越来越关注数据应用的问题。当你开始聚焦这个问题时,你会问自己,”用户或业务方真正需要什么?“这个时候,你得有用户思维了。你会加强对业务的重视程度,也会不断回到业务层面去思考数据的实际应用。
你最好也时刻关注当前社会的趋势和潮流,特别是与互联网相关的。这样可以让你保持开放的心态,洞悉社会的风向,驱动自己的思考,挖掘潜在的机会。你可以从中了解当前行业中成功的数据应用案例,开拓自己的思路,多想想用数据还可以帮助各行业解决什么问题,可能的机会在哪里,自己应该怎么做。
你可能要面对的是,数据应用对一个行业或一个企业来说,永远都是在探索。某个数据应用思路或项目一旦成功了,就会得到越来越多的资源投入,越做越大,如果失败了,就会立刻遭放弃。因此,要有创新精神,要有创新的勇气和自信。
职位上来说,你可能开始担任一定的管理工作。因此,你还得学会团队管理,懂得如何向上管理和向下管理。你的日常事务会越来越多,你也需要学会有效管理自己的时间。你可以成为一名“清单控”。但必须指出的是,时间管理,最本质的还是自我的管理,对精力的管理。
这个世界一直在变。我们也一定要“善变”,顺势而为。不管是10-20年前的BI(商务智能),过去几年的大数据,这年头炒得火爆的人工智能,还是未来涌现的更多概念,只要我们足够开放,敏感洞察,挖掘机会,创新、创业、创造,不断成就自己。
汪国真在《热爱生命》里写道:“我不去想是否能够成功,既然选择了远方,便只顾风雨兼程。”英雄不问出身,只要你下定决心,即使再晚出发,也会达到,还可以走得更远。
最后,作为数据人,与你共勉,“不做数据的搬运工,要做价值的缔造者”。