为科技社区做贡献:开源如何帮你找到工作并摆脱技能悖论💼
你好呀!
TL;DR
在本文中,我们将了解开源如何改善您的职业生涯并帮助您摆脱技能悖论——即您获得工作所需的技能通常是在找到工作后获得的。
除此之外,我们还将了解如何开始为不同的开源项目做出贡献并加入Hacktoberfest的炒作行列,同时学习一些有关处理反馈和展示您的贡献的重要主题。
1. 简介
您是否是一名缺乏某些工作所需技能的初级开发者?但您觉得这些技能只能在工作中习得?
如果您的答案是“是”,那么您就陷入了我称之为“技能悖论”的境地——您需要技能才能找到工作,但这些技能只有在工作中才能获得。当您开始意识到某些技能无法仅靠兼职获得,因此您无法仅靠自学,而这些技能通常是工作岗位所必需的,这时您可能会感到压力和沮丧。
协作与团队合作、学习如何代码审查(给予和接收反馈)以及如何开始使用更大、更现有的代码库,这些都是你在从事一些小项目时无法学到的东西。当然,你可以在科技行业找工作时学习这些技能,但有时这些技能对于找工作来说是必不可少的,这会让你陷入一种需要某些技能才能找到工作的困境,而这些技能恰恰是你找到工作后才能获得的。
在这种情况下,仍然有一条出路:你可以为开源社区做贡献。除了你为整个生态系统创造的价值之外,这还能成为你职业生涯的绝佳卖点,而且,鉴于Hacktoberfest即将到来,这还是一个赢得 T 恤或植树的好机会!
现在,让我们开始教你如何实际做到这一点。
2. 开源贡献的第一步
开始之前
在本文中,我将以Wasp 框架为例,因为它汇集了优秀开源存储库所需的所有特征(它实际上是一个非常棒的项目,您可以通过单击下面的按钮轻松地为其加星 😀)。
目前,我是 Wasp 团队的一员,如果您能访问我们的代码库(无论是贡献代码还是测试产品),那将非常有帮助。我们在这方面做得非常努力,作为一名开发者,我很高兴看到 JS 生态系统中出现了一些新的东西。
2.1. 寻找项目
首先,我们需要选择一个项目。如果你是初学者,你可能会寻找具有以下几个特点的项目:
- 它正在被积极维护。
- 具有开源许可证,我们可以自由修改和使用。
- 它并不是非常大(因为这些项目在提交某些内容之前可能会有一些非常困难的事情需要完成)。
- 它必须有关于如何贡献的良好文档。
- 它必须具有明确描述的问题,以便您搜索某些内容(在您尚未找到问题本身的情况下)。
如果您在所有这些点上都匹配(或至少其中三个),那么您就可以开始了!
那么,让我告诉你如何找到所有这些特征:
- 它得到积极维护,并且 repo 的所有者会回复并关心这些问题!
- 就 Wasp 的 repo 而言,最后一次提交是在 13 小时前,所以这里肯定有生命迹象!
- 它并不是特别大 → 将一个夸张的例子与 Linux repo 进行比较(如果你检查一下,你会发现那里的所有拉取请求通常都需要很长时间才能合并,因为项目太大了)
- 最好有一份关于如何贡献的文档
- 在搜索文档时,我发现了一个名为CONTRIBUTING.md的文件(这是贡献指南的通用名称标准),当我们打开它时:
我们有一整套关于如何开始的文档!太棒了!
- 最好有明确的问题描述,以便你搜索一些东西
搜索问题时,我们可以轻松地看到它们都被标记了,这将对我们有很大帮助!
2.2. 搜索问题
太棒了!既然我们已经选择了贡献方向,那就让我们深入研究问题,寻找我们想做的事情吧!
在搜索问题时,标签会帮我们大忙,因为它会明确地标识出所有对新手有帮助的问题!如果您是新手,那么“好的第一个问题”和“文档”就是您搜索时的绝佳标签!
打开第一期,我们就能发现已经有人表示感兴趣了!既然已经有人表示感兴趣了,那就继续搜索下一期吧!
发现另一个问题——看起来好像没有人在处理下面的问题,所以我们可以自己解决!
顺便说一句,当你发现问题时,一定要发表评论并将自己设置为受让人,以便让其他人知道你将要承担手头的任务!
在这种情况下,GitHub 是一个很好的讨论平台,但有时很难找到作者。在这种情况下,请搜索链接或直接联系他们的方式(例如,对于 Wasp,他们有一个Discord服务器)。沟通对于理清事情至关重要,如果你不确定如何与人良好沟通,可以阅读这篇文章,开始掌握其中的窍门!
3. 开源项目贡献指南
3.1. 阅读指南并编写一些代码
现在我们已经选定了一个仓库、一个要处理的 issue,并且与作者沟通过了,是时候查看提交 Pull 请求的指南了(如果你不知道这意味着什么,它基本上就是一个将你的修改合并到代码库的请求,你也可以在这里查看一些更基本的 git 术语)。有时候,这些指南太难了,有时候甚至根本不存在(其实,这已经是一个很棒的第一个 issue 了),无论如何,查一下,看看能不能找到什么!
如果您想亲自阅读,可以在这里查看 Wasp 的贡献指南!阅读完毕后,就可以开始编写解决方案并使用它了。
由于本文的目的不是真正展示解决方案本身,因此我将跳过此部分并继续讨论过程本身。
3.2 处理代码审查和反馈
编写代码时(尤其是在开源项目中)遇到一些问题并不罕见。代码审查和反馈是帮助我们全面了解代码并提升代码质量的绝佳途径,所以让我们来看看如何正确地阅读和回复代码审查和反馈。
我们通常习惯于接受严厉的批评,所以当有人向你提出反馈时,我们通常会进入防御区。不幸的是,这些情况可能会让你误入歧途,因为通常情况下,把反馈当成礼物是件好事!有人花了时间写(或说)东西,是为了让你在努力实现的目标上做得更好。
这并不意味着所有反馈都是好的,也不意味着人们总是会给出很好的反馈。有时,人们可能会很苛刻。然而,随着你收到的反馈越来越多,你会逐渐意识到哪些反馈是真心实意地帮助你改进,哪些只是毫无根据的批评。至关重要的是,要敞开心扉接受建设性的反馈,不要把它们当成针对个人的。
让我们在这里看一个代码审查和反馈的示例:
这反馈太棒了!它表达了作者的观点,但又不失严谨,还给出了一些建议,确保作品完美!最佳答案很简单:
- 感谢您的反馈
- 在合理的情况下表达你的意见(同意或不同意)
- 努力吧!
展示贡献
完成所有这些工作后,是时候展示我们的贡献了!记录下来。GitHub (或其他 git 平台)、个人作品集网站、LinkedIn以及其他联系他人的渠道如今已经变得和简历一样重要,所以有一些统计数据和数据可以展示真的很棒:
- 你参与过哪些开源项目?试着把这想象成在写一个故事。首先,先介绍一下这个项目的初始背景以及它如何具有启发性。
- 你的贡献:然后,请提供你所做工作的背景、文档、代码以及你解决的总体问题。切记不要过多关注技术方面,因为阅读这篇文章的人可能并非技术人员。
- 影响有多大?谈谈它对生态系统的影响;影响可大可小,随你喜欢。永远不要忽视修改文档可能带来的影响(记住,对于我们程序员来说,文档是事实的来源,我们非常感谢文档中的修复)。
不要忘记利用这个机会与其他开发人员和社区进行交流,以便以后获得新的联系和更大的机会!
现在理论已经确定,让我们看几个例子来展示我的一些贡献:
案例 1 - 重大贡献
描述重大贡献的方式之一是这样的:
我为一个名为Coolify的项目做出了一些重大贡献,这是一个开源的 Heroku 替代方案。我重构了大部分 UI,使其在整个应用程序中更加简洁、一致。目前,已安装超过 9000 个实例,UI 会影响所有实例!您可以在这里查看我的贡献。
当然,您可以根据需要将这段文字写得长一点或短一点,输入更多关于如何做出贡献以及您具体做了什么的详细信息,但对于本文而言,这足以让您了解大致情况。
案例 2- 小额捐款
描述小额贡献的一种方法如下:
我对Sequelize的新文档做了一个小改动!我只是在浏览文档时发现了一个错误,它可能会导致其他人的调试会话出现问题。所以,我一发现就立即为他们提交了 PR!您可以在这里查看贡献!
结论
如果你还没有给Wasp 的代码库点赞,我推荐你去点赞!这是一个很棒的代码库,任何人都可以贡献代码,而且它还是一个很棒的全栈开发框架!
说了这么多,让我们来快速回顾一下如何做出贡献以及如何展示它们:
- 首先,找到一个仓库!如果你还没想好,有很多列表(比如这个)推荐了一些仓库供你参考。
- 搜索尚未提出的问题,然后您就可以对其进行处理,如果您是初学者,请检查文档和良好的第一个问题标签
- 评论并告知您将修复该问题 - 借此机会与其他开发人员交流并了解他们
- 代码,让你的 PR 得到审核,并在反馈后准备合并
- 合并并展示你的贡献,表明它们是你摆脱技能悖论的出路
上述步骤可以让你获得真正强大的软件工程经验(通常只有当你已经被公司录用后才会有)。这是一种在提升开源社区的同时获得认可的绝佳方式——回馈其他开发者,并帮助自己摆脱“技能悖论”!
你呢?你为开源做过贡献吗?请在下方评论区留言,让我们一起分享经验!
文章来源:https://dev.to/wasp/contributing-to-tech-communities-how-open-source-can-land-you-a-job-and-get-you-out-of-the-skill-paradox-4ejh