在校生如何在开源社区中成长?
作者:卡卷网发布时间:2025-01-17 00:32浏览数量:79次评论数量:0次
这个问题我来回答再合适不过了。
说句实话,自从进了开源的坑,特别后悔。
后悔没早点进来。
毕竟,大学里打游戏浪费了那么多的时间,要是那时候就开始刷社区,我估计现在的工资还能翻倍。
参与开源社区是一个完全没有门槛的事情——不看学历不看出身不看工作经验,只要一根网线就可以为这个星球上最顶级的代码仓库添砖加瓦,是不是想想还有点小激动呢?
那么,要怎么做呢?我们把这个问题分解成这样几步,包教包会,随治随走。
第一步:注册一个GitHub账号
要是这一步不会的话……那还是别往下看了。
第二步:挑一个入的了你的法眼的开源项目。
这一步很重要。你需要找一个活跃、知名、有价值、纯Java实现的开源项目。这是一个非常重要、不涉及任何技术细节的过程,你需要一些时间仔细浏览各大项目,了解它们的基本信息。不怕用力过猛的话这里有一个GitHub星星排行榜,尽管大胆正面刚。如果胆子比较小,就挑几百几千颗星的项目。它决定了你接下来几个月的工作重点,以及未来的发展方向。如果挑选得当,努力几年,成为领域专家的话,直接被该领域的公司高薪挖走也说不定。我几年前是在Groovy社区刷经验的,供参考。
活跃的意思是说,当你翻它的issue列表的时候,能够看到基本上每个issue都有人回复。每个PR都能得到快速响应。反例:阿里巴巴的诸多项目,开源了就不管了,issue没人回,PR没人理,跟骗炮的渣男有什么区别:
alibaba/fastjson第三步:怼它。
这一步简单的就好像在说“把大象关冰箱一样“,实际情况复杂千万倍,足以把你劝退。
在一开始,你可能完全摸不到开源项目的门路,没关系,先从修typo开始。无数人的开源生涯都是从修typo开始的,我也不例外。这个过程只是为了让你熟悉开源项目的协作流程。你看这是我给现在的东家修的第一个bug,啥技术含量也没有。
如果你不了解协作流程,也就是说,你不知道怎么得到上图这个界面?看这个免费课程,我录了手把手教你提交PR的过程,最关键的是,有真实仓库让你练手!
前置知识 - 使用Git/GitHub/Markdown进行项目协作 - 写代码啦!那你马上就会问了,怎么找到typo呢?这里有一个工具让你方便地找typo蹭PR?啥,你说你不会用?学啊,谁一生下来就什么都会的?
jsoref/spelling搞笑的是这哥们拿着这个工具到处蹭PR,后来被人骂了:
强调一下,这个过程只是为了让你熟悉协作流程(比如提交PR,讨论,Sync a fork,Squash commits之类),千万别本末倒置爱上修typo的过程。
了解了协作流程之后,就可以开始主动找bug修了。啥,你说你不会修bug?那要你何用?开源社区最重要的能力就是修bug啊。你一定要从开源社区协作中,得到“无论什么bug,来了我就会修”的能力。要达到这个目的,一定要先学会使用调试器:
初级 - IDEA/Maven/调试器的基本使用 - 写代码啦!挑bug修的过程也是很讲究的。除非你真的是专家,否则请挨个浏览项目的issue tracker,专门找软柿子bug修,不要碰难题。原则是:
- 一定要有可以重现的例子。不能重现的bug别说你,项目作者都不一定能解决。
- bug要“看上去比较重要”,也就是说,你修完之后不需要费劲向项目作者解释其必要性。
当然,如果你真是神级人物,来者不拒,什么bug都能修,那请随意挑选bug。比如说下面这哥们之前跟我一个组,后来调去隔壁组做企业级的Maven支持,就是这个:
这哥们做Maven支持的时候不停地发现并解决Maven的bug:
所以你看,Gradle对Maven才是真爱啊。
修bug的过程没办法描述,因为bug千变万化。有兴趣的话可以观看我直播修的两个bug,一个是给FastJson项目,一个是给Maven项目:
现场直播给阿里巴巴Fastjson修bug_哔哩哔哩 (゜-゜)つロ 干杯~-bilibilihttps://www.bilibili.com/video/av59544269?from=search&seid=5080318435633366133修过一些bug之后,你的编码水平应该有了质的提升,现在可以尝试挑战更高难度的开源协作方式了:造轮子。
造轮子有两种:帮别人造轮子和自己造轮子。
帮别人造轮子的意思是说,你翻著名开源项目的issue tracker,从里面挑选feature request并实现之。换句话说,就是有人想要一个功能但是该项目还没提供,你就帮他们实现掉。这个过程可能会被对方直接拒绝,所以请小心行事。当然,如果你的实现最终被接受,这将是更有价值、更能给你简历增光添彩的经历。
另一种方式就是自己造轮子,针对某个细分领域实现之前还没人实现过的功能。注意,在开始之前千万注意看看有没有别人已经造好了。自己造轮子是最锻炼设计实现能力的事情,没有之一。
如果你担心找不到合适的bug或者feature request,think twice。你真的有仔细翻阅过他们的issue tracker,挨个阅读其中的讨论么?没把前十页仔细的看过一遍,不要跟我说找不到。
好了,还有疑问,请阅读我的这篇文章:
blindpirate:跳出弱鸡循环2免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎