An Open Source Projekten mitzuarbeiten ist auf jeden Fall eine gute Idee. (Meinen kürzlichen Nebenjob hab ich übrigens auch zu einem guten Teil wegen meines Open-Source-Engagements gekriegt, und vor allem ist es eine gute Sache nicht nur für dich, sondern auch für die Allgemeinheit.) Schauen wir mal, was mir für Sachen dazu einfallen...
- Wichtig ist, dass Open Source kein Selbstzweck ist. Die verschiedenen Leute, die daran arbeiten, haben genauso verschiedene Ziele und Ansichten. Manche wollen die Welt verbessern und die Freiheit zum Selbermachen bewahren, manche verdienen ihr Geld damit, manche wollen einfach nur exzellenten Code schreiben und verbreiten. Natürlich kannst du auch Open Source entwickeln, wenn du nur deinen Lebenslaufmit mehr Erfahrung aufpeppen willst, aber wenn du Begeisterung für die Sache mit einbringst, ist es wesentlich interessanter.
- Als allererstes musst du dir überlegen, was dich interessiert, woran du arbeiten willst. Dann kannst du dir überlegen, in was für einem Projekt du mitarbeitest und was du daran verbessern willst. Wenn du z.B. an PHP-Programmierung interessiert bist, könntest du bei Drupal oder Joomla reinschauen, wenn du gerne GUI-Sachen machst bist du bei KDE oder GNOME an der richtigen Stelle, und für hardwarenahe Programmierung gibts bei den diversen Betriebssystem-Kerneln (sagen wir, Linux) Einiges zum Austoben. Für alles genannte gibt's eine große Anzahl an Unterprojekten oder sonst damit zusammenhängender Software, mit unterschiedlichen Subcommunities und Anforderungen an den beigetragenen Code. Such dir was aus, wo du glaubst, dass du hineinpasst.
- Die meisten Projekte sind international und haben Englisch als offizielle Sprache für Code (Kommentare) und Kommunikation. Kann durchaus sein, dass es auch rein deutschsprachige Projekte gibt, aber das sind dann eher die, aus denen nichts wird und die folglich keine große Akzeptanz finden. Was bei weitem nicht heißt, dass die mitarbeitenden Leute alles native speakers sind... im Gegenteil, oft kommen die wichtigsten paar Entwickler aus der gleichen Gegend. ([url=http://kde.org]KDE hat z.B. einen deutlichen Ursprung in Deutschland, und die meisten KDE-Entwickler sind immer noch von dort.
- Der Großteil der Open-Source-Projekte kommt ursprünglich von Linux, die Entwicklerschaft ist folglich sehr oft Unix-affin und legt Wert auf Plattformunabhängigkeit. Wenn du selber mit Linux fahrst (oder auch MacOS, FreeBSD oder Solaris) hast du's in diesen Fällen leichter, in die Community hineinzuwachsen. Es gibt natürlich auch eine gute Anzahl Open-Source-Projekte auf Windows, oder überhaupt nur MacOS- oder Windows-only. An welchem Projekt du arbeiten willst, hängt also durchaus auch davon ab, welches Betriebssystem du verwendest.
- Fast alle Open-Source-Projekte kommunizieren über Mailinglisten und IRC, und ein jedes Projekt hat seine eigene "Subkultur", Verhaltensregeln und Eigenheiten. (Foren sind meistens nur Beiwerk und werden weniger beachtet.) Wenn dich ein Projekt interessiert, abonnier dir einmal seine Mailingliste, häng dich in die entsprechenden IRC-Channels hinein, abonniere den jeweiligen Planet per RSS, und sondier so aus ob dir die Atmosphäre des Projekts sympathisch ist und wer die Leute sind, an die du dich am besten wendest.
- Die Kommunikation zwischen Entwicklern ist in Open-Source-Projekten oft sehr minimal, ohne viele Nettigkeiten oder Weltansichten auszutauschen. Wenn du wo mithelfen willst, musst du auch erwarten, dass dein Code durchleuchtet und kritisiert wird, meistens eh mit Verbesserungsvorschlägen. Jedenfalls, wenn eine Email unfreundlich klingt, heißt das in den allermeisten Fällen nicht, dass der dahinterstehende Entwickler kaltblütig ist, sondern eher dass er sich weniger Zeit für Höflichkeiten nimmt und stattdessen lieber produktiv codet, oder so. Also nicht abschrecken lassen, alle Projekte können gute Programmierer brauchen oder auch Tester, Dokumentatoren, Übersetzer, Bugjäger, Usability-Leute und was nicht noch alles.
- Quasi alle Open-Source-Projekte verwenden ein Versionskontrollsystem, z.B. Subversion (SVN), CVS, Git, Bazaar-ng oder was es nicht sonst noch so alles gibt. Falls du nicht eh schon mit zumindest CVS oder SVN gearbeitet hast, solltest du dir eins der zwei anschauen. Eh leicht zu lernen.
- Ich persönlich bevorzuge es, an großen, wichtigen Projekten mitzuarbeiten. Wenn du gerne kleinen unbekannteren Projekten aushelfen willst, ist es auch gut, aber bei den größeren Projekten (die aber trotzdem immer noch Entwickler brauchen können) hast du die Möglichkeit, die Softwarewelt selbst zu verbessern und Sachen zu entwickeln, die einem Haufen Leute zugute kommen.
Also, einfach mal stöbern und schlau machen. Die Wikipedia weiß übrigens auch einiges. Und wenn du dann mal Lust hast, wo mitzumachen, werden dir die anderen Community-Mitglieder sicher nicht böse sein