为开源做贡献的 8 种非代码方式

1 位读者喜欢这篇文章。
Open here.

Opensource.com

无论你是编程新手、经验丰富的专家,还是根本不是工程师,除了编码之外,还有很多方式可以为开源项目做贡献。

与专有软件相比,开源项目在非工程方面的贡献往往相对不足,所以不要仅仅因为你不是程序员就回避开源。你的博客文章或设计技能对合适的项目可能比另一行代码更有意义。

所以,这里有一些你可以立即着手为开源做贡献的小方法。

倡导

开始贡献的最简单方法是成为开源技术的优秀用户。

这意味着使用开源应用程序,并在你有选择的时候选择开源软件(或者至少尝试一下)。例如,当你所在组织正在考虑是否使用专有应用程序来解决问题时,请考虑研究和倡导开源替代方案。

与 SaaS(软件即服务)不同,开源软件可安装在你自己的服务器上(或你公司的数据中心)。隐私、安全和可定制性通常是开源解决方案的关键优势。

在 Google 上搜索“X 的开源替代方案”是找到像 Rocket.Chat(团队聊天)、Wekan(类似 Trello 的看板工具)、EtherpadHackpad(协作文本编辑)、EtherCalc(协作电子表格)、HackerSlides(协作幻灯片)、Piwik(Google Analytics 替代方案)、Ghost(博客应用)等出色项目的好方法,还有更多。

查找这些应用程序列表的好地方包括列表站点、一键安装列表和热门博客文章,例如

说到博客文章,你也可以自己写一篇博客文章……当然是为了倡导开源软件!

教育

专有软件公司通常有专门的营销团队来获得更多用户,但你最喜欢的开源项目拥有更好的东西:你!

教育其他人为什么你最喜欢的开源项目很重要。这可以是任何事情,从写一篇关于你如何使用特定开源应用程序来完成任务的生活技巧风格的博客文章,到在你当地的黑客空间就你最喜欢的项目进行闪电演讲。你甚至可以撰写类似开源应用程序的优缺点评论,如 John Light 的 Slack 的 5 个开源替代方案

当你写博客文章或谈论你最喜欢的开源应用程序时,你将根据个人经验坦率地发言。如果我在听你讲话,我肯定会相信你的独立博客文章评论,而不是由一个圆滑、口齿伶俐的营销专业人士制作的广告。

我最喜欢的一些例子

  • Jack Singleton演讲,HackerSlides 的作者和 SandForms 的主要开发人员,关于在 Chaos Communication Camp 上的 Sandstorm。他还组织了一个 Sandstorm 展位在图书馆数字版权会议上。
  • Oli Evans演讲 关于使用 MeteorLXJS 上编写应用程序。
  • 唐凤演讲, EtherCalc 的作者 (以及 更多), 关于开源启蒙运动 (与 Allison Randal 合著) 阐明了自由软件运动的哲学和社会原则。她还将 Sandstorm 演讲者工具包翻译成中文。

翻译

有时,当你的主要语言不是英语时,为开源做贡献可能具有挑战性,但这也可能是一种非常有价值的资产。翻译(或国际化/本地化)是一种非常有价值的贡献,可以将软件开放给更大的用户群。

例如,Wekan 用户 将 Wekan 中的字符串翻译成其他 17 种语言。唐凤 将 Sandstorm 入门幻灯片翻译成中文

Sacha Greif, Discover Meteor (我最喜欢的 Meteor 教材) 的合著者,开始了一个 开源翻译项目 他的书(最初以英语出版)。这是一个大规模的翻译项目,有 200 多名贡献者翻译成 32 种不同的语言。

当然,并非每个项目都设置为易于接受翻译贡献,因此最好的办法是找到并询问作者或维护者。尝试查找邮件列表或 Google 网上论坛。如果他们没有,可以直接询问作者。

并非所有开源软件用户都是只会说英语的人。我住在美国,注意到太容易想当然地认为只会说英语的人的体验,并将其作为默认设置,但人类的体验远比这更广泛和多样化。通过翻译帮助开源项目是一种非常有用的贡献方式,因为它可以让世界上更多的人使用你最喜欢的开源项目。如果你精通多种语言,翻译是做出贡献的好方法。

设计图形

如果你有设计技能,你可以帮助很多需要帮助的项目。有时,以后端为导向的开发人员需要一些帮助来使他们的图标和其他图形在视觉上吸引人并准确地传达应用程序的目的。

开源设计 (OSD) 有 这个职位公告板 协调设计师和开源项目 (由 Jan Borchardt 发起)。想要帮忙?与你附近的设计师分享这个板。(感谢 Simon Vansintjan 将 OSD 引起 Sandstorm 社区的注意。)

Rust's Rustacean mascot and OpenHatch's Sufjan the penguin mascot

Rust 的“Rustacean”和 OpenHatch 的“Sufjan the OpenHatch penguin”。

我还想向我荣幸地近距离欣赏的一些开源设计工作致敬。我真的很喜欢这件令人惊叹的 Rustacean T 恤,Karen Rustad Tölva (AeroFS 的首席 UX 工程师) 为 Rust 制作,以及她为 OpenHatch 制作的企鹅吉祥物。另外,请查看 Cap'n Proto(序列化协议)的徽标,该徽标由 Amy Wibowo 贡献 (前 Airbnb 工程师,Bubble Sort 的作者:CS 杂志)。我真的很喜欢 Nena Nguyen 在 Sandstorm 上 开源 Web 应用程序作者制作的精美图标。

A matrix of app icons

改进用户体验 & 报告错误

专有软件公司通常有专门的专业人员从事 UI/UX(用户界面和设计)和 QA(质量保证)工作,但你最喜欢的开源项目可能需要你在这些领域的帮助。即使你认为自己是新手用户,积极报告问题(从错误和边缘情况到 UI/UX 问题,例如看起来位置不便或命名令人困惑的按钮)确实有帮助。花了很多时间看东西的专家永远无法真正用全新的眼光看待它,因为他们无法忘记他们已经知道的东西,这就是为什么你的新鲜视角如此有价值。

如果你觉得有什么不对劲,核心开发人员可能真的不知道。原因如下

  • 你可能正在使用与核心开发人员不同的浏览器、操作系统或有不同的使用习惯。
  • 他们可能经常遇到特定的信息量不足的错误消息(或不直观的用户界面),以至于不再令人困惑。
  • 你可能部分患有色盲,与 全球数千万人 一样,但主要作者不是,所以你从字面上看到的东西不同。

如果你可以包含截图和重现错误的步骤,这对修复它的人非常有帮助。事实证明,即使是小的修复也可以使该软件对每个人都更加可用,因为每个人都喜欢更大、更易读的字体、舒适的对比度和直观的用户界面。

例如,在 Sandstorm 社区中,在应用程序作者向应用商店提交应用之前,他们通常会通过电子邮件将新的 Sandstorm 软件包和源代码链接发送到 sandstorm-dev 邮件列表,以便社区可以试用该应用,报告遇到的错误,并提供 UI 反馈。我非常感谢列表中的每个人试用新应用并提供反馈,但我特别感谢 Nolan Darilek,他因视力障碍而使用屏幕阅读器,并且对屏幕阅读器如何感知 Sandstorm 应用以及核心本身提供了大量极其有价值的可用性反馈。谢谢你,Nolan。

组织一次聚会

聚会是开源社区成员相互学习、结交朋友和寻找合作者的好方法。如果您已经有所喜欢的开源项目的用户组,您应该加入它并主动帮助其他聚会组织者。

如果还没有,那就自己创建一个!运行聚会不需要与核心团队协调,但对于许多项目,如果您联系社区团队中的某个人,他们很可能会很乐意帮助您入门。在所有条件相同的情况下,考虑使用 Meetup.com 来组织您的聚会小组,因为这样更容易让有相关兴趣的人找到您的组。(查看 Asheesh Laroia 撰写的这份Python 用户组运行指南。如果您有兴趣结识其他使用 Sandstorm 的人,您可以发起或参加 Sandstorm 聚会。)

从小处开始是可以的。我参加过一些只有不到 10 个人在咖啡馆或餐厅举行的聚会,这种舒适的氛围让我很容易真正了解在场的每一个人。我也参加过一些基本上除了名字之外与会议无异的聚会。聚会规模可以很大(毕竟,有些城市的人均书呆子比其他城市多),但与营造热情和包容的氛围、设定定期的节奏(每月一次就很不错),以及至少提前 10 天宣布活动相比,与会者的人数并不那么重要。如果您有场地但忘记宣布,错过一个月也没关系。只需提前 40 天安排下一次聚会,以便人们在访问您的聚会页面时可以 RSVP。

如果已经有一个聚会小组,您可以主动帮助其他聚会组织者。根据我的经验,组织得最好的聚会小组总是有多个组织者来分担责任,尤其是一个组织者可能会忙起来。

有很多方法可以帮助聚会成功。以下是一些可能让您惊讶的方法

  • 向组织者提供场地。如果您正在工作,您的雇主可能会愿意在晚上向您的聚会小组提供会议室或活动空间,甚至可能提供一些饮料和小吃。同样,如果您是大学生或黑客空间成员。
  • 寻找食物/饮料赞助商。招聘部门对聚会小组特别慷慨。
  • 记住总有新的初学者。如果您决定为每次聚会选择不同的主题,那么偶尔做一个对初学者友好的主题,并向具有相邻兴趣的聚会小组发出提醒,通常是个好主意。
  • 访问其他类似的团体,发表演讲,并邀请他们。 例如,在 MongoDB 聚会上做一个关于您的 Meteor 应用程序的闪电演讲,因为您的 Meteor 应用程序默认可能使用 MongoDB,并在您的演讲结束时提及即将到来的本地 Meteor 聚会。

我想重点介绍一下 Deb Nicholson 所做的令人惊叹的社区组织工作,例如首届 SpinachCon。她还因其众多贡献而获得了 O'Reilly 开源奖。我也非常感谢每月不知疲倦地组织 Meteor 聚会的数百名聚会组织者。我特别感谢 Tableflip.io 的 Oli Evans 和 Alan Shaw,他们的 Meteor 聚会小组是第一个发展成为 Meteor Devshop(Meteor 社区的官方分布式迷你会议)的分支机构。由于他们的组织工作,两位在聚会上发表演讲的与会者最终加入了 Tableflip 团队。

改进知识库(文档、教程、问答等)

有时,在聚会上有人会告诉我,他们遇到问题,四处搜索却找不到答案,要么放弃了,要么实施了一些完全是黑客行为的解决方法。我会问他们是否在 Stack Overflow 上发布了问题,他们通常会说,他们从来没有想到要发布问题,或者因为提出愚蠢的问题而感到尴尬。

改进公共知识库是为开源项目做出贡献的绝佳方式,不仅仅是编写代码。这包括不需要任何人批准的事情,例如在 Stack Overflow 或邮件列表上提问,或者制作关于您所学内容的博客文章或视频,并将教程链接发送到邮件列表。如果您学到了一个新的核心概念并且可以协调审查过程,或者如果您发现了一些小错误,例如缺少链接或拼写错误,您应该向官方文档提交建议的编辑。

来自一个相对项目新手,并且仍然记得自己初学者心态的人的知识尤其有用。如果您能想到一种更清晰的解释方式,那将是做出贡献的绝佳方式!我可能会阅读、收藏和分享您的教程博客文章或视频。我阅读、收藏或分享过的一些最好的教育资源都是从一篇博客文章开始的。例如,如今,《发现 Meteor》教科书和 Evented Mind 视频系列是 Meteor 生态系统中最受欢迎的教育资源。

如果您遇到困难,请不要不好意思提问。就我个人而言,我不相信有愚蠢的问题。每个人,尤其是专家和资深人士,都要经历从不知到知的过程。您可能是今天幸运的 10,000 人之一。从专家头脑中查询信息的最佳方法是向他们提问,每次您提问,答案都会记录在某个地方,每个人,而不仅仅是您,都可以看到答案。那些不是核心开发人员的专家有机会分享他们的知识。也许,有人比你更胆小或不擅长你的语言,会因为你已经提出了这个问题而感到非常感激和欣慰。

此外,改进知识库还会产生改进项目入门过程的绝妙副作用,使更多人更容易做出贡献。任何使贡献更容易的事情都特别有影响力,因为它意味着有更多的人手可用。

招募更多人手

以上建议只是在代码贡献之外为开源项目做出贡献的无数种方法中的一小部分,绝不是详尽的列表。有关如何培养更令人鼓舞的开源社区的更多阅读材料,我推荐 Audrey Tang 的从开源社区中吸取的教训

专有/封闭软件通常有整个团队的人员从事 QA、设计、文档、宣传、招聘、入职培训以及工程之外的各种可以想象的角色。但是,由于工程师倾向于向其他工程师传播信息,而不是向其他人传播信息,因此许多开源社区往往在非工程技能方面相对人手不足,例如设计和社区组织。

因此,让我们通过 1) 获得更多人手,2) 让每个人(从休闲用户到核心贡献者)参与到代码之外的更多方面,以及 3) 培养一种欢迎的氛围,欣赏所有贡献,而不仅仅是代码贡献,一起来解决这个人手不足的问题。在工程密集型圈子之外的场所宣传您最喜欢的开源项目,例如在设计聚会上做一个闪电演讲,或者联系朋友和熟人。

如果您是项目的核心团队成员,请务必感谢和认可所有贡献者,而不仅仅是代码贡献者。试想一下,如果更多的潜在贡献者知道他们的帮助有多么受欢迎,那么您的项目在报告和修复了那么多随机的小错误、改进了图形和 UI 之后,将会变得多么完善。

如果您与一位拥有像素/人员/散文/其他技能的朋友分享这篇博客文章,并将他们介绍给可以使用他们的帮助的开源项目,或者在工作中倡导您的同事使用开源软件,那么您就做了一件了不起的事情。为此,谢谢您。

标签
Jade profile image
Jade Wang 与人共同创立了 Sandstorm.io,这是一个个人服务器的开源平台。此前,她创建并领导了开源 Web 框架 Meteor 的开发者参与计划,并在不到 2 年的时间里将社区发展到遍布全球一百多个城市的活跃聚会小组。

9 条评论

对于翻译人员来说,在邮件列表中追逐维护人员并发送 l10n 文件是一场噩梦……那是一种 1990 年代的“工作流程”。最好使用一个现代化的 Web 翻译项目,将翻译在几天或几周内推送给用户,例如 https://translatewiki.net/

你说得对!这就是为什么我给出的 2 个例子使用了 1) github 存储库和 2) Transifex。

今天,感谢你,我了解了 TranslateWiki,它看起来也很棒。感谢您的推荐!

回复 作者:Nemo (未验证)

很棒的文章,有很多很棒的链接。Sandstorm 是否与教育技术和公共图书馆中的客户端合作?

我已经做过所有这些。我还遇到了一些恩将仇报的态度,让人很难想继续做下去,因为任何不是程序员的人有时都会被社区视为低人一等。

很棒的文章 - 非常友好的方法,可以将人们吸引到 OS 中。

非常感谢您的这篇可爱的帖子!

这篇文章对于非开发人员来说是一个很好的启示,让他们了解如何参与开源社区。非常感谢这篇文章。

Creative Commons 许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.