新手的开源之路~

Qomo项目中有很多人给我mail,说自己是新手,没有多少经验,不知道能不能加入Qomo。

关于这个问题,首先给个答案,只要愿意参与开源项目,即使是不会写Code,也能够在项目中找到自己的位置。Qomo亦然。我不会拒绝任何人加入Qomo的申请,没有回mail并不表明你被否决了,只因为(目前)项目还没有正式展开,因此也没有项目角色的分派。

之所以提到这个问题,是因为今天在CCF里看到另一个开源项目(shellweb)的负责人alexe写了一篇给新手的贴子,觉得他对这个问题的解释能够让新手们在开源项目中找到一条自己的道路:

以下(转贴自CCF)

看到有很多人问关于初学者的问题,在这里就忍不住要解释一下。

其实每个开源项目对于你所拥有的能力都没有任何要求,由于项目是有分工的,所以有很多的工作需要人来做。这样,对于不同能力的人自然会有不同的可以胜任的工作。

你是一个初学者,当然有初学者可以胜任的工作。例如,项目周边的事情,更新各种项目的数据,负责简单的答疑等等。如果,你想加入进开源项目,自然应该从这里做起,慢慢熟悉项目。当你熟悉项目后,自然就比其他人有更多的优势来参与近开发工作,这时你想升级为开发人员就自然容易很多。

我也清楚有很多的初学者加入前都会说:”我是初学者,可能帮不上什么忙?“但是,这恰恰错了,你是初学者那么自然就不会有很难的任务给你,因为这样的话项目就停滞了,谁也不会那么做,你自己也不愿意承担。

关键点:在于你自己。加入项目后,由于各自都各自的想法或者工作,所以没有人来过问你。但是,你却可以自由的根据自己的能力来提问,而且在项目中,应该会有很多相应的文档可以浏览,或者别人的讨论可以看到,这时你就可以更加轻易的理解项目,关键点在于你自己,是否上心,只要稍微有心就可以负责某些工作,再稍微用点心,你就会发现自己可以编写某些方面的代码。当你真的有心的话,你就可以融入项目中,这时谁也不会在意你的能力,而且项目离开了你就是一种损失,因为某些方面的工作没有人来做了。

大家在同一个项目中的主要目的是为了让项目成功,对于学习大家都是赞同的,因为只有学习了,才可能更加有助于为项目的成功出力,而且谁都需要学习。

但是,如果你只是学习,这里的学习仅仅是......怎么表达呢?在一旁看?或者只是询问别人某些事情?我想那根本不是学习,那只是你自己的一种幻觉,因为你根本没有学习到什么东西。你从不动手,你从不想去如何解决某些问题,你又不负责项目的任何工作,你 只是看?那和一个普通的旁人有什么区别呢?你高兴了可以来看看,不高兴就放在一边,这样也能叫做学习?再说,你没有付给任何人工资,别人又怎么能主动的来教你什么呢?

所以,在开源项目中的学习就是实际的动手,实际的讨论,实际的负责,不断的在实践中学习到各种知识。

上面谈了这么多,不清楚对于初学者有没有帮助认识开源项目。

也许对于初学者来说,更加注重的是得到了什么,对于自己的付出并不在意,而开源项目似乎更加强调你付出了什么。

在我看来,其实这两点都是各自被自身的想法而扩大化了,其实参与一个开源项目,你在付出的同时你肯定得到了相当的知识与经验(这可以说是你人生的资本,如果你能声称你参与了linux内核的编写,相信你的工作之路会十分的顺畅,如果你声称参与了firefox的编写,我想同样也不坏);而你在开源项目中,大家在帮助你的同时,也得到了你的帮助。

这样,才是一种正常的良性循环。