阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

如何融入开源社区

  • 2015-03-06
  • 本文字数:1277 字

    阅读完需:约 4 分钟

Guy Martin 是三星美国研究部门的高级开源策略专家,他代表三星参与了很多开源项目,也在帮助三星内部团队部署开源软件,以及和开源社区合作。近日,他在 opensource.com 上分享了关于如何融入开源社区的体会。

Martin 是个航天爱好者,他援引著名宇航员 Chris Hadfield 的书籍《Astronaut’s Guide to Life on Earth》中的一段话形象地描绘了一个人或公司刚刚进入开源社区时面临的选择:

当你来到任何新环境,你总会被视作下面三种人中的一种。带来负面作用的人:不停捣乱、制造麻烦的人。或者是不起任何作用的人:你的影响是中性的,不会打破平衡。或者是带来正面作用的人:积极为社区带来价值。但是如果你一开始就想证明自己是第三种人,那么你很有可能被看作是第一种人,不管你带来多了不起的技术,表现得有多积极。

Martin 认为融入开源社区也是这么一回事。他认为你刚刚加入时,必须表现得谦虚,尝试做个“隐身人”,不要去破坏社区平衡。对于公司来说尤其如此。如果你一开始就急着表现自己,那么轻则没人理你,重则对你群起攻之。当然这也绝对不是让你噤声,而是说每个社区都有一些通用的法则,在你尝试融入的时候必须先遵守,这样才能逐渐为社区做出真正的贡献。

在加入一个社区前,你也需要先做足功课。首先,搞清楚这个社区的沟通方式,邮件、论坛、IRC,以及当前正在讨论哪些议题。然后,你需要理解这个社区是如何管理的。是像 Linux 内核那样的层级结构,还是像 Debian 那样的扁平结构?只有理解这一点,你才能搞清楚哪些人在项目中有决策权或影响力。等日后你想要提出新的创意或者修改代码的提案时,只有这些人才能帮到你。

刚刚加入社区,免不了要做脏活累活,不如主动提出承担。也许你觉得写代码最光荣,但是几乎所有的开源项目都大量缺少承担文档、测试、bug 修复、用户界面和体验、社区指导等工作的人员。主动承担这些工作是很好的做法,从这些工作中你可以慢慢学到很多你没有的技能,同时也向你的队友证明你是一个值得信赖的伙伴,更重要的责任就会逐渐落到你肩上。

Martin 的最后一条建议是——尊重每个人。开源社区一直被认为是一个糟糕的工作环境,因为邮件列表或 IRC 里的人们似乎随时准备着打嘴仗。Martin 则认为,在社区中“表现得专业就无可指摘”。即使受到别人不友好的对待,也应该温和地去审视自己的代码、提过的建议或评论是否真的有可以修改的地方,而不是针对对方的态度进行反击,这样才能保证高效地工作。另外和项目成员私下沟通也是一种方法。就算你是地球上最牛的程序员,如果你无法尊重其他人,那么你肯定无法在开源社区取得长期的成功。

最后,Martin 再次引用 Hadfield 对宇航员人生的感悟来总结他的体会:

当你拥有某些技能却不熟悉环境时,你就不可能做出贡献。你最好先做个隐形人。隐形人不是件坏事。要证明自己能胜任这项工作,首先要不给人制造麻烦。而你在证明自己了不起之前,先要证明自己能胜任。


感谢郭蕾对本文的策划和审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-03-06 02:251792
用户头像

发布了 77 篇内容, 共 35.3 次阅读, 收获喜欢 25 次。

关注

评论

发布
暂无评论
发现更多内容

云平台纳管是什么意思?用什么工具比较好?

行云管家

云计算 云服务 云平台 云管平台 云管理

通过解析库探究函数式抽象代价

八苦-瞿昙

C#

追踪Jira中项目成本与工时,更符合国人使用习惯——TimeWise工时管理

龙智—DevSecOps解决方案

DevOps DevSecOps Atlassian

PTS 3.0:开启智能化的压测瓶颈分析

阿里巴巴云原生

阿里云 云原生 压测

在本地运行 LLMs 的 6 种方法

SEAL安全

人工智能 开源 LLMs

区块链游戏解说:什么是 Arcade Champion

Footprint Analytics

前端:Vue2.0和Vue3.0的一些入门对比

秃头小帅oi

前端 低代码 js Vue 3 vue2

活动回顾 | DevData Talks沙龙深圳站:中小到千人规模团队研发效能提升实践

思码逸研发效能

客户案例 | 思码逸DevInsight帮助企业提炼关键指标,建立研发效能体系

思码逸研发效能

EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成

EMQ映云科技

mqtt mqtt broker

作为程序员,沟通能力是否重要?

小齐写代码

致 Tapdata 全体用户:2023 年,我们把更多精力集中到了产品能力和稳定性上

tapdata

数据库

手机厂商的开年大考:卷AI,还是卷MR?

Alter

MR 大模型 AI手机

鸿蒙移动开发加速器何处寻?

Geek_2305a8

聊聊Java 类属性与类方法的应用

伤感汤姆布利柏

Java 前端

用“AI产业顾问”写企业分析报告,五天工作10分钟搞定!

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 文心大模型 文心大模型4.0

Supermicro 通过新基础设施解决方案,加速 5G 和电信云工作负载性能

财见

通过解析库探究函数式抽象代价 ( ini 解析示例补充)

八苦-瞿昙

C#

以解析csv数据为例,讨论string、char[]、stream 不同类型来源是否能进行高性能读取解析封装可能性

八苦-瞿昙

C#

喜讯 | 思码逸Devinsight 入选中国信通院《高质量数字化转型产品及服务全景图》

思码逸研发效能

即时通讯技术文集(第34期):IM群聊技术合集(Part1) [共15篇]

JackJiang

网络编程 即时通讯 IM

Udemy 上最受欢迎的免费编程课程

秃头小帅oi

php 学习 React 课程 java

蜗牛游戏宣布利用AI技术提升其开发流程

财见

测试开发名企定向培养训练营,手把手带你提升核心竞争力!

测试人

软件测试 自动化测试 测试开发

访问串是什么?有什么作用?

行云管家

运维 IT运维 访问串

SNZ资本的首席信息官Gavin确认出席Hack .Summit() 2024香港开发者大会!

TechubNews

教你如何用Keepalived和HAproxy配置高可用 Kubernetes 集群

华为云开发者联盟

开发 华为云 华为云开发者联盟

亚马逊云科技为派拓网络打造数字安全平台产品组合

财见

破防了,谁懂啊家人们:记一次mysql问题排查

阿里技术

MySQL 索引 问题排查 表结构

密码学在 Web3 钱包中的应用:私钥是什么?bitget钱包为例

威廉META

策略分析:Atlassian Server版停止支持,Server版用户应该转向数据中心版本还是云版?

龙智—DevSecOps解决方案

如何融入开源社区_语言 & 开发_曹知渊_InfoQ精选文章