人们常说数据科学建立在三大支柱上:领域专业知识,统计数据和编程。RStudio的首席科学家,开发30多个R包的Hadley Wickham推荐了5本他认为最好的关于计算机科学基础的书籍。
以下为fivebooks.com的Edouard Mathieu对数据科学家Hadley Wickham的访谈内容。
Edouard Mathieu:首先让我们来谈谈你的数据科学和计算机科学之旅。今天,你是RStudio的首席科学家,也是数据科学界备受尊敬的人物。然而,你最初的背景是人类生物学和统计学。是什么让你选择这条路?你是如何变为一个程序员,并开始数据科学的?
Hadley Wickham:这是一个不断改变的过程,一开始,我是从新西兰的高中升入一个医学院校,一年之后意识到我不想成为一名医生。我决定回到高中时真正喜欢的东西,那就是编程和数学。我很早就开始编程,我父亲有一台工作电脑,所以我就利用它探索Word,Excel和Access等东西,编写小程序和宏。在高中也曾为别人编写数据库,并学习了一些PHP来创建网站。
所以在我攻读统计学和计算机科学学位时,就已经对编程有所了解,大学是在奥克兰大学,这是R编程语言的发源地;几乎每个人都在使用它,作为一名学生,我不得不用它来做统计。我发现它非常有趣,于是攻读了统计学博士学位。
Edouard Mathieu:在我们深入研究并讨论这些书籍之前,您对学习数据科学时采用的编程语言有何看法?显然,你最大的贡献是在是在R语言,不过你也参与了其他的项目,这些项目你尝试将R和Python结合起来,而且许多底层代码是使用C++,一个数据科学家如果想要有一个扎实的计算机科学基础,你认为除了R语言还应该学习哪一种通用语言。
Hadley Wickham:这是个有趣的问题。C++对我来说是一个非常重要的工具,我工作的目标是编写C++代码,不过从事数据科学不必这样做了。实际上,如果你从事数据科学的工作,那么SQL的基础知识是非常重要的,同时你还应该具备R和Python的知识,许多数据科学团队都使用它们,最好擅长其中一种。
下面开始详细了解下书籍:
1
《计算机程序的构造和解释》
麻省理工已经不再使用这本书来教计算机科学导论了,转而用Python替代Scheme,而Scheme正是这本书使用的语言,这背后的原因可能是这个世界上已经不需要那么多的计算机科学家,简单来说,如今更需要的是知道如何使用编程语言并能够将它用于实践的工程师。
这本书对于具备高级工程语言经验的人来说用处很大,VBA、PHP和R都是非常好的编程语言,但许多计算机科学家对这些语言却表示不屑,本书向你展示了语言如何构建,这本书最大的价值在于他能给你创造编程语言的信心和知识。
还有另一本书也值得一提,《Concepts, Techniques, and Models of Computer Programming》,它比《计算机程序的构造和解释》更复杂一些,解释了编程语言是如何与计算机模型组合到一起的。
2
《算法设计手册》
这本书揭密了算法的设计与分析,以简单易懂的写作风格,介绍了各种算法技术,着重强调了算法分析,全书包括两大部分,“技术”部分介绍了设计和分析计算机算法的各种方法,“资源”部分给出了大量的参考资源,以及算法实现的各种资源。
3
《程序员修炼之道》
这本书是关于软件开发工艺,并兼顾了如何编写良好代码的书籍,这是一本非常实用的书籍,至少对于我这样的一名软件工程师来说真的有帮助,它能帮助你编写出高质量的代码,这是我们很少会在大学教育中谈到的事,更不用说统计学家了,这本书的目标是帮助你将想法转变成代码。
4
《编写可读代码的艺术》
编写可读代码的问题不在于识别问题,而是在于你能够判断一段代码是否是可读的,以及知道如何让它变得更好,软件开发社区经常用“烂”这个词来形容烂代码,我喜欢这本书的最大原因在于它提供了一系列的技巧来帮助你避免写出烂代码。
5
《Style: Lessons in Clarity and Grace 》
有时候看到某个句子或者某段话,会认为它写的不好或者没有意义,这本书给了我一些工具来分析一篇文章,并找出它不好的原因。其实这对编程也是有所帮助的,很显然,编程就是你在和计算机交流,而且你还是在和其他人交流,你没法编写一个单元测试来测试人们对你代码的理解程度。
1
关于Hadley Wickham
RStudio的首席科学家,莱斯大学的助理教授,资深R社区成员,已开发了30多个R包。因在数据处理和可视化开发工具方面的卓越贡献,获得专为统计计算而设立的约翰·钱伯斯奖。
领取专属 10元无门槛券
私享最新 技术干货