我刚写了一篇关于参加开源软件的,网上看的人是一堆一堆的。我就再多废话两句,说说我对参与开源软件的几个看法。

参与开源软件,首先要弄明白,你为什么要参加。很多人很热情,想着为世界贡献就来了。热情是好事,可是开源软件不需要理想主义者。在从事开源软件前,你一定要明白,你参加开源软件的目的在哪里。

有些人比较功利,也就比较简单,如果你希望参与开源项目,留名找工作。那你最好就是帮忙翻译。一方面,翻译文档对技术没有过高要求。另一方面,这确实也是参与了开源项目。而且从效果来看,熟悉一个项目首先就要熟悉文档。如果文档都是由你来翻译的,还有谁比你更熟悉文档呢?当老板问,谁熟悉tornado的时候,别人都说,我用过。你说的是,这玩意的中文文档是我翻译的。这对将来找工作是个很有利的加分。类似可以做的事情还有写文档,或者是使用手册、心得、入门指引,HOWTO之类的。不过这些事情就要求你至少熟悉项目,有一定技术。

如果你对现有的开软有想法,到不必一定直接加入。自己修改一下,做一个patch,然后发给项目的负责人说明一下情况。如果你的patch做的不算太次,那么项目管理者应该会表示感谢,并且接受。如果你常用这个项目,说不定他会给你一个可以提交的版本管理器账户。但是水准太差就不要凑热闹了,你的代码大家都看得到,丢脸不要丢到全世界去。记得一个空格引发的杯具么?(http://www.oschina.net/news/19000/a-space-lead-disaster) 如果你对各个开源项目都不满意,想做一个新的,独立的项目。我强烈建议你慎重考虑,毕竟现有很多项目的作者都不是傻瓜。新开项目的管理和推广是一个非常麻烦的问题,非常可能的是,你在很长时间内都得不到什么有效的支援,不得不一个人奋战。虽然有很多人很热情,但是他们很多不知道该做什么(否则本文就没有意义了),更糟的是空有热情但没有能力。

如果你是最后一个,只是对开源项目有热情。我觉得你就先别着急凑热闹了。为什么上面我说了好几次热情是好事,但是开软不需要空有热情的人?因为开软的程序员基本奉行一个原则,有空废话还不如多写两行代码。他们不会帮你培训patch的用法,版本系统的管理,bug系统用法,更不会给你解说某个函数实现的时候为什么不能调用另一个函数(当然,如果你的运气很好,也有人会)。参与一个开软,必须要自行付出时间精力去学习相关的知识。作为开软的程序员,最怕的就是一堆空有热情的用户/贡献者在那里叫嚷,为什么这个函数不能调用另一个函数?我用这个办法简化了代码,效果很好,打了一个补丁出来。同学阿,你没看以前的讨论么?在某种条件下,这会引发循环调用。

热情是好事,不过这是在拥有正确的方法和良好的能力的前提下。如果你有热情,不妨从学习如何提问,如何融入社区,如何对项目进行打包和使用开始。而后逐步开始学习文档的编写、翻译。最后为项目打补丁,贡献代码。

另外就是为哪些项目提供补丁。这个没什么好多说的,最好选择你常用的。不常用的项目,你也没那个功夫,坚持不了多久。而且通常来说,为小项目提供补丁比大项目管用,你的补丁会更加受到重视。