拥抱拒绝的 3 大理由

不要让恐惧阻止您为开源项目做贡献。
505 位读者喜欢这篇文章。
The Opensource.com preview for January

Thomas Hawk 在 Flickr 上发布。CC BY-NC 2.0

在为开源贡献代码之前,我曾作为软件开发人员专业工作了九年。并非我不想参与。相反,我的自我怀疑和对拒绝的恐惧阻止了我做出贡献。

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 中明显的错误,并获得了另一次接受。

多年来,我对拒绝的恐惧阻止了我为开源代码做贡献。但是,一旦我认识到好处大于代码被拒绝的失望,我就失去了很多恐惧。我很高兴我这样做了。

拥抱拒绝的三个理由

  1. 您会学到一些东西: 确保代码库的整洁和存储库标准是存储库维护者的工作。不解决问题或只是临时性修复的代码应该被拒绝,但应该以提交者可以从错误中吸取教训的方式拒绝。存储库标准也是如此。虽然拒绝主要使存储库受益,但对您来说仍然是一次极好的学习经历。将其视为一个让您成长的地方,例如了解存储库的工作方式、学习您不常用的不同工具,或发现解决问题的不同方法。
  2. 您会变得更坚强: 拒绝将通过硬化您的外壳来帮助您。退后一步,反思代码被拒绝的原因。如果是由于愚蠢的错误,请认识到错误会发生,然后运用您的自我宽恕的力量并修复问题。是因为不了解代码库或代码标准而被拒绝吗?进行更改并记住它们以备将来提交。随着每次拒绝而成长和学习,并硬化那个外壳。
  3. 您会变得更具说服力: 拒绝的另一个好处是学会将“否”变成“是”。我最喜欢的故事之一是关于 Clayton Anderson,他一生中最想成为一名宇航员。他被 NASA 拒绝了 15 次,最后才被接受,然后他成为少数被选送太空的人之一。坚持不懈地朝着解决方案努力,然后努力将他们的否变成是。

扭转您的恐惧

正如一句经常 归功于马克·吐温 的名言所说,“我一生中有很多烦恼,但大多数都没有发生。” 当您认识到对拒绝的恐惧正在阻碍您时,您可以扭转这种恐惧。告诉自己您将做一些有风险的事情,每个月可能会被拒绝 X 次,然后按下按钮。据我所知,开源中没有秘密的“被禁止的贡献者名单”,而且我合作过的每个人都非常支持。

您可能没有注意到,但在整篇文章中,我一直小心地指明是您的代码被拒绝,因为我想让您意识到一件事:没有被拒绝,只是您请求的更改

就我而言,即使我靠编写代码为生,我也非常害怕被匿名社区拒绝,以至于我不愿意为他们免费做一些事情。认识到这种对拒绝的恐惧,摒弃它,然后无论如何提交那个 pull request!

Ann Addicks 将在 6 月 23 日至 24 日在亚特兰大举行的 We RISE 女性科技大会上举办题为 立即提交到开源 的研讨会。

User profile image.
Ann Addicks 拥有 10 年的软件开发经验,使用过包括 PHP、Python、Jython、Java、JavaScript 和 Golang 在内的多种语言。她喜欢教她的孩子们编程,特别是用手指数二进制。她欢迎您在 Code Fights 上挑战她!

6 条评论

很棒的文章。虽然我从未提交过代码,但我也在其他方面经历过对拒绝的恐惧。一位朋友曾经说过,“不要鄙视负面”。我已经开始相信这个公理,因为那些负面因素指引了我需要前进的方向。

感谢这篇文章;我非常同意。我做过的最好的事情就是下定决心积极寻求拒绝。一旦我开始这样做,我对特定结果的期望降低了,我的信心增强了,而且我最终经常成功而不是被拒绝。

说得好!我真希望在我成长的过程中有一位像您这样态度积极的导师来指导我走同样的方向。

回复 ,作者:sethkenlon

拥抱拒绝的第四个理由

- 有些项目做事方式不同。仅仅因为您的代码格式正确,并且 *您* 认为这是一个很棒的新功能,它可能不符合项目维护者期望的愿景和路线图。

这并不意味着您没有一个好主意,这只是意味着该特定项目暂时不对此感兴趣 - 这没关系。这就是开源的全部价值,不同的社区可以致力于不同的工作。

另外,这篇文章的反面是:如果您是开源维护者,请不要担心拒绝提交 - 但请礼貌地拒绝!用类似“RTFM!”这样的评论拒绝提交不仅会赶走那位贡献者,还会赶走其他人。花 2 分钟写一个礼貌的理由说明您为什么要拒绝提交,这是一个欢迎新贡献的项目的标志。

感谢分享!

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.