来源:机器之心
编辑:杜伟
在科研领域,计算机软件的应用无处不在。但是,一些研究者因为自身并非毕业于计算机相关学科,所以有时不得不将大量的时间花费在自学软件工程上。对于有些想要提升自身编码与软件开发水平的研究者来说,合适的学习资料至关重要。本文介绍的这本开源书籍就是为这类研究者「量身打造」的。
目前,软件对于研究而言至关重要。这意味着研究人员需要了解如何创建、检查、使用和共享程序。但是,大多数编程指南侧重于开发商业应用,而不探索那些尚未得到解答的问题。而在本文介绍这本开源书籍《Research Software Engineering with Python》中,作者旨在向读者展示如何做到这一点,无论作为个人还是团队成员。
书籍地址:https://merely-useful.github.io/py-rse/
GitHub 项目地址:https://github.com/merely-useful/py-rse
作者认为,每位研究人员都应该了解如何编写能够重复清理和分析数据的短程序,以及如何使用版本控制来跟踪自己做的事情。但正如一些天文学家致力于设计望远镜一样,一些研究人员专注于构建使研究成为可能的软件。从事这项工作的人被称为研究软件工程师(research software engineer),他们主要构建其他研究人员依赖的专用软件。在本书中,作者通过帮助读者为自己编写代码以及创建有助于整个领域进步的工具,为研究软件工程这一角色做好准备。
据书籍主页介绍,本书既可以作为大学层次的课程材料,也可以用于读者自学。俄勒冈大学助理教授 Grant McDermott 两次转推了该书籍,表示大多数研究人员将大量的时间花费在了自学软件工程上,这本书籍指南可以使研究人员在这方面做得更好。这本书还提供了软件工程方面的最佳实践,非常值得向学生推荐。
本书的目标读者是那些使用 Python 进行数据分析、但又想将自身编码与软件开发提升至更高水平的研究者。读者没有必要非常精通 Python,但应该已经习惯了从文档中读取数据以及编写循环体、条件语句和函数。此外,就书籍内容而言,本书并不只是简单地提供一些关于好的编码实践的参考资料,而侧重于创建软件包以解决实际的研究问题。
书籍目录
本书共有 15 章,涵盖了使用 Unix shell 管理数据和代码、使用 Python 构建命令行工具、使用 Git 和 GitHub 跟踪和分享工作、配置程序、测试软件、创建以标准方式安装的 Python 包等诸多方面。以下只列举了前 5 章的具体内容,其他章节内容可参考原书籍。
第 1 章:入门指南
项目结构
下载数据
安装软件
第 2 章:Unix shell 的基础知识
文件和目录
移动
创建新文件和目录
移动文件和目录
复制文件和目录
删除文件和目录
通配符
阅读手册
第 3 章:使用 Unix shell 创建工具
组合命令
Pipe 如何运行
在多个文件中重复命令
变量命名
重做
自动创建新文件名
第 4 章:使用 Unix shell 进一步探索
创建新命令
使脚本功能性更强
将交互式转化为脚本
在文件中查找
查找文件
配置 Shell 脚本
第 5 章:使用 Python 构建命令行工具
程序与模块
处理命令行选项
文档
词频计算
管道
位置和可选参数
结果理序
编写自己的模块、
绘图
……
主要作者介绍
Damien Irving,分别于 2009 年和 2016 年取得墨尔本大学的学士和博士学位。虽然目前主要从事海洋温度与盐度变化的检测与归因研究,但对科学计算与开放科学具有浓烈的兴趣。业余时间担任学习网站 Software Carpentry 的讲师。注:Software Carpentry 网站专为科学家和工程师提供在计算技能方面的速成课程。
个人主页地址:https://people.csiro.au/I/D/Damien-Irving
Greg Wilson,本科毕业于加拿大女王大学,之后在爱丁堡大学取得了人工智能硕士与计算机科学博士学位。在其丰富的职业履历中,他曾担任企业软件开发者、独立咨询顾问、高级软件工程师、大学助理教授、数据科学家、专业教育家等。此外,他还是学习网站 Software Carpentry 和开源软件架构(The Architecture of Open Source Applications)的联合创始人。
个人主页:https://third-bit.com/
2021年 2 月的第一周,机器之心将携手二十余位 AI 人耳熟能详的重磅嘉宾进行在线直播,通过圆桌探讨、趋势Talk,报告解读及案例分享等形式,为关注人工智能产业发展趋势的AI人解读技术演进趋势,共同探究产业发展脉络。连续七天,精彩不停。
添加机器之心Pro小助手(syncedai 或 syncedproii),备注「2021」,进群一起看直播。