前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么我要为开源社区做贡献|你也应该这样做

为什么我要为开源社区做贡献|你也应该这样做

作者头像
CNCF
发布2020-02-24 16:57:22
7080
发布2020-02-24 16:57:22
举报
文章被收录于专栏:CNCFCNCF

客座文章最初由Sysdig高级软件工程师Marky Jackson(@markyjackson5)在Upshot上发表

我有一个艰难的童年。我从一个男孩的家转移到另一个男孩的家,几乎无法控制自己的生活。但我很坚强,也很聪明,我在很小的时候就获得了自由,这让我在十几岁的时候就开始按照自己想要的方式生活。

孩子们需要稳定的环境才能长大,而我通过编写代码为新的现实奠定了基础,从而弥补了寄养家庭所提供的不稳定性。我非常擅长电脑编程,我童年的逃避最终成为了我职业生涯的基石。在某种程度上,编程给了我一种掌控感,就像是我的生活中所缺少的。

灵感来自一位火箭科学家

我九岁的时候,我的世界彻底改变了。放学后,我去拜访一位朋友,他的父亲正在一台TRS-80电脑上玩游戏。那是在家用电脑还很新奇的时候。TRS-80很原始,和你放在随身听里存储的磁带一样,但我被迷住了。

我朋友的父亲在屏幕上炸坦克。

我记得我问,“你在玩什么游戏?”

“我还没给它起过什么名字呢,”他回答。我不明白他的意思。

他为什么要叫它什么呢?然后他解释说,这是他自己用BASIC语言写的。

我的大脑爆炸。我喜欢电脑游戏,但我不知道人们可以自己开发游戏。还没等我反应过来,我朋友的爸爸就开始教我如何用BASIC编程了,于是我开始用磁带建立自己的软件库。

几年后,我发现这个人以写软件为生。他在美国宇航局的喷气推进实验室工作,编写了控制航天飞机反应控制系统的程序。这些推进器提供了姿态控制,这是航天器在轨道上调整和保持位置的方式。

“你爸爸是个火箭科学家?”几年后,当我意识到他父亲的工作时,我问我的朋友。我没有意识到我在编码方面受到了一个从事太空项目的人的指导。

我对开发的大胆尝试

这门课一直持续到我上大学的时候,我已经是一个十足的电脑迷了。我在加州大学洛杉矶分校和麻省理工学院学习计算机科学,然后在茉莉多媒体出版社实习了14个月。

我在学校的时候认识了茉莉多媒体的CEO Jay Samit。他认为我有潜力,并提出每小时付给我15美元来写软件。那是一份相当不错的薪水,我在公司的时间帮助我巩固了我的技能,尤其是在C++方面,那是20世纪90年代中期最热门的编程语言。

我认为在那里的时间是我的天堂和地狱之年。主要是因为我参与的项目。

我刚刚结婚,我被分配到一个项目,我可以最好地描述为有一个兄弟会的氛围。很好玩,但不适合家庭生活。然后我转到另一个项目,叫做梵蒂冈内部。至少可以说,这是一种完全相反的游戏。这是一张互动光盘,由彼得·乌斯季诺夫爵士叙述,并与天主教会合作制作。

这是一个美好的时间,在电脑工作。互联网正在腾飞,我们正在寻找新的方式,将真人视频和电脑图像结合到多媒体故事中。

不幸的是,茉莉多媒体被公司买断了,我只好另找工作。

17年的朝九晚五

我的职业生涯开始了。我的技能非常抢手,我为一系列知名机构工作,包括一家保险公司、几家银行和国防部。我喜欢软件工程师的工作,但我的劳动成果是公司的。我不像我朋友的父亲那样,把我置于他的庇护之下。

我不高兴,但与此同时,我的岳父一直告诉我,如果我百分之百地喜欢我的工作,我就会付钱在那里工作。他告诉我,除了经济上的回报,工作不需要提供任何东西,我的经历也证实了他的观点。

我的雇主在推销产品,让股东和董事会成员满意。这就是世界的方式。为更大的善做贡献是你在业余时间或退休后做的事。办公室里没有地方可以帮助别人,对吧?

在赛门铁克和雅虎改变了我的看法

他们说你不会有第二次获得幸福的机会,但当我开始在赛门铁克工作,然后在雅虎工作时,就发生了这种情况。这两家公司的管理者都是真正的信徒,他们把一切都投入到改善客户和用户的生活中。

大多数人不会花很多时间考虑网络安全、电子商务、电子邮件和搜索功能,但他们每天都在使用这些技术。如果我们的指尖没有这些力量,我们会在哪里呢?

我谦卑地意识到,我的工作又一次带来了改变,重新唤起了最初吸引我从事软件工程的冲动。但我想做更多。

在SysDig帮助其他使用Kubernetes集群和容器化DevOps的程序员

从TRS-80上用BASIC语言编写程序,到使用Kubernetes与基于云的容器化DevOps环境一起工作,这是一条漫长的道路,而我现在就在使用Kubernetes。

我最近在Sysdig找到了一份系统工程师的工作。我们提供监视、故障排除、可见性和安全工具来捕获、过滤和解码系统调用和其他OS事件。

在Sysdig,我正在构建帮助其他开发人员简化和保护他们的管道的工具。我感觉我终于要回馈社区的程序员了,他们张开双臂欢迎我,帮助我在过去的几十年里建立了一个利润丰厚的职业生涯。

通过Jenkins Prometheus和GitHub回馈

Sysdig利用开源工具来构建我们的商业产品。他们的基础是基于开发人员社区的众包智慧,所以我们将我们的工具重新发布到开源生态系统中。

除了在Sysdig的日常工作之外,我还在GitHub维护Jenkins Prometheus插件的开源版本。此Jenkins附加组件是一个系统监视和警报工具,用于记录和编译实时端点数据,从而提供关于Jenkins服务器的有价值的性能指标。

我没怎么多想这个插件。这是一个有趣的副业,就像我朋友的父亲在我小时候开发的坦克游戏一样。然而,Jenkins有一个庞大的用户群,成千上万的公司使用这个平台来自动化他们的CI/CD管道。他们也在使用我的Jenkins Prometheus工具来监控他们的DevOps环境。

其中一家公司雇佣我来修正他们的Jenkins部署与我的插件的工作方式。这是一件大事,因为我的宠物项目在他们的全球运营中发挥了巨大的作用,我很自豪能帮助他们解决所有问题。那是我第一次意识到我的志愿者工作的影响。

去年,我在旧金山DevOps World | Jenkins World的Jenkins/Jenkins X社区摊位工作时,一个完全陌生的人走过来,要求和我一起自拍。他在一家财富100强公司工作,这家公司使用我的Jenkins Prometheus插件从生产线上获取数据。

那家伙吓坏了,说他的老板不相信他没有带照片的证据就见过我。这是我的摇滚明星时刻。我以为我是一个匿名的程序员,这个来自世界上最著名的公司之一的家伙想和我合影。

开源可以改变世界

开源社区就是关于包容的。我们欢迎大家贡献自己的力量,并对他们的辛勤工作表示感谢。来自世界各地的开发人员、编码人员和工程师合作推进我们的行业,这种团结和归属感无人能及。

我们不只是业余爱好者。GitHub和其他开源项目创建了在线和真实世界的空间,IT专业人员可以在这里分享他们的专业知识。例如,CloudBees的工作人员为Jenkins提供了世界上最好的商业实现,他们是Jenkins开源版本的定期贡献者。

就像我在雅虎和赛门铁克的同事一样,他们是真正的信徒,希望每个人都能从Jenkins的CI/CD流水线自动化工具中受益,而不管他们的财力如何。这就是开源的美妙之处。我们把人们聚集在一起,我们正在消除技术障碍。我们改变世界是为了乐趣和利润。

指导下一代程序员

回馈的最好部分是帮助下一代程序员。几个星期前,一位年轻的同事请求我资助他成为Kubernetes社区的一员。我很自豪能帮助他加入我们的小组,并被他的热情和承诺所感动。毕竟,我们没有人会因此而得到报酬。

我还辅导了谷歌Summer of Code的一名学生,他能够将自己的实习转化为一份全职工作。为了表达他的感激之情,他现在是开源社区的一员,并帮助其他年轻的程序员建立成功的职业生涯,这在简历上看起来也很不错。

保持开源社区的发展需要大量的时间和精力。我们大多数人都是下班后工作来完成工作,我们需要帮助——很多的帮助。人们认为你必须是一个专业的程序员才能加入我们,但事实并非如此。参加的方式有很多。你可以提交错误报告、编写技术文档,甚至赞助应用程序。提供支持的方式有很多。问问你能做什么。

我绕了一圈。这个从火箭科学家那里学会了编程的男孩现在是一名高级软件工程师,他正在帮助年轻人学习编程的诀窍,以便他们能够挑战计算机科学的边界。

我朋友的父亲对我产生了积极的影响,改变了我的生活。全世界无数人都在通过为开源社区做出贡献而产生影响。今天你如何改变世界?

点击文末<<阅读原文>>进入网页了解更多。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档