提升编码水平这本Python软件工程书籍为研究人员量身打造

https://m.toutiao.com/is/JTpR47T/

机器之心报道

编辑:杜伟

在科研领域,计算机软件的应用无处不在。但是,一些研究者因为自身并非毕业于计算机相关学科,所以有时不得不将大量的时间花费在自学软件工程上。对于有些想要提升自身编码与软件开发水平的研究者来说,合适的学习资料至关重要。本文介绍的这本开源书籍就是为这类研究者「量身打造」的。

目前,软件对于研究而言至关重要。这意味着研究人员需要了解如何创建、检查、使用和共享程序。但是,大多数编程指南侧重于开发商业应用,而不探索那些尚未得到解答的问题。而在本文介绍这本开源书籍《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/

(0)

相关推荐

  • GitHub上1万8千个star大佬开源算法推荐!!!

    不多bb先放图 链接   https://github.com/TheAlgorithms/Python 简介: 该项目上有大量的算法,包括排序算法.二叉树.动态规划.神经网络.机器学习算法等等,作者 ...

  • appium+python自动化39-adb输入中文(ADBKeyBoard)

    前言 上一篇提到"adb shell input textyoyo" 可以通过adb 输入英文的文本,由于不支持unicode编码,所以无法输入中文,github上有个国外的大神写 ...

  • OH MY ZSH!!

    前言 之前在终端使用命令的时候,总觉得少了点什么,后面发现了 zsh  这玩意之后,有被惊艳到,所以我想有必要给你介绍一下,毕竟谁不想效率杠杆的呢? 什么是 zsh 我们经常使用的 shell 命令行 ...

  • GitHub2019年4月最牛逼的15个python项目

    小帅b时不时会去Github逛逛,发现不错的资源就想着分享给公众号的读者们,下定决心了,为了让读者觉得关注我的公众号觉得有价值,以后小帅b每个月会把 GitHUb 上最牛逼的 15 个项目分享给大家, ...

  • 时序数据异常检测工具/数据集大列表

    作者 | rob-med 编辑 | 小极 来源 | https://github.com/rob-med/awesome-TS-anomaly-detection 原文 | https://zhuan ...

  • 几个 GitHub 高级搜索技巧,这就分享给你

    可能你在 GitHub 搜索某些项目的时候,会直接在搜索框里面使用关键词搜一下: 这样通过关键词进行全局搜索的方式会有一定的局限,比如在你想要过滤一些对你没用的信息,或者你想获取点赞比较高的项目时,就 ...

  • uiautomator2+python自动化测试1-环境准备

    前言 uiautomator是Google提供的用来做安卓自动化测试的一个Java库.功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点 ...

  • 6步学习法,纠正孩子错误学习方式,量身打造提升更快!

    你是否经常搜罗各种学霸学习法,把其当作灵丹妙药学以致用,但是往往成绩在很长一段时间都没有发生一个较好的质变,然后人还疲惫不堪.难以坚持,还怀疑自己? 大可不必!中段生的情况大致雷同,想要成绩发生质变, ...

  • “博缆会”——为线缆企业量身打造全员能力提升方案!

     近期有部分缆友咨询,"博缆会"线缆学苑能为电缆企业做些什么样的服务? 我的回答很简单:人才培训输出.技术作业指导.生产成本管控.质量体系建设!部分咨询内容汇总如下,如贵公司有类似 ...

  • 万般皆下品,惟有读书高:多读经典书籍,提升临床水平

    在所有的方式中,读书是通向高贵的最低门槛,尤其这个时代,知识的获取如此便利和低成本. 曾国藩说过:"人之气质,由于天生,很难改变,唯读书则可以变其气质.古之精于相法者,并言读书可以变换骨相. ...

  • 多读经典书籍,是提升临床水平的捷径

    在所有的方式中,读书是通向高贵的最低门槛,尤其这个时代,知识的获取如此便利和低成本. 曾国藩说过:"人之气质,由于天生,很难改变,唯读书则可以变其气质.古之精于相法者,并言读书可以变换骨相. ...

  • 编码日志 | 在积累中提高编码水平,在实践中提升数据质量!

    科技信息引领高质量发展 同创病案学科命运共同体 ▼▼▼ 注:以下问题的答案只专注于问题本身,读者朋友们若有其他疑惑,欢迎留言区提问互动,后续文章问您解答. 甲状腺激素不应症怎样编码? 建议编码至:E0 ...

  • 高手分享的古瓷底足25个特征,牢记其后多多提升鉴定水平!

    我们可以一起学习交流 微信:boze1189 我们在鉴定瓷器的过程中当然可以通过瓷器的神韵,器型,釉面,画工,款识,发色等等来鉴定,但是底足的鉴定是鉴定环节中极其重要的,尤其是对于真伪和断代是非常重要 ...

  • 9大练字核心,快速提升书写水平

    天天练字书法学堂 107篇原创内容 公众号 在硬笔书写练习中,认清练字的核心所在,进行训练,可以更为高效地提升练习者的现有书写水平. 由于硬笔书写字小.日常写字量大.硬质笔尖等特点,决定了硬笔书写训练 ...

  • 三谈如何提升计算水平

    我是一个教书匠,教书本领强~ 每天1个学习.教育.生活的干货 这是灰灰龙的第152篇原创文章 ↑↑点击上方蓝字关注我哈~ 01 每次考试完,总有不少孩子因为计算丢分不少. 题目也会,方法也对,但是就是 ...

  • 六组精彩小标题,快速提升写作水平。锻造铁...

    六组精彩小标题,快速提升写作水平.锻造铁一般的纪律作风.责任担当.理想信念.过硬本领:秉持某某初心.恒心.决心:永葆某某之心.铸就某某之魂.夯实某某之基. 材料写的好不好,评判因素有很多,但是如果放些 ...