我在大学学习数学。那时,通常情况下,数学系学生无法访问计算机实验室;纸和笔是我们完成工作所需的全部。但是为了我唯一必修的编程课,我获得了访问大学计算机实验室的权限。
它运行的是带有远程 X 终端的 SunOS(那是大约 1996 年)。我立刻爱上了 Unix。我爱上了命令行、X Windows、实用程序——所有的一切。
当课程结束后,我失去了访问权限。一位朋友告诉我一个叫做 Linux 的东西,你可以在自己的 PC 上安装 Unix 操作系统。那时,在你的 PC 上安装 Slackware 并非易事。
所以我把我的塔式 PC 拖到了一个“Linux 安装聚会”。不知何故,足够多的 Linux 极客设法让它工作了。图形在几年内还无法工作,因为手动编写 X 配置不是我有时间做的事情,但我不在乎——我在家有了一个 Unix!
从那时起,我只使用 Linux 桌面,并且由于社区的辛勤工作,Linux 安装不再需要 安装聚会。在某个时候,我从 Slackware 切换到 Debian,直到今天,Debian 仍然是我的首选发行版。
大学毕业后不久,为了一个统计工作,我开始对 SPSS 的局限性感到沮丧。那时我发现了我的第二个伟大的开源之爱:Python。我使用 Numeric(现代 NumPy 的前身)来计算 SPSS 缺乏的“按标签中位数”。那时,Python 社区很小。我指出了一些 Python 数学模块的问题。(我的原话是,“任何为 Python 编写 poly
模块的人既不懂数学也不懂 Python。”)Guido van Rossum 在电子邮件中回复了我三个字:“是我写的。”
好消息是我们摆脱了 poly
和 zmod
。社区中的每个人都同意这两个模块都写得很差,而且基本上没用。Guido 建议“Numeric”将是放置它的正确位置。NumPy 库再花了大约十年时间才添加了 polynomial 模块。
坏消息是,我花了几年时间才学会如何在开源社区中更好地互动。我在此过程中犯了错误,不小心伤害了屏幕另一边的人们。
善待他人很重要,尤其是当你无法与他们面对面交流时。如果你有机会与开源社区互动,请抓住它。你将学到很多关于编程的知识,甚至更多关于团队合作的知识。更重要的是,你将有机会为你关心的事情做出贡献。
但请听我的:第一次你建议更改时,请温和地并且带着一点谦逊。
4 条评论