第 15 章 结论

恭喜!你已经到达本书的最后一章。在刚开始阅读本书的时候,你可能只知道一点 Python 知识,也没有使用编程研究数据的经验。

现在你的经验应该相当不同了。你已经积累了寻找和清洗数据的知识和经验。你已经通过专注于问题和根据给定的数据集进行取舍,磨练了技能。你可以编写简单的正则表达式和复杂的网页抓取器。你可以在云端规模化数据和进程,并通过自动化的方式管理数据。

然而,乐趣不会止于此!作为数据处理者,你在职业生涯中还有很多要学习和实践的东西。你可以利用在本书中学到的技能和工具,继续扩展知识,进而拓展数据处理领域的界限。我们鼓励你追求卓越,继续针对数据、进程和方法提出难题。

15.1 数据处理者的职责

正如我们在本书和调查中确定的,数据和数据处理者可得出的结论是非常多的。但机会也伴随着责任。

没有数据处理的警察;但是,你在我们的书中学到了一些道德知识。你已经学到要成为一名谨慎的网页抓取者。你学习了拿起电话,询问更多的信息;学习了在展示发现时如何解释和文档化你的进程;还学习了如何针对困难话题提出难题,特别是当数据源有其他动机的时候。

作为一个数据处理者,随着你不断学习、成长,你的道德感也会增强,并会在工作和进程中指引和帮助你。从某种程度上讲,你现在已经是一名研究型记者了。你获得的结论和你问的问题可以并且能够在你的领域中产生影响。知道了这些,你就有了责任的压力。

你的职责包括:

  • 使用你的知识、技术和能力,用于公正和有益的事情;

  • 为你周围的人贡献知识;

  • 回馈帮助你的社区;

  • 挑战迄今为止你学到的道德的反面,并且继续开发。

我们鼓励你在数据处理者的职业生涯中迎接这些挑战。你是否喜欢同其他人一起工作,分享知识?成为一名导师!你是否喜欢某个开源包?成为一个代码或文档的贡献者!你是否研究过重要的社会或健康问题?将你的发现贡献给学术团体或社区!你是否经历过来自某个社区或代码的难题?向全世界分享你的故事吧。

15.2 数据处理之上

本书的课程提高了你的技能,但是你还有很多要学习的东西。根据你的技术栈和兴趣,有许多领域值得进一步探索。

15.2.1 成为一名更优秀的数据分析师

本书介绍了统计和数据分析。如果你想要真正地夯实统计和分析技能,需要花更多的时间阅读方法背后的科学知识,同样还要学习一些更专业的 Python 包,这样你在分析数据集时会有更多的能力和灵活性。

为了学习更高级的统计学知识,回归模型和数据分析背后的数学知识是必须学习的。如果你没有上过任何统计学课程,Edx 有一个很棒的来自加州大学伯克利分校的存档课程(https://courses.edx.org/courses/BerkeleyX/Stat_2.1x/1T2014/info)。如果你想通过读书来探索,Allen Downey 的《统计思维:程序员数学之概率统计(第 2 版)》1 很好地介绍了统计数学概念并且使用了 Python。Cathy O'Neill 和 Rachel Schutt 的《数据科学实战》2 提供了数据科学领域的深入分析。

1此书已由人民邮电出版社出版。——编者注

2此书已由人民邮电出版社出版。——编者注

如果你想学习 scipy 技术栈和更多关于 Python 如何帮助你进行高级数学和统计分析的知识,你很幸运。pandas 的一个主要贡献者 Wes McKinney 编写了《利用 Python 进行数据分析》,深度讲解了 pandaspandas 的文档(http://pandas.pydata.org/pandas-docs/stable/10min.html)也是很好的入门方法。在第 7 章中,你学习了一些关于 numpy 的知识。如果你对学习 numpy 一些核心的知识感兴趣,查看 SciPy 关于基础的介绍(https://docs.scipy.org/doc/numpy/user/basics.html)。

15.2.2 成为一名更优秀的开发者

如果你想要增强 Python 技能,Luciano Ramalho 的《流畅的 Python》3 深入讨论了 Python 中的一些设计模式。我们也强烈建议你浏览世界各地最新的 Python 活动的视频(http://pyvideo.org/),并研究你感兴趣的主题。

3此书已由人民邮电出版社出版。——编者注

如果本书是你的第一本编程入门书,你可能想要参加一个计算机科学的入门课程。如果你想要自学,Coursera 提供了斯坦福大学的一个课程(https://www.coursera.org/course/cs101)。如果你想要一本介绍计算机科学背后的理论知识的在线教科书,我们推荐 Structure and Interpretation of Computer Programshttps://mitpress.mit.edu/sicp/full-text/book/book.html),由 Harold Abelson 和 Gerald Jay Sussman 编写(MIT 出版社)。

如果你想通过与其他人一起构建和工作来学习更多的开发原则,我们建议你找一个本地讨论组并参与进去。许多类似的小组会举办本地或远程的极客开发活动,所以你可以同他人一起编写代码,通过实践来学习。

15.2.3 成为一名更优秀的视觉化讲故事者

如果你对本书中视觉化讲故事的部分特别感兴趣,有很多拓展该领域知识的方式。如果你想继续研究我们使用过的库,我们强烈建议你学习 Bokeh 的入门教程(http://bokeh.pydata.org/en/latest/docs/user_guide/tutorials.html),同时利用你的 Jupyter notebooks 做实验。

学习 JavaScript 和 JavaScript 社区中流行的一些可视化库,会帮助你成为一名更好的用视觉讲故事者。Square 提供了一个关于 D3 课程的介绍(https://square.github.io/intro-to-d3/),对流行的 JavaScript 库 D3(https://d3js.org/)做了简短说明。

最后,如果你想从数据分析的角度学习视觉化讲故事背后的一些理论和想法,我们推荐 Edward Tufte 的 Visual Display of Quantitative Informationhttps://www.amazon.com/Visual-Display-Quantitative-Information/dp/0961392142/,Graphics 出版社)。

15.2.4 成为一名更优秀的系统架构师

如果你想学习如何规模化、部署和管理系统,我们几乎没有触及系统表层。

如果你想学习更多的 Unix 知识,萨里大学有一个简短的教程,介绍了一些优秀的概念(http://www.ee.surrey.ac.uk/Teaching/Unix/index.html)。Linux 文档项目同样有一个简短的关于 bash 编程的介绍(http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html)。

我们强烈建议你花时间学习 Ansible(http://docs.ansible.com/ansible/intro_getting_started.html),一个可扩展的、灵活的服务器和系统管理解决方案。如果你对规模化数据解决方案感兴趣,Udacity 提供了一个对 Hadoop 和 MapReduce 课程的介绍(https://cn.udacity.com/course/intro-to-hadoop-and-mapreduce—ud617)。你同样应该查看斯坦福大学关于 Apache Spark 的介绍(http://stanford.edu/~rezab/sparkclass/slides/itas_workshop.pdf),还有 PySpark 编程指南(https://spark.apache.org/docs/0.9.0/python-programming-guide.html)。

15.3 下一步做什么

下一步你会怎么做?你拥有很多新技能,并且能够质疑自己的假设和发现的数据。你还有一些 Python 的应用知识,而且很多有用的库触手可及。

如果你对特定的领域或数据集没有热情,你会想要发现新的学习领域,继续你作为一名数据处理者的进程和探索。很多很棒的数据分析师书写了很多激励人心的故事。这里就有一些这样的故事。

这个世界还有数不清的未讲述的故事。如果你有激情或信念,很可能你的观点和数据处理技术可以帮助人们和社区。如果你没有激情,我们鼓励你通过跟进新闻、文档和网络上的数据分析,不断地学习。

无论你的兴趣是什么,都有无限的可能性去深入学习和掌握本书中介绍的概念。任何最能激发你兴趣的事情,就是未来学习的最好途径。我们希望这本书只是你数据处理者生涯的一个起点。