倾听:比利·皮尔格林的时间观念被打乱了。
好吧,这和这篇文章的主题无关,但是当我发推文征集开场白建议时,这是最有趣的回应(感谢 @kantrn)。我得到了其他更有帮助的建议(谢谢,@justinlilly)——这就是社区的力量,对吧?
实际情况是:很多人认为只有互联网上著名的摇滚明星程序员才能为开源项目做出贡献,但实际上,开源社区依靠每个人的贡献蓬勃发展,从初学者到专家,甚至是非程序员。
为社区做贡献
许多开源项目和语言都在寻找贡献者,但由于 Python 和 Django 是我参与最多的社区,因此这里将重点关注它们。如果您对另一种语言/社区更感兴趣,那么在 Google 上搜索一下会发现大量的资源。
编写代码
当然,代码是这一切的开始。如果您不确定自己的技能并且犹豫不决,那就停止这种想法。无论您的经验水平如何,您都会发现您可以添加一些东西。唯一的办法就是开始。阅读问题跟踪器——Python 和 Django 都有它们
当您梳理错误跟踪器时,找到一些引起共鸣的东西,也许是您自己在使用框架或语言时遇到的错误。验证该错误是否存在。深入研究代码,看看是否能找到错误的根源——您将从这样的练习中学到很多东西。
在今年的 DjangoCon 上,Russell Keith-Magee 做了一个很棒的演讲,他每年都在改进,关于“从用户到贡献者的飞跃”。去看看——他谈到的所有内容,从分类问题单到提交补丁,都适用于 Django 框架项目之外的领域。
Python 开发者指南 也有一些关于审查问题单和提交补丁的有用信息。
开源你自己的代码
您是否编写了一个应用程序,您认为其他 Django 用户会发现它对他们的项目有用?或者是一个脚本,可以帮助其他 Python 用户更容易地完成一些重复性任务?把它贡献给世界!开源它(只要它不是您为雇主编写的)!
如果它是一个成熟的应用程序或项目,您可以将其放在像 Github 或 Bitbucket 这样的公共存储库中。至于许可,我所知的指导您做出正确决定的最佳资源是一本书:《知识产权与开源:保护代码的实用指南》,作者 Van Lindberg。
贡献时间
在您所在的地区组织用户组
如果您的城市还没有 Python 或 Django 聚会,那就开始一个!通过 Meetup.com 非常容易,尽管组织者的费用可能有点高,但您始终可以向 PSF 和 DSF 申请帮助支付费用。如果您居住的地方有一个活跃的科技社区,招聘人员会蜂拥而至,担任赞助商,拥有空间的公司也会排队为您提供一个聚会场所。
如果您不想使用 meetup.com,还有其他不太正式的入门方式。创建一个 Google 论坛,并在 Twitter 或 IRC 上宣传它。找一家有会议空间的咖啡馆或餐厅。建立一个本地网络。相信我——您会很高兴拥有志同道合的开发人员,可以与他们分享想法,而不必等到每年的 PyCon 或 DjangoCon 才能见面。
组织课程!教你所知!
在我离开波特兰之前,我有幸参与了今年夏天在那里举办的 Python Women's Workshops 的女性小组的教学。我们通过 meetup 和当地的 Python 用户组来安排课程,我们的课程欢迎所有经验水平的女性(和她们的男性朋友)。
现在全国各地都在举办数十个这样的课程——很少或没有编程经验的用户正在大量报名学习 Python、Javascript、Ruby,您能想到的都有——来自像 PyLadies、Girl Develop It、Women Who Code、Tech Girlz 和许多其他组织。当然,我刚才列出的组织旨在让女性进入科技领域,但也有 Hacker School,这是一个面向已经有一些经验的开发人员的通用 培训计划。
我的观点是:要参与大多数这些项目,您所要做的就是提供您的时间——自愿担任导师或老师。对于您已经知道的一切,还有其他人尚未学到。许多课程都开源了他们的课程,因此如果您的城市没有这些组织,并且您想自己开始,您就可以拥有教学材料。
联系当地学校
K-12 级别的计算机科学教育今年受到了特别关注,部分原因在于 Selena Deckelmann 在今年 DjangoCon 上的主题演讲——“当我们在这里时,让我们修复计算机科学教育。” 开源社区的成员仍在努力弄清楚在哪里开始提供帮助最好,但一个起点是组织 计算机科学教师协会。
您可以免费以个人会员身份加入 CSTA。他们不仅仅在寻找计算机科学教师——他们还在积极寻找“有兴趣支持计算机科学教育和教师的行业成员”。我想我们都符合条件。而且我猜这将是一个很好的方式,可以从更高的层面了解公立学校 CS 项目的种类以及他们的需求。
捐款
如果您所在的公司的使用 Python 或 Django,请考虑鼓励您的组织在经济上做出回馈。诚然,“开源”意味着您可以免费使用这些项目,但归根结底,从事这些项目开发的开发人员放弃了很多个人时间,并投入了很多精力。代码不会自己编写。
许多开发人员在开源项目中最感到沮丧的事情之一就是让使用开源的公司做出回馈。当被问到“你会捐款吗”时,CEO 和 CTO 会问“我能得到什么回报?”——好像他们以零成本和零持续版税收到的开源软件栈,并使他们能够创造数百万美元的收入,不知何故不算什么。开源是一种集体努力的想法似乎根本没有发生在他们身上。
有些公司确实明白这一点。他们捐款;他们捐赠资源;他们捐赠员工时间。但绝大多数公司根本没有这样做。他们会很高兴地使用开源软件,但他们甚至没有想到添加新功能、修复错误或修补安全漏洞的唯一原因是因为有一支团队在自愿贡献他们的时间。
这种志愿主义并非完全是利他的。任何成为主要开源项目的重要贡献者的人都会获得大量的宣传,这当然不会损害他们的职业生涯。但归根结底,这仍然是志愿服务,如果项目中的志愿者没有任何空闲时间,那么项目就不会取得进展。
在某种程度上,这是大型开源项目需要管理的事情。但可以管理的程度是有限的,因为你不能强迫志愿者做任何事情。您只能团结那些可以志愿付出努力的人。然而,这是一个公司可以解决的问题——他们可以获得资金,这可以购买时间。
开源背后的想法是,如果每个人都贡献一点点,我们最终都会得到一个更好的产品。不知何故,这种乌托邦式的愿景已经变成了一种只有少数人做出贡献,但每个人仍然期望从中受益的情况。在某些方面,这只是影响所有乌托邦的“公地悲剧”。然而,这并不能阻止我们梦想一个更美好的世界,人们贡献是因为这是正确的事情,而不仅仅是因为他们被迫这样做。
如果您愿意,您可以直接捐赠给 PSF (Python 软件基金会) 或 DSF (Django 软件基金会) (这些页面都说明了捐款的用途)。
Django 软件基金会甚至有一个 企业会员 计划,鼓励企业参与会员讨论和会议(并且会费可以免税!)。
如果您所在的城市拥有蓬勃发展或正在发展的科技社区,请考虑捐赠您的会议场地,甚至为聚会提供赞助。 如何参与? 只需在 Meetup.com 上快速搜索本地用户组并联系组织者 - 他们会处理后续事宜。
当然,作为一名个人开发者,您可以随时自由地向这些基金会捐款。 您可能还想考虑 GitTip,您可以在其中承诺每周向个人或组织提供少量付款,以感谢他们的辛勤工作。
我个人建议
- https://www.gittip.com/jnoller/
- https://www.gittip.com/freakboy3742
- https://www.gittip.com/alex/
- https://www.gittip.com/mitsuhiko/
- https://www.gittip.com/readthedocs/
分享知识
编写文档
去年,我写了一个系列文章,详细介绍了为 Django 框架贡献文档的过程。 这比看起来容易得多,而且需求量很大。 如果您擅长写作,这可能就是您的机会。
Python 的开发者指南也介绍了 编写 Python 文档,但细节略少。
写博客!
每次您学到新东西,都可以教给别人。 当您弄清楚如何用代码做一些新的或巧妙的事情时,请写博客记录下来。 这就是我开始写这个博客的原因 - 作为填补 Django 文档空白的一种方式,并添加到现有的编码知识的宏伟集合中。 相信我,我回顾自己的一些旧帖子时,会因为它们当时看起来多么简单而感到有点尴尬。 但几乎每天,我都会收到人们的感谢,感谢我帮助他们克服了他们无法弄清楚的事情。
最初发布在 mechanicalgirl.com。经许可转载。
8 条评论