在为开源贡献代码之前,我曾作为软件开发人员专业工作了九年。并非我不想参与。相反,我的自我怀疑和对拒绝的恐惧阻止了我做出贡献。
2006 年,我下载了 Bazaar 版本控制系统和一些 Ubuntu 代码,在本地进行了更改,然后放弃了我的项目。后来,大约在 2009 年,Hibernate 创建者 Gavin King 在我们当地的 Java 用户组做了一次演讲。我很有兴趣回馈这个项目,因为我们在工作中使用了它,但是在下载了 Hibernate 的源代码并查看了错误存储库后,我再次感到害怕。我担心对我提交的代码的回复会是这样的:“谁让这个代码糟糕的女人认为她应该向我们提交代码的?!?!” 然后我幻想一个被禁止的名单在开源社区 IRC 频道中传播,上面有我的名字。
然后有一天,当我在 GitHub 托管的框架上工作时,我偶然发现有人文档中最简单的错误:单词 "but" 应该输入为 "bug"。我不知道为什么,但我 fork 了该项目,修复了 markdown,并提交了一个 pull request。令我惊讶的是,维护者接受了它。
在那之后,我遇到了 NGrok 版本和 GitHub 文档之间的差异。我提交了另一个 pull request,这次维护者提出了问题。我想,“哦不,对抗!” 他们说旧文档对他们有效,所以我解释说可供下载的 NGrok 版本需要一个额外的命令行参数。一旦验证了这一点,我的另一个提交就被接受了。
我很高兴继续提交 pull request 并支持开源项目……直到我被拒绝。那是我犯的一个简单错误:我在 IDE 中保存代码时忘记关闭格式化程序,这更改了所有格式。我修复了 pull request 中明显的错误,并获得了另一次接受。
多年来,我对拒绝的恐惧阻止了我为开源代码做贡献。但是,一旦我认识到好处大于代码被拒绝的失望,我就失去了很多恐惧。我很高兴我这样做了。
拥抱拒绝的三个理由
- 您会学到一些东西: 确保代码库的整洁和存储库标准是存储库维护者的工作。不解决问题或只是临时性修复的代码应该被拒绝,但应该以提交者可以从错误中吸取教训的方式拒绝。存储库标准也是如此。虽然拒绝主要使存储库受益,但对您来说仍然是一次极好的学习经历。将其视为一个让您成长的地方,例如了解存储库的工作方式、学习您不常用的不同工具,或发现解决问题的不同方法。
- 您会变得更坚强: 拒绝将通过硬化您的外壳来帮助您。退后一步,反思代码被拒绝的原因。如果是由于愚蠢的错误,请认识到错误会发生,然后运用您的自我宽恕的力量并修复问题。是因为不了解代码库或代码标准而被拒绝吗?进行更改并记住它们以备将来提交。随着每次拒绝而成长和学习,并硬化那个外壳。
- 您会变得更具说服力: 拒绝的另一个好处是学会将“否”变成“是”。我最喜欢的故事之一是关于 Clayton Anderson,他一生中最想成为一名宇航员。他被 NASA 拒绝了 15 次,最后才被接受,然后他成为少数被选送太空的人之一。坚持不懈地朝着解决方案努力,然后努力将他们的否变成是。
扭转您的恐惧
正如一句经常 归功于马克·吐温 的名言所说,“我一生中有很多烦恼,但大多数都没有发生。” 当您认识到对拒绝的恐惧正在阻碍您时,您可以扭转这种恐惧。告诉自己您将做一些有风险的事情,每个月可能会被拒绝 X 次,然后按下按钮。据我所知,开源中没有秘密的“被禁止的贡献者名单”,而且我合作过的每个人都非常支持。
您可能没有注意到,但在整篇文章中,我一直小心地指明是您的代码被拒绝,因为我想让您意识到一件事:您没有被拒绝,只是您请求的更改。
就我而言,即使我靠编写代码为生,我也非常害怕被匿名社区拒绝,以至于我不愿意为他们免费做一些事情。认识到这种对拒绝的恐惧,摒弃它,然后无论如何提交那个 pull request!
Ann Addicks 将在 6 月 23 日至 24 日在亚特兰大举行的 We RISE 女性科技大会上举办题为 立即提交到开源 的研讨会。
6 条评论