介绍
无论你是开发新手还是有几年经验,开源开发可能会让你感到害怕。我知道当我刚开始作为网页开发者时,对我而言确实如此。
但是,在我克服了最初阻碍我尝试为其他项目贡献的恐惧之后,我发现开源开发非常有价值和充实。事实上,我个人认为,参与开源项目(如构建自己的包,或为他人项目做出贡献)是我拥有的最好的学习工具之一。我觉得,每当我向一个项目提交一个pull request,我的开发技能就会有所提升。
如果你感兴趣,我实际上写了一篇关于《我从构建自己的Laravel包中学到的5个经验教训》的文章,这篇文章更深入地介绍了我从构建Laravel Exchange Rates中获得的主要见解。
无特定顺序,以下是贡献开源项目的8个益处:
1. 实践中学习
开源项目是学习的好方法。
在学习过程中,我们很容易陷入“这是我已知的”的思维定势。面对问题时,你可能会说:“我不知道如何解决这问题。”但在开源项目中贡献力量时,你能够接触到的不仅仅是之前其他贡献者解决相似问题时的知识,更重要的是,你能够从他们的经验中吸取养分。与其陷入“我不知道如何”的困境,不如让你的大脑转换成“我该如何运用我对这片代码/系统等地块的了解,结合其他所学,来解决问题?”这样一来,一切问题就开始变得有迹可循了!
为开源项目贡献力量是提升你的开发技能的一个优秀的替代方案,而不仅仅是阅读博客或观看视频。
2. 学习从其他开发者的视角观察
参与开源项目是学习如何从不同角度看待问题最佳方法之一。
当你参与开源项目时,你可能会和持自己独特方法的开发者进行合作,这能帮助你以全新角度看待问题。
你可能发现你的团队成员不会用你的方式来处理问题——这没关系!你可以从他们的方法中学习,同时也可以将自己的知识带给他们。同样地,这也是你向参与项目其他开发者分享知识的好方法。
3. 学会新的技能、工具和技术
参与开源项目是学习新技术的优秀方式。例如,你可能发现一些之前未曾了解的编程语言或框架。
甚至你可能发现一种全新的工作方式,这会改变你对编程的态度!
例如,在我为James Brooks的祠堂.contrib到之前,我从未使用过Nuxt。但通过提交几个小的PR(Pull Requests),我有机会深入探索Nuxt,并对其工作原理有了深入理解。
4. 建立信心
在我看来,贡献开源项目的最大益处之一是,它可以帮助你建立自信,尤其是如果你缺少自尊心,或者认为自己不够好。
在项目开发过程中,你可以容易地看到自己取得的进步,理解自己的工作对其他人造成的影响,这将帮助你提高自信。你也可以看到其他人正在使用你的代码,所以你知道它在世界上有价值,所有那些辛勤努力都没有白费。当你看到有人在欣赏你做的事情时,这也会是一种极大的满足感和认可,尤其是在那些在键盘前连续加班的深夜里!
5. 建立声誉
为开源项目贡献力量可以帮助你建立起自己的声誉、简历,甚至个人品牌。
首先,为开源项目贡献力量可以让你展示自己的技能。你可以在GitHub上分享代码,向潜在雇主展示你有成为一名优秀开发者或设计师所需的技能。如果你正在找工作,这是一种展示自己是社区活跃成员并愿意与他人分享知识的绝佳方式。
其次,为开源项目贡献力量可以帮助提升简历。对我们大多数人来说,我们在工作中做的大部分项目都是封闭源项目,所以我们通常不能展示代码。因此,通过参与开源项目,你可以在一个平台(通常是GitHub)上展示自己的开发者技能。事实上,这就是我通常作为自由职业者找到新项目的途径。我通常是因为有人在网络中发现了我的某个包或贡献而联系到我。
这也可以在您申请工作但在还没有正式工作经验时有所帮助;比如,如果您正在申请您的第一个网站开发工作。这可以帮助证明您对在项目中与代码合作有理解!
为开源项目做贡献也有助于建立您的个人品牌和在线信誉。如果人们看到您在这一年中(甚至只是一年)为不同的项目贡献了代码或文档,那么他们就会看到您对帮助他人实现自己的职业目标是认真的!
6. 学习理解反馈
当您为开源项目做贡献时,您正在回馈整个社区。这不仅有助于您磨练技巧,还使您能够更好地接受反馈。您将能够看到什么对其他人有效,什么无效,并利用这些信息作为改进自己工作的基础。
如果您希望在这个领域取得任何成功,您还需要能够优雅地处理建设性批评。如果有人指出您代码中的问题或可以改进的地方,不要只是愤怒或受伤地离开——接受他们的建议,确保它适用于所有人!
最重要的是:不要对个人攻击做出个人反应!当有人贬低您辛勤工作的成果(甚至是一些他们从未贡献过的东西)时,这很容易,但请记住,这不是针对您的个人攻击——这只是别人的一种观点!
7. 结识新朋友
为开源项目做贡献的巨大好处是您可以将与其他开发人员建立联系。这意味着您会遇到新的人,结交朋友,与其他开发人员在项目上合作,找到导师,并有机会互相学习。
除了结识新朋友和建立联系外,许多人喜欢做贡献,因为他们感觉自己是在回馈社区。毕竟,编程社区在很大程度上依赖于其成员的支持。当有人通过参与开源项目(它本身是免费的)来回馈时,他们正在为这个周期的无限期延续尽自己的力量。
就我个人而言,我喜欢知道我的某些软件包或对其他项目的贡献已经被全世界商用系统所使用。开源开发给了我一个机会,与那些我以前从未机会接触过的人交流。
8. 提高沟通技巧
大多数开源项目都是协作努力。您将与其他人合作,有时甚至可能上百人。能够有效地沟通是这个过程中的关键部分。
您可以学习如何向他人解释事物:如果您曾经试图向一个非技术性的人解释某个技术性问题,您知道这有多困难。您解释事物清晰简洁的技巧越熟练,在开源项目中与人沟通就会越容易。
您可以学习如何寻求帮助:任何开发人员或项目经理都会遇到困难,需要来自其他贡献者的额外帮助——无论是工作过多还是时间不足,寻求帮助仍然是困难的!通过定期贡献并积极与其他贡献者互动,您将更好地了解何时有人可能有时间或资源可以为您的项目提供帮助。这直接引出了我们的下一个观点...
您可以学习如何提供反馈:在任何社区中都有许多种类的反馈和等级,从简单的请求(“我希望这里有一个选项”)一直到最后提供关于代码质量或架构决策的建设性批评(“你的方法不能扩展”)。有些人不想要任何形式的反馈,但在我看来,提供和接收反馈通常是提高沟通技巧的绝佳方式。
结论
希望这篇文章能够强调作为开发者为开源项目做出贡献的一些好处。
如果您喜欢阅读这篇文章,我非常愿意听听您的想法。同样,如果您有任何反馈以改进未来的文章,我也非常愿意听听。
如果您想每次我发布新文章时都得到更新,请随时订阅我的通讯。
继续构建精彩的项目!🚀
joedixon, driesvints, aliwesome, boyfinstar, ash-jc-allen 喜欢这篇文章