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

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

Opensource.com

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

早年

当我上学的时候,计算机才刚刚开始展现其潜力,很少有人能上网。我记得我曾央求妈妈给我买一台 ZX Spectrum,并用它编写基本代码在屏幕上绘图。从那时起我就着迷了,但当时我真的不知道编程电脑是否能成为职业,而且如果我想从事科学研究,这是否有用也完全不清楚。当我换到速度更快的 Amiga 500 Plus 后,我继续享受编程的乐趣,并喜欢编写模拟程序来理解数学和物理现象。

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

重返校园


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

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

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

发现开源之道

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

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

开源事业

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

我在一次开源会议上遇到了 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 Scholar)。

回复 ScottNesbitt

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