从实验科学家到开源科学软件开发者

还没有读者喜欢这篇文章。
Business as usual is a dead end

Opensource.com

我从实验科学家到开源科学软件开发者的旅程,以及我如何为开放、可重复的科学研究开发更好的工具。

早年

当我在学校时,计算机才刚刚开始展现其潜力,很少有人能上网。我记得我恳求妈妈给我买一台 ZX Spectrum,并用它编写基本代码在屏幕上画东西。从那时起,我就迷上了编程,但不太清楚是否有编程计算机的职业,而且如果我想做科学研究,这是否有用也完全不清楚。当我换成速度更快的 Amiga 500 Plus 时,我继续享受编程作为一种爱好,并喜欢编写模拟程序来理解数学和物理现象。

我真正使用的第一台基于 Windows 的机器(Windows 95)看起来很笨重,而且非常封闭。我记得那时了解了 Linux,并在 1996 年左右在一台旧 PC 上安装了 Red Hat Linux。那时它还相当粗糙,需要多个步骤,但我学到了很多东西。完成后,我也有了一个完整的开发环境,可以编写/编译代码。我为一家小公司工作了几年,主要维护一个 Microsoft Access 数据库,但我也负责让我们的服务上线。这是我第一次接触到网络上的 Linux 主机,即使命令行有点令人生畏,但 Linux 服务器在网络上的强大功能对我来说非常清楚。

回到学校


查看开源职业周的完整文章集

2000 年,我决定回到学校,进一步发展我对物理学的热情。我申请了 谢菲尔德大学,并于当年 9 月入学。我很失望没有可以与计算机科学相结合的学位,但我认为我可以在业余时间自学更多。在攻读学位期间,我开始为我的第一个开源项目:Gentoo Linux 做出贡献。这是一个令人兴奋的社区,我刚刚组装了一台基于 AMD64 的 PC,并想帮助让 चीजें 在这个新的 64 位架构上正常工作。我还想更多地了解可用于 Linux 的可视化和分析软件,特别是与科学相关的软件。我在科学和 amd64 团队上花费了相当多的时间,我学到了很多关于移植和打包的知识,以及满足依赖关系的复杂性以及许多软件包可能具有的所有构建选项。

我认为这是一个很棒的爱好,但当我临近物理学理学学士学位结束时,我决定我想从事研究事业。我喜欢发现新事物、与世界分享我的研究,并希望让世界比我发现它时更美好的想法。2003 年,我在谢菲尔德大学物理系的 纳米材料工程组 开始攻读博士学位,给我留下深刻印象的一件事是我们使用的软件有多么原始,特别是用于控制实验的控制和数据采集软件。在我的博士学位期间,我编写了一些软件来控制我们的一些实验室设备,并且还发现其他软件存在缺陷,但其源代码不可用。我还最终编写了一个 C++ 程序来替换一个 Excel 电子表格,该电子表格产生了有趣的分析结果,但非常难以修改。我们使用的几款软件是免费的,但没有源代码,或者非常昂贵且范围有限。

发现开源之道

在博士学位的最后一年,我决定我想超越打包,编写一些原创代码来解决我遇到的问题。我知道 Google Summer of Code 计划,与我的导师谈过,并同意如果被接受,我将申请并在夏天编写代码。我在 KDE 保护伞下找到了一个项目来开发一个 分子编辑器,这绝对是完美的,正是我希望做的——真正在 Linux 上编辑分子,可视化它们的结构,并将它们保存下来以供以后使用。我申请了,并欣喜若狂地被接受了——这对我来说是一个非常关键的时刻,我接触到了在业余时间做这件事的人,以及专业人士做这件事的人。我认为正是在这里我意识到,与进行科学研究相比,我更热衷于改进科学家收集、存储、搜索、分析和可视化数据的工具。这也是我开始了解科学出版物中的缺陷以及对某些对我来说没有多大意义的引文指标的依赖的时候。

在我的本科和研究生学习期间,我一直在经营一家个体咨询公司,该公司以使用 Linux 为当地企业设置电子邮件、防火墙、网络和其他服务为中心。它很成功,但确实不够有挑战性。在体验了 C++、OpenGL 和科学数据可视化之后,我决定我想做更多这方面的事情。碰巧的是,我的 Google Summer of Code 项目的导师之一正在建立一个新的 研究小组,他为我提供了匹兹堡大学化学系为期两年的博士后研究员职位。我也非常幸运地在这个时候更深入地沉浸在几个开源社区中;在那里期间,我会遇到其他人。

开源事业

几乎在搬到美国后,我就被飞回英国参加一个关于 达雷斯伯里实验室 计算化学工具的会议,在那里我遇到了一群更广泛的科学家,他们对使用计算化学代码的方法感兴趣。在我的博士后工作期间,我有机会继续我所做的一些开源工作,以及开发一些用于数据采集和一些模拟代码的新软件,这些代码着眼于缺陷在电子传输中的作用。我喜欢我的博士后工作,但在许多方面,它巩固了我的想法,即我需要找到一份可以与科学家合作以促进他们研究的职业,并且我对 开放获取开源、开放数据和开放标准 变得更加热情。最重要的是,我想成为解决方案的一部分,帮助科学研究使用软件来实现可重复性,并回到展示所有工作原理的状态。

我在一次开源会议上遇到了一位来自 Kitware 的合伙人,并提到我开始找工作。那时我才意识到 Kitware 所做的远不止 CMake,我同意申请职位。我在这里已经将近五年了,我一直在与世界上一些最优秀的研究人员一起开发开源软件。我很幸运能够担任多个项目的首席研究员,并在多次会议上发表演讲——包括 TEDxAlbany,而且我刚刚听说我将在今年晚些时候在 All Things Open 上发表演讲。

我非常喜欢我的角色,并且仍然花费大量时间编码。我喜欢参加会议,并希望继续改进可用于科学研究和工程的软件。近年来,我有机会将我的重点扩展到其他领域,以及通用渲染,从超级计算机上的高度并行分布式内存应用程序到移动电话,应有尽有。我从事一些非常成熟的项目,例如 Visualization ToolkitParaView,以及像 Open Chemistrytomviz 这样的新项目(我们本周刚刚在 显微镜和微分析会议 上发布了 tomviz)。如果我没有转到我目前的职位,我永远不会有机会在如此多不同的领域工作,我希望继续发挥作用并改进最先进的技术。

而且,我提到 Kitware 正在招聘吗?

查看开源职业周的完整文章集。

Marcus D. Hanwell
Marcus D. Hanwell | Marcus 领导 Open Chemistry 项目,为化学、生物信息学和材料科学研究开发开源工具。

2 条评论

一个很棒的故事!它恰恰表明了当您最不期望它们出现时,这样的机会是如何出现的。

感谢分享!

谢谢,虽然有些出乎意料的转折,但到目前为止,这非常有趣。当我能够与世界一流的研究所、实验室和大学的众多才华横溢的人才合作时,尤其令人鼓舞。一些非常具有挑战性的项目,在我热衷的领域具有广泛的影响。我仍然可以发表文章,Avogadro 论文在不到两年的时间内获得了 200 多次引用(至少根据 Google 学术搜索)。

回复 作者 ScottNesbitt

知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可。
© . All rights reserved.