大数据文摘出品
来源:medium
编译:张大笔茹
作为一名最近毕业于化学工程专业的学生,我第一份工作是在一家科技公司担任数据分析师。我曾在这里记录了从化学工程到数据科学的转变。从那时起,每当我与学校的学生谈论这一举动时,许多人表达了相同的兴趣和疑问……
“你是如何从工程学转向数据科学的?”
这也是我问自己的问题-我是怎么实现这个转变的?一年多以前,我就一直想着去分享关于数据科学家技能掌握的旅程。
并非缺乏信息使学习变得困难。相反,学习数据科学的大量资源使得很难从普通资源中找到最佳资源。
如此多的选择,如此少的时间…
但是首先,让我们先明白…
什么是数据科学?
额…这是一个很难回答的问题。不同的公司对数据科学的定义不同,这使其变得模棱两可,有些难以捉摸。一些人认为是编程,另一些人认为是数学,还有一些人认为和理解数据相关,它们在某种程度上来说都是正确的。对我来说,我最同意的定义是:
数据科学是一个跨学科领域,它是综合数学,计算机科学,领域知识领域中的技术和理论。
对我来说,这就是数据科学的样子。我以模糊的方式表示各个领域部分之间的界限,即来自各领域的知识融合在一起形成了所谓的“数据科学”。
好,那我该如何学习数据科学?
这一系列博客将重点介绍在自学中参加的一些课程以及它们的优缺点。希望能借此帮助你规划数据科学领域的自学之旅。包括:
- 第1部分-使用SQL,Python和R进行数据处理(本文)
- 第2部分-数学,概率论和统计
- 第3部分-计算机科学基础
- 第4部分-机器学习
在这篇文章中,我将重点介绍如何学习数据科学家所需的数据处理知识。学习处理数据,通常需要:
- 使用SQL(标准查询语言)从数据库中提取数据
- 清理,整合,分析数据(通常用Python和/或R)
- 有效地可视化数据
1. 使用SQL进行数据提取
SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。如果把数据比作埋在地下的宝藏,那SQL则是挖掘宝藏原始形式的工具。更具体地说,它可以从数据库中的一个表或多个表的组合中提取信息。
精通SQL并不难。
SQL有很多不同的“风格”,如SQL Server,PostgreSQL,Oracle,MySQL和SQLite。每种方法都有细微的差别,但是语法大致相似,因此不必担心要学习哪种SQL。
要学习一种语言,首先要学习单词,然后再将它们组合成句子和段落。学SQL也是一样的。
我用Datacamp(SQL入门)和Dataquest(SQL基础)学习最基本的概念(SQL的单词或句子)。(稍后,我将介绍Datacamp和Dataquest的优缺点。)通常这些站点里包括讲解练习和示例来学习基本的SQL技能。涵盖的一些概念是:
- 过滤和选择功能SELECT和WHERE
- COUNT,SUM,MAX,GROUP BY,HAVING用于汇总数据
- DISTINCT,COUNT DISTINCT用于生成有用的不同列表和不同集合
- OUTER(例如LEFT)和INNER JOIN何时/何地使用它们
- 字符串和时间转换
完成这些练习并不能使我变成分析师。就像我能够理解单词和句子,但无法写完整的段落一样。尤其是缺少一些重要的中级和高级概念,例如子查询和窗口功能,这些已经在数次技术访谈中进行了测试,并且对于作为分析师的角色来说是必不可少的。这些技能包括:
- 使用COALESCE处理NULL
- 子查询及其对查询效率的影响
- 临时表
- 自加入
- 窗口功能,例如PARTITION,LEAD,LAG
- 用户定义的功能
- 在查询中使用索引以使操作更快
学习这些技能,我主要用免费的SQLZoo.net,它通过设置有挑战性的联系来巩固学习每个概念。我最喜欢的SQLZoo功能是它的在一个综合问题中测试不同概念的练习。例如,提供以下实体关系图,并要求其基于该关系图创建复杂的查询。
实体关系图示例。图片来源:Ottomachin,根据知识共享许可
这与我们在分析师工作中遇到的情况相似,即使用了已学到的不同技术从同一数据库中提取信息。
以下是SQLZoo问题“帮助台”的实体关系图。系统要求您显示经理和2017–08–12一天中每小时的已接电话数量。(在这里自己尝试!)
我使用的其他资源包括Zachary Thomas的SQL Questions和Leetcode。
2. 使用R和Python进行数据处理
开始学习数据科学所需的编程和工具是总是躲不过R和/或Python。它们都是非常流行的编程语言,用于数据处理,可视化和调整。R 还是 Python是一个古老的问题,值得单独写一篇文章。我的意见?
选择R还是python都没关系:精通它俩之一,你就可以轻松驾驭另一个。
我使用python和R进行编码开始于与CodeAcademy,Datacamp,Dataquest,SoloLearn和Udemy等一起写代码的网站。这些网站提供按语言或程序包组织的自定进度课程。每种方法都将概念分解为易于消化的部分,并为用户提供了入门代码。通常是先引导你完成一个简单的演示,随后将有机会通过练习立即练习该概念。一些人随后提供基于项目的练习。
今天我介绍自己最喜欢的两个:Datacamp 和 Dataquest。
(1) Datacamp
DataCamp在线提供由专业人士讲授的视频讲座和空白练习,视频讲座大多简洁有效。
我喜欢DataCamp的一个原因是它的最新的课程,以SQL,R和python的形式组成。这消除了计划课程的痛苦-现在只需要遵循自己感兴趣的选择即可,内容包括:
- Python / R相关的数据科学
- Python / R / SQL相关的数据分析
- R相关的统计
- Python / R相关的机器学习
- Python / R相关的编程
我个人是从R的Data Science开始学习的,该课程对R的tidyverse提供了相当详细的介绍,R tidyverse是一个非常有用的数据包的集合,这些数据包用于清洗,操作和可视化数据,其中最著名的是ggplot2 可视化),dplyr(用于数据操作)和stringr(用于字符串操作)。
我最喜欢的R语言包,作者提供
但DataCamp也有缺点——完成DataCamp之后信息保存能力很差。使用空白填充格式,很容易猜测空白处的内容,而无需真正理解该概念。在平台上学习时,我努力在尽可能短的时间内完成尽可能多的课程。我浏览了一下代码,并在不了解大局的情况下填补了空白。如果我可以重新开始在DataCamp上学习,那么我将花时间在整体上更好地消化和理解代码,而不仅是要求我填写的部分。
(2) Dataquest
Dataquest与DataCamp非常相似,着重于使用代码练习来阐明编程概念。与Datacamp一样,它提供了R,Python和SQL方面的各种课程,尽管范围比DataCamp中的要少。与Datacamp不同,Dataquest不提供视频讲座。
Dataquest提供的一些曲目包括:
- R / Python中的λ数据分析师
- Python中的数据科学
- 数据工程
通常,DataQuest的内容要比DataCamp的难得多。“填空”格式练习也更少。尽管花费了更长的时间,但DataQuest的知识保留却更好。
DataQuest的另一个重要功能是每月与导师通话,导师将浏览你的简历并提供技术指导。虽然我个人没有与导师联系,但事后回想,它肯定可以帮助我更快地进步。
3. 数据可视化
数据可视化是呈现数据信息的关键, 学完用python和R创建图表的技能后,我通过Cole Knaflic的《用数据讲故事》一书中学习了数据可视化的原理。
这本书是平台性的。换句话说,它不关注任何特定的软件,而是通过启发性的示例来阐述数据可视化的一般原理。可以从这本书中学到的一些关键信息包括:
- 了解背景
- 选择有效的方式
- 清理杂质
- 注意你所关注的地方
- 像设计师一样思考
- 讲一个故事
读这本书之前,我以为自己是很了解数据可视化的。
消化完这本书后,我可以画一个看起来还不错的图表了,来展示警察对黑人的残酷行为。这本书对我最大的启发之一是注意你所关注的地方。通过这条明亮的黄色突出显示非裔美国人的线条(使人联想起BLM颜色),同时在背景中保留图表的其余部分,并带有白色和灰色等暗淡的阴影,来突出我所关注的点。
数据可视化技术应用于强调警察野蛮行为的图表。图片由作者提供。
接下来…
在这篇文章中,我介绍了自己从头开始学习编程的步骤。通过学习这些课程,你应该已经具备了处理数据的必要技能!但还有很长的路要走。在接下来的帖子中,我将介绍:
- 第2部分:数学,概率论和统计
- 第3部分:计算机科学基础
- 第4部分:机器学习
如有更新,文摘菌定会第一时间传递给各位读者~
相关报道:
https://towardsdatascience.com/how-to-teach-yourself-data-science-in-2020-f674ec036965
【本文是51CTO专栏机构大数据文摘的原创译文,微信公众号“大数据文摘( id: BigDataDigest)”】