二十一世纪什么最贵?答案:人才。
二十一世纪什么人才最贵?答案:数据科学家。
别笑,现在的很多新闻动不动就爆出数据科学家起步工资几十万,年薪上百万。
的确,我经常会听到有人跟我说,数据科学家是21世纪最有前途的工作,他们有着丰厚的收入,做着非常酷的事情,这些都吸引着越来越多的新人和跨专业者,想要入门或转型成为一名数据科学家。
或许你已经通过其他途径了解过这一职业,知道数据科学家是一个跨学科的综合性人才,他们比统计学家更懂编程,比软件工程师更懂数学知识,比业务专家更懂得如何利用数据处理复杂问题,因此我们需要理出一个线头,从自身的实际情况出发,投入时间去学习,逐步入门。
那么,我们今天就聊点实在的,萌新该如何成长为一名老司机。
基础技能的积累,根本停不下来
如果有人跟你说,转型成为一名数据科学家很容易,不是想要给你卖课程,就是想要开你的玩笑。古人云,不积跬步无以至千里,不积小流无以成江河。这小时候常常在作文中引用的一句话,在学习这家事情上我居然没有想好用什么更好的词来表述。老司机偶尔也要掉书袋,大家见谅。
回到正题,成长为一名数据科学家,基础技能的积累是一刻也不能停止的。从种下技能树的那一刻起,就要不断给它施肥浇水,这样才能长成参天大树,拥有一片树林。
一位合格的数据科学家,至少要具备以下几个方面的技能:
1.数学基础
2.数据库知识
3.编程能力
4.软件的使用
5.动手实践
6.业务认知
作为自学转型者,可以首先给自己来一个评估。看看自己主要缺失哪一块。
1.良好的数学基础,是一个不错的开端
诚然,数学是一件让大多数人头疼的事儿,但如果你本身已经具备了一定的数学基础,是一个不错的开始。数据科学领域所涉及的数学基础,大概可以分为三类:
a.数理知识:主要包括微积分、线性代数、以及概率论。
b.机器学习:简单拆解为回归问题(regression),分类问题(classification),聚类问题(clustering)。
c.深度学习:深度学习是机器学习的一个分支,在这里抽离出来作说明。需要去了解并掌握如深度神经网络,卷积神经网络等经典问题。
可能上面这段文字,每个字都能看明白,组合在一起就会有点懵逼。而且,对于身处转型角色的你来说,会被吓得不忘下看了,放轻松。
那么,在数据科学的路上,该如何翻过数学这座大山呢?最好的方式就是我们上面的提及的点滴积累+动手实践,千万不要一头钻入数学的汪洋大海。在学习和实践的过程中不断学习,那数学知识就像是滚雪球一样,越来越大,越来越圆。从一开始的云里雾里,到了解与熟悉,到最后全完掌握。当然,如果你在这个过程里发现了数学的乐趣,那也是一件很赞的事儿!
2.数据是什么,从哪里来,到哪里去
抛出一个很经典的哲学问题,你是谁,从哪里来,到哪里去?同样地,入门数据科学,我们也会问这样的问题:数据是什么,从哪里来,到哪里去。
数据是记录客观世界的一种可以被识别的符号。怎么解读呢,举个例子,我们每天使用智能手机,里面的应用程序(APP)会留下大量的使用记录(logs)。这些记录就是一种信息。数据从客观世界中来,被智能手机里面的APP所记录,存储在媒介中(比如数据库),被数据科学家利用工具或程序加以分析,从而让我们的手机更”智能“,更”懂“我们。
这里会涉及到一个概念,数据库。
作为一名数据科学家,数据库的知识也是必备的。根据不同的需求,简要可以把数据库分为关系型数据库(RMDBs, 如MySQL, PostgreSQL)和非关系型数据库(如MongoDB)。需要引起注意的是,数据库并不等于SQL。数据库是一个存储并管理数据的系统,而SQL,全称Structured Query Language,仅仅是关系型数据库的一种查询语言。掌握SQL也很重要,这一点我们后面会提及。
3."Talk is cheap, show me the code"
数据科学家需要掌握的编程语言,大致分为三种。
Excel:作为微软的三板斧之一,Excel经久不衰,有很多值得学习的地方。Excel中的函数,透视表,宏,VBA等功能,和编程的思想是相通的。掌握了这些功能,亦会对SQL和Python/R的学习有帮助。
SQL:关系型数据库作为最常用的数据库,其查询语言SQL的重要性不言而喻。实际业务中,一些取数、聚合等任务,用SQL的效率会很高。例如一个产品的日活DAU,一个query就可以得出结果。掌握了SQL后,对于一些大数据平台,如Hadoop,Spark以及No-SQL类型的数据库,亦可触类旁通,根据实际的业务需求,快速完成技能的掌握。
Python / R:随着人工智能的火热,Python代码简洁易上手以及内置众多数据分析库的特点被发扬光大,成为越来越多的数据科学家首选的编程语言;相对地,R语言也是一个经典的选择,很多公司的数据科学团队也在使用R语言作为主力工具,比如Airbnb,Uber。除了Python / R 之外,一些图像类问题,可能需要用到C++一类更偏底层的语言去做开发。这里面的爱与恨,欢乐与痛苦,需要在实际业务中去细细品味了。
这里给萌新们强烈推荐Python,最近不是有传言说四大和咨询大厂都开始要求员工开始学习Python和数据科学了么,最为最接近人工智能的语言,Python也比较好入门一些。
4.掌握软件的正确使用姿势
编程不是万能的,不会编程是万万不能的。作为一枚萌新,在数据科学职场上,面对不同的问题,应该发挥不同工具的特性,完成任务,可谓打一套”组合拳“。数据科学家日常可能会用到的工具有以下这几种:
Office三件套:Word, Excel, PowerPoint。可能你会疑问,用这些工具做什么?数据科学家的一项职能,就是架起业务部门与技术部门之间的桥梁。Office的这三件工具,能够使我们做的工作被更多非技术背景的人所理解。
各种分析软件,如偏BI类的Tableau和PowerBI,偏网站分析类的Google Analytics和百度统计,以及公司采购的各类平台,如SAS。
各种IDE:Pycharm, Jupyter, VSCode, Sublime
各种"小"工具:Xmind(教你绘制思维导图),Gliffy(教你绘制流程图)
纸上得来终觉浅,绝知此事要躬行。看到这里,也许你已经”磨刀霍霍“了,论萌新如何成长为老司机,动手实践才硬道理。
5.动手实践,是检验数据科学能力的硬道理
亲身动手实践,是数据科学的一个重要组成部分。动手实践可以分为在平台与社区上的实践,以及日常的点滴积累。
基于平台和社区的实践
数据科学家日常会关注两种类型的平台,一种是知识分享型,一种实践学习型,这两种类型的平台,构成了数据科学实践中的互补。
知识分享型平台,国内有 CSDN,简书,知乎等等,在上面可以看到各种大牛的文章和经验之谈,国外有Medium,HackerNews等。日常关注这些平台,可以学到很多处理问题的技巧方式,以及构建填充思维框架,加速成长。
但是,只是在知识分享型的平台学习理论知识还不够,我们还需要更好地进行实践学习。
实践学习型平台,国外有做的比较早的Kaggle,这是一个数据建模和数据分析竞赛平台,上面聚集着全球范围内的很多数据科学家,目前已经被谷歌收购了。当然对于入门者而言,逛老外的网站会稍显吃力。
国内的,我推荐kesci科赛(19年初改名字了,叫做heywhale和鲸),这个社区我从2016开始关注,算是国内最大的数据科学家聚集地。在和鲸这个平台上,有免费的数据科学平台可以用,这个对初学者来说非常友好,因为不用搭环境了。上面还有很多的数据集,你可以通过在线分析数据集的方式,提升自己的数据技能。
一名合格的数据科学家,应当具备以下数据技能:
a.数据可视化
b.数据建模与数据挖掘
c.数据分析报告撰写
d.数据产品设计
经过了初步的锻炼以后,在和鲸平台上有一些比赛和众包项目是开放报名的,你可以尝试报名参加,通过参加项目,让自己的技能得到进一步发挥。如果你是看了我的攻略,最后在比赛上赚到了钱,记得给我交学费哦!
"Copy and Paste from StackOverflow"
”Copy and paste from StackOverflow“,这是一句数据科学家的幽默,也是日常工作的真实写照,即通过检索问题的方式进行实践积累。实际工作中遇到问题的时候,数据科学家通常会选择在StackOverflow,Google,GitHub这类是平台去搜索。大多数场景中,自己遇到的问题已经有了前人的检索和回答,所以copy and paste, just make it work.
在积累基础技能和提升了动手实践能力后,为什么萌新依然是萌新,而不是老司机,这就涉及到一个很重要的问题——个人发展。敢问数据科学家未来路在何方,我们认为,起决定性因素的是数据科学家对业务的认知和理解。
6.业务的认知与理解,决定你的发展
随着技术的进步与发展,新技术固然取代旧技术,这是数据科学家,乃至所有技术工种人员要去迭代自己技术能力的原因,但这不是全部。在未来,技术的认知壁垒将会越来越低,数据科学家对业务的认知与理解程度,将会成为职业发展的决定因子。数据科学家对业务端的价值,主要有三个方面:
a.驱动业务决策
b.连接业务与技术
c.实现业务发展的需求
让你的分析报告,驱动业务决策
数据的一个作用就是让决策变得data-driven,即数据驱动。这个责任便落到了数据科学家身上。通常,他们需要定期去撰写分析报告,把分析挖掘数据所获得的洞察,转化为驱动业务的决策。
让你的数据应用,连接业务与技术
数据科学家如同一座桥梁,连接着业务团队和技术团队。让更多的数据,可以被不同知识背景的人感知。数据科学家的一项使命就是降低数据被认知的门槛。因此,数据科学家开发出的数据应用,显得尤为重要,比如一个共全公司使用的Dashboard看板。
让你的算法模型,实现业务发展需求
初期,比算法本身更重要的是,算法完整的实现从零到一,即:从设计到落地实施,最终解决业务问题,推动业务发展。随着业务的进一步发展,数据科学家所设计的算法需要实现完成的life cycle,有迭代,有更新,甚至推倒重来。