作者 | Mahdhi Rezvi

译者 | 苏本如,责编 | 伍杏玲

出品 | CSDN(ID:CSDNnews)

以下为译文:

根据Sayan Chowdhury的说法,以下是人们开始开源之旅时提出的常见问题:

  • 如何开始开源之旅?

  • 我知道x、y、z语言,我应该参与哪个项目?

  • 如何筛选出符合我技能水平的项目?

在这篇文章中,我将尝试以一种非常简洁的方式回答这些问题。我还将提供一些资源,可能会帮助到你开始第一个开源项目贡献。

什么是开源软件(OSS)

开源软件顾名思义,源代码是公开的,大家可以修改和添加。这些软件是遵守各种各样的许可方式发布的,如BSD、MIT等。阅读几行由优秀程序员编写的代码会自然地提高你的编码知识,并且能够帮助你了解优秀的编码实践。

开源JavaScript组件

你可以选择从对开源社区做一些小贡献(不用完整的项目)开始。比如说从小的、独立、公开可用的JavaScript组件开始。它们可以是简单的JS/NodeJS,也可以是使用React、VueJS、Angular或任何其他流行的库/框架构建的基于框架的组件。

Bit.dev是一个很受欢迎的组件中心,有超过34,000个开源JS组件。这是一个好的办法,从小的开源项目做起,逐渐增加你的开源贡献。它为组件的使用者提供了使用特定组件而不是整个库的自由。

无论何时你构建了一个值得共享的可重用组件(可能是作为私有项目的一部分),你都可以使用Bit在自己的组件集合中发布和为它提供文档。

在Bit.dev中探索共享的React组件

如何为开源软件做贡献?

很多人认为对于开源软件的贡献都是关于编码的。不仅如此,你还可以参与线上、线下推广开源项目活动,修复项目文档,编写或翻译文档等,这些都是为开源软件做贡献的方式,这些都可以帮助改进开源项目。

下图列出了一些可以为Mozilla开源项目做出贡献的途径。

图片来源:Mozilla.org

为什么要做贡献?

你要明白,为开源项目做贡献的可以提升你的技术能力。初学者可以从一些小事开始,比如修复Bug、发送pull请求、编写软件文档等参与。

它们还允许初学者学习编写“干净代码”,一种可读性和可维护性更强的代码。对于编程来说,有很多不同的标准可以遵循,团队不同,遵循的标准可能不同。当你在开源项目上工作时,应该遵守项目的规范。

参与开源贡献还有另一个好处是共同打造社区。你有机会成为由志同道合的人组成的社区的一部分。如果你是一个自由职业者,同事你又是个积极的社区贡献者,你很有可能被潜在的老板注意到。

在做贡献之前的注意事项

按照Maryna的说法,在做出贡献之前,你应该记住以下三件事。

  • 编程语言:你应该选择一种编程语言来查找开源项目,确保它符合你的技能和品味。

  • 项目类型:一旦你选择了你想使用的语言,你应该把注意力放到你想要做出贡献的项目类型上。Github的所有项目都按照Topic归类到不同的文件夹中。主题的一些例子有“安全”、“虚拟现实”、“文本编辑器”和“CSS预处理器”等。你可以滚动浏览这些类别,选择你感兴趣的主题。

  • 项目的规模 :你应该关注项目的规模,比如说,像VLC这样的项目不适合初学者,因为它非常庞大,当你开始时,建议不要用大型开源项目。请务必注意项目标签,尤其是那些被贴上了“仅限新手”、“初学者”、“容易”的项目标签。

我准备好了,接下来做什么?

你已经了解了对开源软件做贡献时的基本事项,接下来让我来帮助你开始使用一些资源,这些资源可以指导你在你最喜欢的编程语言上找到适合初学者的项目。

  • First Timers Only(仅限新手)网站

这个网站上有很多被认为是“适合新手”的开源项目,提供一些教程,帮助你熟悉GitHub上的贡献工作流程。它还提供了许多小的附加功能,这些功能将帮助你在开源贡献方面迈出满意的第一大步。

https://www.firsttimersonly.com/

我们在Twitter上询问人们,当他们第一次为开源项目做贡献时,他们的感受是什么。回答是:

是的,很可怕。但是很值得!

  • OpenSource.com

这个网站包含了一个“适合新手”的开源项目列表,你可以从中选择一个开始。它还提供了更多的资源,如OpenHatch,你可以在其中找到更多对初学者友好的项目。

https://opensource.com/life/16/1/6-beginner-open-source

  • Twitter Profiles

有许多推特机器人被设计用来转发带有诸如“仅限新手”和“适合新手”等标签的推文。这些机器人能很好地让这些推文定期出现在你的主页上,这样你就可以在浏览你的推特订阅源的同时决定要参与贡献的项目。

下面是两个常见的推特资源:Your First PR、first-timers-only

  • Github

Github有很多开源项目,目前有一些对初学者友好的问题可以解决的项目。它们要么按编程语言排序,要么按难度级别排序:

  • Awesome First PR Opportunities

  • Beginner Projects

一旦你选定了你想要做贡献的项目,那么就是开始行动的时候了。这里有两个资源:

  • GitHub项目新手贡献指南

  • 仅限新手

有几个组织举办的比赛能够激励你参与开源贡献,例如Hacktoberfest和Hacktitude。

  • Hacktoberfest是一个由DigitalOcean和DEV运营的长达一个月的开源软件庆典。Hacktoberfest对全球社区的所有人开放。一旦你完成了4份PR提交,你就会收到T恤和其他商品作为奖品。

相信看完文章,你有了一些准备了,希望未来你能为开源项目做贡献,为社区尽自己的一份力量。

原文链接:https://blog.bitsrc.io/useful-tips-for-a-successful-open-source-project-a505d05aad07

本文为 CSDN 翻译,转载请注明来源出处。

【END】

今日福利

遇见大咖

由 CSDN 全新专为技术人打造的高端对话栏目《大咖来了》来啦!

CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛携手京东集团技术副总裁、IEEE Fellow、京东人工智能研究院常务副院长、深度学习及语音和语言实验室负责人何晓冬,来也科技 CTO 胡一川,共话中国 AI 应用元年来了,开发者及企业的路径及发展方向!

戳链或点击阅读原文,直达报名:https://t.csdnimg.cn/uZfQ

如何开始第一个开源项目?相关推荐

  1. 【Python数据科学 | 11】应用实战:我的第一个开源项目-基金定投回测工具

    这是机器未来的第60篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/127712752 <Python数据科学快速入 ...

  2. 【音视频开发系列】一学就会,快速掌握音视频开发的第一个开源项目FFmpeg

    快速掌握音视频开发的第一个开源项目:FFmpeg 1.为什么要学FFmpeg 2.FFmpeg面向对象思想分析 3.FFmpeg各种组件剖析 视频讲解如下,点击观看: [音视频开发系列]一学就会,快速 ...

  3. Github 6月第一周开源项目Top6精选

    Github开源项目精选-6月第一周

  4. Linux嵌入式驱动管理调试平台 ------ 我的第一个开源项目

    - 首先得设置下github的dns 要不然会非常慢 修改 hosts ,github的下载速度会非常快 特别说明:github 速度不稳定所以开始使用 gitee gitee 仓库 https:// ...

  5. 我的第一个开源项目:Java爬虫爬取旧版正方教务系统课程表、成绩表

    Java爬虫爬取旧版正方教务系统课程表.成绩表 一.项目展示 1.正方教务系统 首页 2.爬虫系统 首页: 成绩查询: 课表查询: 二.项目实现 1.爬取思路描述 无论是成绩查询或课表查询亦或者其它的 ...

  6. 第一个开源项目---halcon图像显示控件(缩放/roi操作)

    终于下定决心将图像控件开源,欢迎下载及建议 地址 https://github.com/linyugang/VisionControl 项目依据halcon自带C#实例修改而成,相对于原生有以下优化 ...

  7. 我写了一个开源项目AlphabetPy

    项目地址 最近我在写一个命令行应用,首先我设计了一个Welcome界面,但是我思考如何在命令行中展示我的应用名字,就像这样 然而,我又不想自己去手打,怎么办呢?偶然发现了@starkwang的作品al ...

  8. 梁胜:做开源项目的贡献者没有意义 | 人物志

    云原生已无处不在,<云原生人物志>是CSDN重磅推出的系列原创采访,我们关注云原生中每一个技术人.公司的身影.知微见著,窥见云原生价值与趋势. 作者 | 宋 慧 出品 | CSDN(ID: ...

  9. 个人开源项目之快速检索算法

    第一个开源项目,熬夜到一点多:https://github.com/HouZhiHouJue/QucikMatchAndFullTextSearch 转载于:https://www.cnblogs.c ...

最新文章

  1. 【PHPExcel】生成xls文件并下载
  2. css3圆形轨迹动画
  3. 微信小程序电商实战-商品列表流式布局
  4. 全球及中国高速公路行业运营管理模式与经营效益分析报告2022版
  5. Django手写登录装饰器
  6. Elasticsearch如何关掉服务
  7. 使用mysqldump 导出sql数据
  8. NB-IoT(9)---云平台对接及使用
  9. 赫尔维茨矩阵与matlab,第3章时域分析法剖析.ppt
  10. 宝塔ssl验证域名失败_自建搜索引擎如何绑定域名?
  11. 计算机协会取消信息学奥赛,教育部2019年公示:信息学奥赛正式取消?
  12. java 库知乎_基于原生Java API爬取最新版本知乎百万用户数据
  13. 商圈研究方案-调研内容及方法
  14. Qualcomm工具的使用
  15. 联想Lenovo拯救者 Legion R9000P 2021H 触控板失灵
  16. tortoisegit 小乌龟的使用
  17. JS判断当前页面是在 QQ客户端/微信客户端/iOS浏览器/Android浏览器/PC客户端
  18. 对一款国家级内容过滤系统Dos安全缺陷分析
  19. 再招一万人,太猛了。。。
  20. 一种简单的图形旋转算法

热门文章

  1. codevs 1729 单词查找树
  2. SQLServer 2008 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的操作过时。...
  3. UVA 10596 Morning Walk
  4. [Git] GitHub 上使用 md 的几点问题
  5. embedding.assign(embedding_input)的解读
  6. python request 等待网页加载_用Python开发爬虫,看这篇文章就够了
  7. Visual Studio2017 配置OpenGL
  8. 双螺杆制冷压缩机行业调研报告 - 市场现状分析与发展前景预测
  9. 中国磷矿市场趋势报告、技术动态创新及市场预测
  10. 中国坚果脱壳机行业市场供需与战略研究报告