怎么加入一个开源项目

到底怎么参与开源项目

很多同学一上来很着急, 觉得自己水平还不够, 源码看不懂, 不知道怎么做开源贡献, 所以这个计划就一直搁置着, 干着急.

其实开源项目不仅仅是代码, 各种水平或者阶段的程序员都可以找到自己能够做贡献的地方. 比如:

当你发现项目的介绍中有错别字, 或者URL链接已经失效, 你就可以提交一个 Pull Requests 来修改这些错误.
一个你经常调用的包 (package), 如果发现它的测试用例不是很全面, 你可以专门为这个项目添加几个测试.
最近学习/工作中高频使用的一个开源框架, 你觉得它的例子写的不够好, 对新手不够友好, 这时候你就可以在文档中添加一些易读易理解的例子.
当你看到 Stack Overflow 或者一些开发者论坛上有人问某个开源项目怎么用的问题的时候, 你如果知道并回答了, 这也是贡献的过程.

上面举的一些例子都比较容易上手, 不管你是一个在校生还是一个编程小白, 只要你会写东西, 喜欢帮助别人, 乐于分享, 能够细心和站在用户使用的角度, 去优化这个开源项目, 总有很多地方你可以参与进来.

开源项目不只是代码, 你可以想像它其实是一个来自世界各地的志愿者组成的组织, 大家的共同目标是打造一个产品(比如一款桌面游戏, 一个数据可视化的项目等), 产品提供给任何有需要的个人或者公司使用.

在组织中需要有分工合作, 比如有人负责写文档, 规范的文档提供给外界使用, 就像一个说明书. 有人负责组织一些线下的 meetup, 有人负责整理邮件列表, 有人负责规划未来的工作要点, 有人负责写更多的使用 example, 让用户能够更快的获得他们想要的东西. 有的人负责写核心的代码等等.

所以一上来不要太着急去写代码, 先让自己沉到社区里面去, 看看大家讨论什么问题, github 的 issues 板块有大家提出来的一些bug或者存在的问题. 你可以先从一些边边角角的地方开始, 整理文档也是一种贡献, 时间慢慢积累, 熟悉项目后才有可能提供核心代码的贡献.

说了这么多, 让我们来看看开源项目的一些共同特点.

开源项目的通用结构

每个开源项目的人员组成和项目结构都是不一样的, 但是每个开源项目都会遵循一些通用的结构. 了解这些通用的结构可以让你在不同的开源项目中切换的更加游刃有余. 一个开源项目一般都会有以下的文件:

README: README.md 是一个项目总的介绍入口, 会在github的主页中展示, 一般会介绍项目是做什么的, 有什么功能, 如何启动和参与项目等.
LICENSE: 每个开源项目都必须有一个开源协议 open source license. 想了解更多可以看阮一峰老师的 如何选择开源许可证.
CONTRIBUTING: 对于想要参与开源项目的同学来说, 这个文档非常重要, 如何参与开源项目, 方式和途径有哪些这里会找到答案.
其他文件: 较为优秀和成熟的开源项目, 都会有tutorials, 使用示例, 详尽的文档等等, 来帮助新人更快的熟悉项目.

除了以上的文件, GitHub还提供一些板块方便用户跟踪项目的 Issues(问题/提升), Pull Requests(代码合并请求), Roadmap(蓝图), Wiki(百科) 等. 这些板块均可自行浏览和学习, 较为大型的项目还会提供mailing lists(邮件列表), 比如 python 社区就有很多不同的邮件列表, 有的专门是开发专用的邮箱订阅, 有些专门用来讨论一般性的问题.

 

国外的项目还会配有 Slack (即时通讯工具) 方便大家讨论, 国内的开源项目可以在 README.md 文件上找到联系人的微信进入群聊或者是钉钉.

以上的各种文档和工具都是为了让大家更快速了解项目, 更方便讨论问题, 提供更高效的交流合作.

怎么找到你想看的项目

GitHub 上面的项目琳琅满目, 怎么找到适合自己入手的项目呢?

1. 选择一种语言

首先从选择你熟悉的语言开始, 比如Python, Java, JavaScript等. 再去找该语言下的项目. 最好是选择受众比较多的项目, 这样社区比较活跃, 你提的问题一两天内就有人回复. 怎么看社区的活跃度呢? 一方面可以看这个项目的Watch, Star, Fork数量.

其次可以点击项目主页的Insights这个tab查看过去一周, 过去一个月的代码合并次数以及参与的人数来看看活不活跃(社区还活着吗)

2. 找到合适且感兴趣的项目

可以到 GitHub Explore 随便逛逛, 看不同的 GitHub Topics, GitHub Trending等.
HelloGitHub 这个项目每个月出一刊, 有点类似一个杂志, 在这里也许能够找到你感兴趣的内容
Follow 一些 GitHub 上面的大神. 看看他们关注什么, 他们做了什么. 可以先从一个顶尖的项目切入, 找到项目贡献最频繁的人, 关注他们.
找到感兴趣的项目记得 star 和 watch(订阅) 这个项目, 定时收到邮件通知, 就是开始关注和了解.

3. 筛选适合新手解决的issue

GitHub 有标签的功能, 可以对issues进行分类, 你可以通过筛选, 找到适合新手, 简单的问题, 看看自己能不能理解并解决这类问题. 具体如何筛选可以看下面这张图. 找到 good first issue , beginner , easy 这些标签, 适合新手上路的就对啦!

好啦艾瑞巴蒂, 讲了这么多, 小豆作为过来人, 最后还有一些小技巧可以分享给大家~

不要走马观花

如果一直只是浮在表面的看, 不去关注, 不去行动, 就会发现自己很难钻进一个项目里. 不要对自己要求很高, 也不要追求完美, 先找到一个自己觉得还可以的项目, 未来几个月就啃这么一个项目. 如果你能够把一个啃下来, 后续切换到其他项目是非常快速的.

长期坚持

也许短期内不会看到什么进步, 也许很长一段时间内自己在项目中仍然是个小透明. 给自己个半年时间, 长期去做. 不要因为一时半会儿没有进步, 项目也无法写到自己的简历里就灰心丧气, 要有延迟满足的能力.

放下焦虑, 平常心看待

一路上你会发现很多大牛, 也许你会发现自己差的东西太多了, 没有关系, 从今天开始捡起来, 今天开始行动起来. 种一棵树最好的时间是十年前, 其次就是今天啦.

如果你有更多的问题, 可以私我了解和咨询~

圈主 管理员

热门评论
:
该帖子评论已关闭
图片审查中...
编辑答案: 我的回答: 最多上传一张图片和一个附件
x
x
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

Warning: Invalid argument supplied for foreach() in /www/wwwroot/www.tarascam.com/wp-content/plugins/b2-mission/index.php on line 37