当前位置:首页 > 每日看点 > 正文内容

在校生如何在开源社区中成长?

卡卷网7个月前 (01-17)每日看点130

这个问题我来回答再合适不过了。

说句实话,自从进了开源的坑,特别后悔。

后悔没早点进来。

毕竟,大学里打游戏浪费了那么多的时间,要是那时候就开始刷社区,我估计现在的工资还能翻倍。

参与开源社区是一个完全没有门槛的事情——不看学历不看出身不看工作经验,只要一根网线就可以为这个星球上最顶级的代码仓库添砖加瓦,是不是想想还有点小激动呢?

那么,要怎么做呢?我们把这个问题分解成这样几步,包教包会,随治随走。

第一步:注册一个GitHub账号

要是这一步不会的话……那还是别往下看了。

第二步:挑一个入的了你的法眼的开源项目。

这一步很重要。你需要找一个活跃、知名、有价值、纯Java实现的开源项目。这是一个非常重要、不涉及任何技术细节的过程,你需要一些时间仔细浏览各大项目,了解它们的基本信息。不怕用力过猛的话这里有一个GitHub星星排行榜,尽管大胆正面刚。如果胆子比较小,就挑几百几千颗星的项目。它决定了你接下来几个月的工作重点,以及未来的发展方向。如果挑选得当,努力几年,成为领域专家的话,直接被该领域的公司高薪挖走也说不定。我几年前是在Groovy社区刷经验的,供参考。

活跃的意思是说,当你翻它的issue列表的时候,能够看到基本上每个issue都有人回复。每个PR都能得到快速响应。反例:阿里巴巴的诸多项目,开源了就不管了,issue没人回,PR没人理,跟骗炮的渣男有什么区别:

alibaba/fastjson

第三步:怼它。

这一步简单的就好像在说“把大象关冰箱一样“,实际情况复杂千万倍,足以把你劝退。

在一开始,你可能完全摸不到开源项目的门路,没关系,先从修typo开始。无数人的开源生涯都是从修typo开始的,我也不例外。这个过程只是为了让你熟悉开源项目的协作流程。你看这是我给现在的东家修的第一个bug,啥技术含量也没有。

在校生如何在开源社区中成长?  第1张

我给Gradle提交的第一个PR,有技术含量么?没有,你也可以。

如果你不了解协作流程,也就是说,你不知道怎么得到上图这个界面?看这个免费课程,我录了手把手教你提交PR的过程,最关键的是,有真实仓库让你练手!

前置知识 - 使用Git/GitHub/Markdown进行项目协作 - 写代码啦!

那你马上就会问了,怎么找到typo呢?这里有一个工具让你方便地找typo蹭PR?啥,你说你不会用?学啊,谁一生下来就什么都会的?

jsoref/spelling

搞笑的是这哥们拿着这个工具到处蹭PR,后来被人骂了:

在校生如何在开源社区中成长?  第2张

“你特么能不能不要老骚扰那些没主动让你检查拼写的人?”

强调一下,这个过程只是为了让你熟悉协作流程(比如提交PR,讨论,Sync a fork,Squash commits之类),千万别本末倒置爱上修typo的过程。

了解了协作流程之后,就可以开始主动找bug修了。啥,你说你不会修bug?那要你何用?开源社区最重要的能力就是修bug啊。你一定要从开源社区协作中,得到“无论什么bug,来了我就会修”的能力。要达到这个目的,一定要先学会使用调试器:

初级 - IDEA/Maven/调试器的基本使用 - 写代码啦!

挑bug修的过程也是很讲究的。除非你真的是专家,否则请挨个浏览项目的issue tracker,专门找软柿子bug修,不要碰难题。原则是:

  • 一定要有可以重现的例子。不能重现的bug别说你,项目作者都不一定能解决。
  • bug要“看上去比较重要”,也就是说,你修完之后不需要费劲向项目作者解释其必要性。

当然,如果你真是神级人物,来者不拒,什么bug都能修,那请随意挑选bug。比如说下面这哥们之前跟我一个组,后来调去隔壁组做企业级的Maven支持,就是这个:

在校生如何在开源社区中成长?  第3张

顺便打个广告,我们在做企业级的Maven构建加速业务

这哥们做Maven支持的时候不停地发现并解决Maven的bug:

在校生如何在开源社区中成长?  第4张

所以你看,Gradle对Maven才是真爱啊。

修bug的过程没办法描述,因为bug千变万化。有兴趣的话可以观看我直播修的两个bug,一个是给FastJson项目,一个是给Maven项目:

现场直播给阿里巴巴Fastjson修bug_哔哩哔哩 (゜-゜)つロ 干杯~-bilibilibilibili.com/video/av59

修过一些bug之后,你的编码水平应该有了质的提升,现在可以尝试挑战更高难度的开源协作方式了:造轮子。

造轮子有两种:帮别人造轮子和自己造轮子。

帮别人造轮子的意思是说,你翻著名开源项目的issue tracker,从里面挑选feature request并实现之。换句话说,就是有人想要一个功能但是该项目还没提供,你就帮他们实现掉。这个过程可能会被对方直接拒绝,所以请小心行事。当然,如果你的实现最终被接受,这将是更有价值、更能给你简历增光添彩的经历。

另一种方式就是自己造轮子,针对某个细分领域实现之前还没人实现过的功能。注意,在开始之前千万注意看看有没有别人已经造好了。自己造轮子是最锻炼设计实现能力的事情,没有之一。

如果你担心找不到合适的bug或者feature request,think twice。你真的有仔细翻阅过他们的issue tracker,挨个阅读其中的讨论么?没把前十页仔细的看过一遍,不要跟我说找不到。

好了,还有疑问,请阅读我的这篇文章:

blindpirate:跳出弱鸡循环2

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/9649.html

分享给朋友:

相关文章

创业:集思广益并完善您的商业理念

用史蒂夫乔布斯的话来说,“做伟大工作的唯一方法就是热爱你所做的事情。开始自己的事业是迈向自己喜欢的工作的一步。但是,从形成想法到创建商业网站,在您深入研究之前,需要考虑几个基本步骤和问题:您要解决什么问题?您的目标受众是谁?您的产品或服务与...

每天5点就下班了,闲着也是闲着,有哪些副业可以推荐?

每天5点就下班了,闲着也是闲着,有哪些副业可以推荐?

今天整理了36个搞钱APP可以先接触学习看看,然后选定一个感兴趣的方向去精进要知道机会不是一下子来临的,而一定是你前期做了很多准备每天进步一点点,就像滚雪球一样希望所以女生,能够在2024年提升自己,立下一个新的搞钱Flag吧实用APP安利...

PS有哪些实用小技巧,小白也能一学就会?

PS有哪些实用小技巧,小白也能一学就会?

不看后悔系列!本篇分享25个PS实用的技巧!不能保证每个都能让你惊艳,但是却是我用心写出来的,希望对你有帮助。另外我的知乎也写了接近200篇PS的技巧,超级合集分享!我目前正在带一个PS/Ai的软件训练营,两个多月搞定两大软件的学习详细的内...

为什么说不懂电脑的不要碰AMD?

作为一个资深垃圾佬,说缺点前,先说优点吧AMD CPU(后续简称AU)的优点:处理器对比Intel,三级缓存更大,最明显的感知就是,网游帧数更高(5900X,7900X之类高端型号都是双CCX共享大缓存,反而不如次一点的CPU帧数更高);相...

闲鱼上为什么会有人问都不问直接下单?

我去年卖一个荣耀90,挂的2200,最终成交2137.5元。对方是一个高高壮壮的西北口音,要求的自取。大概我吃过午饭,约了旁边的商场,那里有荣耀售后。见了面,先看了手机,试了好一会儿,各种测试,没问题。然后去了商场二楼的荣耀售后,让人家售后...

都是前端框架,为什么用 React 的人会有优越感?

都是前端框架,为什么用 React 的人会有优越感?

上家公司一直搞react,最近第一次写个vue3项目。老板朋友来了看了下页面说:这用vue写的吧。我:是...老板朋友:一看就知道是vue做的。这tm你看一眼页面就知道用的啥框架?这感觉就是,我一直用苹果,偶尔用了下华为打电话,有个人离老远...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。