shlomi-fish-homepage / t2 / philosophy / computers / open-source / how-to-start-contributing / index.html.wml

#include '../template.wml'

<latemp_subject "How Can I Start Contributing to Free and Open Source Software (FOSS)" />

<latemp_meta_desc "How Can I Start Contributing to Free and Open Source Software (FOSS)" />

<h2 id="note">Note</h2>

<p>
The document
<a href="http://teachingopensource.org/index.php/How_to_start_contributing_to_or_using_Open_Source_Software"><b>“How
to start contributing to or using Open Source Software”</b></a> (
locally mirrored <a href="tos-document.html">here</a>) is a more
comprehensive essay covering the theme of this one, which in turn was
written as an ad-hoc document while the other document was still work
in progress. Nevertheless, you may wish to read this page as well or
beforehand because it’s not very long.
</p>

<h2 id="intro">Introduction</h2>

<p>
We’re often getting asked “I’d like to contribute to free and
open-source software (FOSS). How can I start?”. This short resource aims to
be an ad-hoc answer to the question.
</p>

<p>
First of all, you should read the following documents:
</p>

<ol>

<li>
<p>
<a href="$(ROOT)/philosophy/foss-other-beasts/">“Open Source,
Free Software and Other Beasts”</a> - to learn what FOSS really
is about.
</p>
</li>

<li>
<p>
<a href="http://www.catb.org/~esr/faqs/hacker-howto.html">“How to become
a Hacker” by Eric S. Raymond</a> - explains the attitude of the so-called
“hackers” (in this
context - a creative enthusiast - not a computer intruder) and how to
become one.
</p>
</li>

<li>
<p>
<a href="http://catb.org/~esr/writings/cathedral-bazaar/">The
<i>Cathedral and the Bazaar</i> series</a> (also by Eric Raymond) - analyses
the world of open-source from several aspects.
</p>
</li>

<li>
<p>
<a href="http://tldp.org/HOWTO/Software-Release-Practice-HOWTO/">Software
Release Practice HOWTO</a> - describes good release practices for open-source
projects.
</p>
</li>

</ol>

<p>
After you’ve read all that, you should learn enough programming to prove
yourself useful, in case you don’t already (see
<a href="http://perl-begin.org/">the Perl Beginners’
Site</a> or search for
<a href="https://duckduckgo.com/?q=online%20python%20book">an
online Python book</a>). And after that, you should look for a project
to contribute to. For that see <a href="http://openhatch.org/">OpenHatch</a>
and <a href="http://freecode.com/">Freecode</a>.
</p>

<p>
You may wish to <b>get a mentor</b> who will guide you that you’ll be
able to consult in case you encounter difficulties.
<a href="$(ROOT)/open-source/mentoring/">I’m willing to act as a mentor</a>
and you should be able to find others who will be willing to guide you.
</p>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.