如何从零开始拥有开源经历,这可能是牛客最全的整理

一,前言

在上一篇文章里说了要在今天发一篇关于如何拥有开源经历的文章。在昨天写了一个大概的大纲。在今天整理出来了这篇文章。由于牛客的使用群体主要都是学生,所以这篇文章的写作倾向也主要是偏向于学生如何从零开始参与开源

首先开源是什么,开源是来自世界各地的开发者在代码托管平台( github , gitee 等)进行协作,且源代码开放可供任何人浏览的一种方式。并且在这种协作的过程中形成了开源社区,以及独特的开源文化。

然后我来说一下我认为的大部分同学参加开源的目的(没命中可以评论区补充一下

  1. 给自己的简历上加一段比较有含金量的经历
  2. 参加开源活动赚点小钱,薅社区的羊毛
  3. 热爱开源

以上便是我认为的可能的大部分同学想参与开源的目的。后面我的讲解也会主要偏向这几个方向。

二,我的经历

在这之前我想先说一下我参与开源的经历,因为有很多同学可能是上大学才听说过开源,对这个实在没有很清晰的认知,所以先拿我的经历给大家说一下。

我接触开源这个概念最早是在大一,当时在一个 ACM 交流群,被群友推荐了开源之夏(OSPP),但是已经是 2024 年的5月份,已经是开源之夏的尾声了,于是就在牛客上发了一篇帖子(传送门:https://www.nowcoder.com/feed/main/detail/bc719245fee44e3dab242f77189b389b?sourceSSR=users)想问一下有开源经历的大佬们是怎么参与的。在评论区里看到了尔等同学大佬的回复,去看了他关于 GSOC 的帖子,对开源有了一个更加深入的了解,后来又通过这篇帖子和杭电的大佬 nx 聊了聊,nx 大佬参加了24年的 OSPP, 也说了一种通用的参与开源的方式

和 nx 大佬在牛客上的聊天

这之后我看到了2024年的 OSPP Droma 社区的一个网关项目,尝试搓了一版申请书,但是由于没有提前和导师联系,后来也没有提交这份申请书,就这样草草的结束了 2024 的 OSPP

后来到了24年的下半年,我决定提前参与一下开源社区为明年的 OSPP 做准备,但是当时的自己还是挺迷茫的不知道该干什么,了解到了字节青训营这样不是很算开源活动的活动,于是就连着参与了两次字节青训营,在开源方面的收获就是看着青训营里面的大佬聊天,对开源有了进一步的了解了吧。

转折点是在 25 年的 3月份我在 OSPP 学生交流群看到了隐语社区发布的他们社区自己的开源活动(这种开源活动真的是对开源新手最友好的一种方式了,后面会详细说)

在隐语的活动里面,有很多类似于 kuscia 这样的项目的 good first issue 还有类似于文档修复和翻译这样的小任务(当时任务做完,社区还发了一个证书和一点小礼品,当时忘了拍照了

当然小礼品不是最重要的事情,是我给一个比较大的项目贡献了PR,并且在这期间认识了牧生哥(我开源之路上的贵人,也是我现在开源之夏的导师),当时我在 issue 下面提了一个小问题,牧生哥看到之后就回复了我

在 issue 中的交流

在这里看了看牧生哥的主页,发现他还是 Apache HertzBeat 的 committer 和 Spring AI Alibaba 社区的 PMC 是真的强。但是这里我们还是在社区进行的简单的交流。

因为之前我还加了一个 GLCC 的交流群(牧生哥也在这里),在水群的时候,牧生哥看到我的头像比较熟悉,就主动问了问我,我当然不能放过这个机会,就加了牧生大佬的联系方式,牧生大佬就把我带到了 Spring AI Alibaba 社区

刚认识牧生哥的时候

后面就是一直在 Spring AI Alibaba 社区做贡献了,社区有任务的时候,牧生大佬都会叫我,我也主动的去参加周会,领了一些新的任务,在积累了一定量的 PR 之后,就顺势报了 Spring AI Alibaba 社区在 OSPP 中的项目(这期间也在 Apache EventMesh 做了一点贡献,但是基于多种原因吧最后没有报这个社区的项目,就不详细说了)。

当时快到ospp的时候,牧生哥怕我pr少给我找了任务给我做,增加竞争力

以上便是我的经历的主线了吧,有很多地方省略没有写,但是不太熟悉开源的朋友应该也可以多少了解一些,可以有一点点画面。

最后放一张中选邮件的截图吧

三,开源活动

相信大家刚才从我的经历也看到了,从 0-1 的这个过程是最难的,只要你有了第一个 PR,有了初步参与的经验,后面参与起来也会容易很多。类似 OSPP,GLCC 这样的项目在你联系导师的时候,导师一般都会让你提前进入社区做贡献的,即便最后你没有选上,可以备战第二年的开源活动或者在日常参与社区的开源贡献,可以帮助你迈出你开源之旅的第一步。

下面我来说一下我整理的开源活动

国外

1,GSOC 谷歌开源之夏

官网:https://summerofcode.withgoogle.com/

世界上的顶级社区都会参与的开源活动,最有含金量的开源活动,奖金换算成人民币有两万多,参与方式与国内的 OSPP,GLCC类似,提前联系导师做 good first issue ,写申请书

可以参考尔等同学的主页的经验贴https://www.nowcoder.com/discuss/447916148366098432?sourceSSR=users

知乎上也有一个大佬写的挺好的,大家可以去知乎搜索 Google Summer of Code 学生申请指南

2,比特之夏

官网:https://www.summerofbitcoin.org/

这个主要是 Web3 相关的开源项目,从官网的介绍上来看,报酬是以比特币的形式进行支付,由于我对这里实在不了解,而且网上的相关资料也比较少,但是官网的信息也还算详实,有对这个比较熟悉的大佬可以在评论区里面补充一下

3,Linux基金会远程实习计划

官网:https://docs.linuxfoundation.org/lfx/mentorship/platform-overview

其实也可以看做是一种开源活动,主要做的也都是各个开源社区的导师提供的项目,导师的计划在导师平台上开放,学生也会在学生平台上进行开放,是一个双向选择的过程,由于官网文档足够详实,这里就不赘述了。

国内

1,OSPP 中科院开源之夏

官网:https://summer-ospp.ac.cn/

国内对标谷歌开源之夏的开源活动,国内的社区与Apache基金会的很多项目都会参与这个活动,活动薪酬基础项目 8000 人民币(税前),进阶项目 12000 人民币。主要的参与方式可以参考一下我的经历,也可以去知乎上搜一下,关于 OSPP 的参与的资料还是比较充足的。

2,GLCC CCF委员会开源夏令营

官网:https://www.gitlink.org.cn/CCF-GLCC

由CCF委员会举办的开源活动,奖金从6000到12000不等,有开源社区参与,但是很多项目是比较偏学术落地的,想要参与的同学可以去官网看一下项目,参与的方式是和 OSPP 类似的。

3,腾讯犀牛鸟开源计划

官网:https://opensource.tencent.com/summer-of-code

腾讯主导的开源活动,做的项目也主要是腾讯的开源项目,分为 issue 解决和参与课题两种方式,但是最后优秀学生的评选和课题奖金的发放,我到现在也没有弄的特别清楚,大家可以加一下官方交流群了解一下。

下面说的这些可能更多的和硬件以及 infra 有关,可以算的上参与开源,因为很多学硬件的同学可能参与开源的机会比较少,我觉得可以试试下面这些

4,甲辰计划 PLCT实验室

github链接:https://github.com/lazyparser/weloveinterns

这个里面的主要和 infra 的建设有关,虽然也是写开源,但是是作为实习生参与的,所以要经过多轮面试才可以。

5,一生一芯

官网:https://ysyx.oscc.cc/

从零开始设计一个自己的芯片,在芯片上运行一个简单的 RISV-C 系统,并且运行仙剑奇侠传和超级玛丽这样的小游戏,优秀的毕业学员可以参与香山开源社区(ps: 今年OSPP很多香山开源社区的项目都没人选,学硬件的同学可以冲!)

6,社区自己主导的开源活动

有些社区会有自己的开源活动比如隐语开源社区和 DataWhale 社区等,参与这样的活动,大家可以在各个交流群里找一找机会,或者关注一下github上的组织去蹲一蹲

四,从 0 - 1 之后

上面说的这些主要都是方便咱们同学参与的开源活动,这样可以帮助大家慢慢打破开源的神秘面纱,逐渐的成长为一名成熟的开源贡献者,在这之后我认为我们就没有必要执着于各种开源活动了,而是应该慢慢的去尝试自己在使用这个框架的时候可能出现了问题?然后去读源码,给项目提 fix 和 feat

因为刚参与的同学可能都会因为读源码这一关把自己卡住,参与开源活动可以让自己多少有一点指引,但在技术提升之后,就不需要再依赖这些开源活动,而是不断地提升自己的能力,主动去参与社区,让开源项目变得更好,甚至做出一个属于自己的开源项目!

五,一点感悟

上面说了这么多基本上把我的建议都涵盖到了,下面说一下自己的感悟吧。

我是在 2027 年毕业的学生,从我上大学开始就感觉到,计算机行业似乎越来越卷,我的大学生活似乎也和我想的不太一样。不可避免会有焦虑的情绪,但是开源让我逐渐的冷静了下来。我一开始参与开源社区的目的也是非常功利的,想通过开源帮助自己找到一份好的实习。但是当我深度参与社区之后,我发现我真的喜欢上这种写代码的方式,成为了一名开源爱好者,找到了自己的目标成为一名技术人文主义者。

不管大家是出于什么目的参与开源,我都认为这是让我们打开技术视野的一种极好的方式,让大家从传播焦虑的信息和培训班铺天盖地的宣传中抽身,我写这篇文章本身也是想践行开源精神。

最后祝大家都能找到自己的开源之路,也送大家一句我很喜欢的诗:胸中自有青山在,何必随人看桃花。

#牛友故事会##开源之夏##牛客创作赏金赛#
全部评论
太强了佬正好最近一直想了解开源项目这方面的东西
3 回复 分享
发布于 07-01 14:58 辽宁
开源经历很赞
1 回复 分享
发布于 07-01 15:54 北京
mark
点赞 回复 分享
发布于 08-15 13:48 湖南
mark学长经验
点赞 回复 分享
发布于 08-12 09:07 美国
**的带我
点赞 回复 分享
发布于 08-11 22:26 湖南
文章用心了
点赞 回复 分享
发布于 08-04 01:36 黑龙江
开源经历很赞
点赞 回复 分享
发布于 07-29 17:29 广东
mark
点赞 回复 分享
发布于 07-23 20:49 四川
接好运
点赞 回复 分享
发布于 07-11 20:22 江苏
根据头像一眼认出佬
点赞 回复 分享
发布于 07-10 16:09 北京
开源经历很赞
点赞 回复 分享
发布于 07-09 10:27 广东
mark
点赞 回复 分享
发布于 07-08 18:09 广东
已经毕业的学生还能参加吗?
点赞 回复 分享
发布于 07-06 11:22 浙江
mark
点赞 回复 分享
发布于 07-02 12:49 重庆
mark
点赞 回复 分享
发布于 07-02 07:12 河南
接好运
点赞 回复 分享
发布于 07-01 13:32 湖南
mark
点赞 回复 分享
发布于 07-01 10:08 北京
mark
点赞 回复 分享
发布于 07-01 00:02 山东
开源经历太强了
点赞 回复 分享
发布于 06-30 09:02 山东

相关推荐

拖更太久了,主要是从4月份开始工作到陆陆续续开始上手工作,全身心投入工作中了,最近闲下来又可以写一写文章,并且以我工作和学习的经历希望让大家增强对Linux驱动的理解。特别是我后台经常会有同学私聊我,问我一些Linux线路呀或者学完xv6应该学什么呀,我要走Linux驱动方向需不需要看Linux网络编程呀等等问题,我们今天一一解答。1. 学完xv6之后,我想走嵌入式Linux方向还需要怎么提升呢?针对这个问题,我想说嵌入式Linux需要哪些技术点。首先针对驱动,驱动其实分为很多方向,简单的有iic驱动,spi驱动,复杂的有camera驱动,显示屏驱动,音频驱动,nvme驱动还有最近流行的npu驱动,GPU驱动等等。这些驱动的共性都是要掌握设备树,sysfs文件系统,虚拟内存管理,设备总线驱动框架等等。不同的驱动还要细化,比如你想走camera,可能你要对v4l2,mipi协议这些要进一步了解,如果你想走ai芯片驱动,那最好对smmu,dma-buf,异步队列排序,多线程优化,drm框架,ping-pong存储,高性能计算有一定了解。如果是非驱动岗位,偏向CPU启动安全等方向,可能还需要掌握ARM的架构,包括最新的v8,v9架构等等。所以针对你掌握的不同驱动,你需要加强不同方向的知识。2. Linux驱动学完后期应该学什么,我看完韦东山驱动大全还需要看Linux系统编程,Linux网络编程吗。首先,驱动跟应用是不分家的,在真实操作驱动的过程中,会时刻跟应用打交道,但此刻的应用还是停留在Linux内核层面的应用。实际工作中的应用方向则会偏向安卓,比如一些中间件的实现,安卓api的调用等等,常见于手机厂系统开发岗位。而Linux系统编程更多强调于我们上层怎么用malloc,mmap分配内存,如何多进程多线程跑多个服务,怎么多线程和访问同一个变量,如何写出免锁队列。因为只要复杂的一些驱动,你可能就不单是负责最基础的driver那一层了,跟寄存器打交道的是bsp方向,驱动方向考虑更多的还是底层代码的高效性,稳定性等等。比如nvme驱动,如何对具有优先级的bio进行快速响应,并分配给SSD,可能就需要哈希存储或者平衡二叉树来做优化。包括我们说的npu驱动,如何提升cpu与npu的通信,CPU的算子如何快速部署到npu上,并最短时间把结果反馈给CPU,大量算子不同优先级如何分配线程运行,还要兼顾低功耗来进行休眠等等,其实都离不开我们Linux系统编程的很多知识。而针对Linux网络编程,这个要不要掌握真就因人而异了,这个最初是走c++的一帮人,因为要搞个webserver项目走互联网,所以在那之前会先学Linux网络编程,对于嵌入式Linux方向,大部分方向是不用去深入掌握的,除非你去路由器公司做网络驱动,那就另当别论了。3. 方向这么多,我应该选择什么方向作为我的主攻方向呢。不管你做了xv6,还是看了驱动大全,你可能都会疑惑自己会什么,只能脑子有点驱动概念有点操作系统概念,但是没有深入理解某个方向,有点浅尝辄止。所以我的建议是至少得熟悉某个子方向,你可以是熟悉camera驱动,调一调摄像头,改一改底层代码提升帧率。也可以走ai嵌入式方向,部署一下YOLOv5,然后拉通CPU到npu的函数跳转。不管走什么方向,不能只停留在上层调api,要深入到底层代码逻辑,这才能在秋招中脱颖而出。而且真正工作上,驱动与驱动,驱动与应用是不分家的。最简单的一个例子,我们想要获得高帧率的图像显示,中间经历的驱动包括了camera获取图像,npu或GPU对每帧图像实现图像锐化等ai算法,显示屏驱动稳定显示。但凡某个驱动出了叉子,在显示屏驱动那一块就会出现显示卡顿的情况或者丢帧。所以常常就是你不能只对你的方向有所理解,其他方向也要有所建树。最后同样的,如果想继续看后续请点击关注,最后你的鲜花和点赞将是我更新的极大动力。
通信/硬件秋招总结
点赞 评论 收藏
分享
08-15 15:44
已编辑
字节跳动_算法工程师
秋招从最开始的金九银十,这几年逐渐发展到金八银九,头部人才计划更是六月、七月就开始投递了。这里简单来聊聊投递人才计划的一些注意点首先投递的时候,提前批和人才计划有时候划等号,有时候是不一样的。另外,人才计划学历卡的比较死,除非特别特别强,那本科也可以华为天才少年在面试流程中,和普通批不一样的是,人才计划肯定是要加面的,加面的轮数和形式各异。如果投了人才计划,只面了两三轮就hr面了,那就是转普通批了,但如果之前表现不错的话,此时拿sp或ssp还是轻松的。加面一般由+2或者更高职级的领导来面,有些还会组织集体的答辩,评委则是由高职级跨部门领导和hrbp组成,压力也是拉满具体面经肯定不方便说了,但是肯定不会和之前几轮一样死板,比较随性,除了会非常细的问项目、文章、竞赛,还可能交流一下对该领域的理解、交流一下最前沿技术,也可能就是问一下遇到过什么困难等等,反正他们怎么高兴怎么来,比较考验综合素质。这里个人觉得就需要各显神通了,把自身优点无限放大,让自己尽量E一点,如果没什么突出值得记忆的点就比较困难了然后从时间上,因为人才计划的hc是非常少的,所以虽然投得早,但最后要到年底才确定其实也正常,需要放平心态,面试只能做到人和,之后就靠天时地利了。催hr就更没用了,面对重要招聘绩效hr比你还急最后从选择上,能拿到这个hc的部门肯定不会差,薪资上肯定也是拉满,大概会比ssp高得多。资源上互联网一般不会有过多倾斜,但tl肯定希望去承担一些更有挑战的工作,而中厂或者国资也是可以拉满。所以个人觉得主要可以考虑一下具体工作和个人兴趣是否契合以及和+1聊不聊得来,薪资反而是其次。虽然人才计划可能待遇好点,但是进入工作大家其实还是在同一起跑线上,因此需要一个更加长期的规划。暂时就写这么多,希望有帮助。如果对我司感兴趣的话也可以看我之前一篇帖子内推之后有空再写写面腾讯是怎么奇奇怪怪挂的
什么样的背景能拿SSP?
点赞 评论 收藏
分享
评论
40
144
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务