2018 年年中,我开始通过阅读教科书和观看在线教程学习 Python。我完全没有计算机科学背景,但它看起来很有趣,所以我继续尝试。在某个时候,我决定想攻读统计学硕士学位,所以我开始从事更多基于统计的编程。那时我发现了 SciPy。我对开源软件的想法着迷(现在依然如此),它完全免费使用,并由一群勤奋的程序员社区支持。
在疫情期间,我有大量空闲时间,我给自己定下了一个目标,就是为 Python 库做出贡献。我的第一个贡献实际上是为一个名为 首次贡献 的项目,它引导你完成一个非常基本的提交和推送到 GitHub 的操作。这让我更有信心,所以我决定解决一个 SciPy 问题。这并不容易。我观看了几个关于如何为开源库做出贡献的视频和指南,但在此过程中多次卡住了!我不得不承认,尝试对这个庞大的库进行更改让我感觉自己很无能,但维护者和社区却不能更友善或更支持了。这确实是开源的魔力。我感到困惑和迷茫,但(主要是志愿者)社区非常棒。
最终,我成功地将一个非常小的提交合并到 SciPy 的主分支中(你可以在 这里 查看)。尽管最多只有几行代码,但这对我这个程序员来说是一个巨大的里程碑。令我惊讶的是,在 2021 年初,我的 GitHub 个人资料上弹出了一个小徽章,上面写着“火星 2020 直升机贡献者”。我很困惑。我不记得做过与直升机相关的工作,更不用说在火星上飞行的直升机了。我仍然记得当我读到我为 NASA 的火星 2020 任务中使用的库做出了贡献时,我感到一阵寒意,该任务包括 Ingenuity 机器人直升机。GitHub 发布了一篇 文章,解释了大约 12,000 人收到了一个徽章,表明他们对该任务中使用的开源库做出了贡献!请记住,我做出了一个绝对微不足道的贡献,但我非常自豪能以这种方式得到认可。
更奇怪的是,今年夏天,我在 NASA 喷气推进实验室 (JPL) 实习,该实验室建造了 Ingenuity 直升机,并仍在与其他机器人太空探索任务一起飞行。从疫情期间在我的客厅里学习 Python 到在 JPL 的日常工作中使用 SciPy,这种循环真是太超现实了。在这里,我的工作包括编写统计模拟,以估计任务期间系统故障的概率。如果你正在阅读本文并且有兴趣做出贡献,请知道你对开源库的贡献,无论多么微不足道,都可能产生比你想象的更大的影响。这种协作对于推动科学的边界至关重要。如果你想做出贡献,请随时与我 (@WillTirone) 或 SciPy 社区的其他任何人联系,我们可以帮助你走上正确的道路。最后,我要感谢 SciPy 的维护者,感谢他们在我在学习为该库做出贡献的基础知识时给予我无休止的支持和帮助。