Ich habe gerade vor einem Jahr angefangen zu arbeiten und möchte aus den gleichen Gründen wie jeder andere an einem Open Source-Projekt teilnehmen: Helfen Sie, etwas Nützliches zu schaffen und meine Fähigkeiten weiterzuentwickeln.
Mein Problem ist, ich weiß nicht, wie ich ein Projekt finden soll, in das ich hineinpasse.
Wie finde ich ein anfängerfreundliches Projekt? Nach welchen Attributen soll ich suchen? Was sind Warnsignale dafür, dass ein Projekt möglicherweise nicht richtig passt? Gibt es Tools, die dabei helfen, Leute mit Open Source-Projekten zusammenzubringen?
Es gibt eine ähnliche Frage hier , aber diese Frage hat mit der Beschäftigung zu tun und ist begrenzt auf PHP / Drupal.
Antworten:
Mein erster Open-Source-Beitrag war für eine Bibliothek, die ich zuvor bei einem zuvor bezahlten Projekt benutzt hatte (und ohne die ich sehr gelitten hätte). Während meiner ersten Verwendung hatte ich einen Fehler im Code entdeckt, also erstellte ich einen Patch, schloss mich dem Projekt an und reichte ihn zur Überprüfung ein.
Ungefähr 8 Monate später, als ich etwas Freizeit hatte, beschloss ich, etwas zurückzugeben (und an meinen Entwicklungsfähigkeiten zu arbeiten), indem ich mehr zum Projekt beitrug. Also habe ich das Repository geklont und mich mit der Codebasis vertraut gemacht. Nachdem ich einige Wochen lang kleinere Patch-Korrekturen an die Codebasis gesendet und die Featureanforderungen überwacht hatte, nahm ich eine Featureanforderung entgegen, um dem Projekt ein ziemlich umfangreiches Modul hinzuzufügen.
Da das Generieren vieler einzelner Patch-Fixes für jede bedeutende Entwicklung ziemlich mühsam ist, habe ich das Repository in einen Zweig auf dem Git-Hub geklont und angefangen, Code wegzuschreiben. Ein paar Wochen und mehrere tausend Codezeilen später haben der Projektleiter und ich meine Fixes so in die Bibliothek integriert und getestet, dass sie mit dem Rest der Codebasis konsistent waren.
Es war ein unschätzbarer Prozess, von dem ich viel gelernt habe:
Dieses spezielle Projekt basierte auf dem Generieren und Dekodieren von Netzwerkpaketen auf allen Ebenen von Netzwerkprotokollen. Ich habe ein persönliches Interesse an Netzwerken auf niedrigerer Ebene, daher war es großartig, Gespräche mit einem anderen Entwickler zu führen, der ein gemeinsames Interesse und Wissen auf diesem Gebiet hat.
Wenn Sie nur Ihre Füße nass machen möchten: Suchen Sie ein Projekt, das Sie bereits verwenden; Klonen Sie das Repository. und sehen Sie nach, ob Sie einige Fehler beheben und / oder einige Komponententests hinzufügen können. Es scheint einschüchternd, die Codebasis eines anderen mit neuen Augen zu betrachten, aber es ist eine äußerst wertvolle Fähigkeit zu lernen. Senden Sie einige Patches. Sie können davon ausgehen, dass Ihr Code zunächst einer genauen Prüfung unterzogen wird. Mach dir keine Sorgen, es ist ein normaler Teil des Prozesses, das Vertrauen der Projektadministratoren zu gewinnen.
Nachdem Sie mit den Projektadministratoren eine Basis für Verdienste aufgebaut haben, suchen Sie nach mehr Verantwortlichkeiten, z.
Wenn Sie in einem der wichtigsten Open-Source-Repository-Netzwerke (Github, SourceForge, Google Code) kein bereits vorhandenes Projekt finden, denken Sie an eine App, die Sie wirklich verwenden möchten und die es noch nicht gibt, und starten Sie Ihre eigene.
Seien Sie bereit, demütig zu sein, und erwarten Sie, dass die Arbeit zugunsten weiterer Überarbeitungen abgelehnt wird. Der Mythos, dass jeder einem Open-Source-Projekt Code hinzufügen kann, ist völlig falsch. Es ist immer ein Gatekeeper zwischen Ihnen und Push-Zugriff. Je besser Ihr Code ist, desto weniger wird er auf lange Sicht überprüft, wenn Sie das Vertrauen der Projektadministratoren gewinnen. Wenn es Ihr Projekt ist, sind Sie der Gatekeeper.
Aktualisieren:
Ich habe nur darüber nachgedacht und festgestellt, dass ich mir nicht die Mühe gemacht habe, zu erwähnen, auf welches Projekt sich ein Großteil meiner Antwort bezieht. Für diejenigen, die es wissen wollen, ist es SharpPcap . Der Hauptentwickler Chris Morgan ist sehr professionell und sachkundig. Er macht eine verdammt gute Arbeit bei der Leitung des Projekts und hat mir viel darüber beigebracht, wie man ein OSS-Projekt ausgereift macht.
Aufgrund persönlicher Zeitbeschränkungen konnte ich seit über einem Jahr keinen Code mehr beisteuern, aber ich versuche trotzdem, etwas zurückzugeben, indem ich mich auf Stack Overflow stütze und gelegentlich Fragen zu SharpPcap beantworte.
quelle
Hier ist, was ich vorschlage, um Ihre perfekte Übereinstimmung zu finden:
Wenn Sie ein Open-Source-Projekt haben, das Sie bereits nutzen, kennen und pflegen, sollte es Ihr erster Kandidat sein, der es versucht. Überlegen Sie sich ansonsten, was Sie im Allgemeinen tun möchten , und suchen Sie nach einem Projekt in diesem Bereich.
Wenn Sie ein potenzielles Projekt gefunden haben, stürzen Sie sich nicht darauf. Versuchen Sie es selbst zu benutzen. Ist es so gut in Aktion, wie es aus der Beschreibung und den Kritiken hervorgeht? Wenn nicht, ist es kein vollständiger Show-Stopper. Vielleicht ist es eine Gelegenheit für dich, einzuspringen und wirklich etwas zu bewirken. Schließlich braucht niemand einen anderen Entwickler für ein perfektes Produkt. Aber es gibt Ihnen einen wichtigen Einblick, ob Sie an diesem Projekt teilnehmen möchten, und Sie sammeln Erfahrungen aus erster Hand mit neuen Technologien in einem Bereich, an dem Sie interessiert sind.
Bevor Sie anfangen, zu viel Zeit in das Projekt zu investieren und seine Vor- und Nachteile kennenzulernen, sollten Sie ein paar Wochen in den Projekt-Mailinglisten, Foren und sogar im Bug-Tracking-System verweilen. Wenn Sie regelmäßig zu dem Projekt beitragen, werden Sie viel Zeit dort verbringen.
Finde heraus, ob es dir Spaß macht, dort herumzuhängen, oder ob es für dich eine Belastung ist. Fühlt es sich so an, als ob dieses Projekt eine gute und energiegeladene Community hat, oder stirbt es langsam? Scheinen die Hauptpersonen dort Neulinge zu ermutigen und zu betreuen, oder sind Sie auf sich allein gestellt?
Führen Sie diese Schritte für mehrere Projekte aus, möglicherweise in verschiedenen Bereichen, und es ist weniger wahrscheinlich, dass Sie enttäuscht werden, wenn Sie sich einem falschen Team anschließen. Eine solche Erfahrung kann Sie möglicherweise davon abhalten, es in Zukunft erneut zu tun.
Noch ein paar Gedanken:
Wenn das Projekt, an dem Sie wirklich interessiert sind, ein hochkarätiges Projekt mit vielen Entwicklern und Aktivitäten ist, wird es Ihnen wahrscheinlich schwer fallen, sich dort einen ausreichenden Ruf zu verschaffen, um beispielsweise Rechte zu sichern oder eine interessante Rolle in der Community zu spielen. In diesem Fall sollten Sie in Betracht ziehen, einem verwandten Ausgründungsprojekt mit geringerer Sichtbarkeit beizutreten. Versuchen Sie beispielsweise, anstatt zu versuchen, einen Beitrag zu jQuery zu leisten, ein für Sie passendes jQuery-Plugin zu finden. Später können Sie überlegen, ob Sie nach oben wollen.
Wenn Sie ein Projekt mögen, sich aber von seiner Größe, Komplexität oder den Anforderungen an die Codequalität eingeschüchtert fühlen, sollten Sie mit unterstützenden Funktionen wie Testen, Dokumentationspflege oder Überprüfung von Fehlerberichten beginnen. Wenn Sie in der Projekt-Mailingliste nachfragen, welche Art von Hilfe sie im Moment am meisten benötigen, werden sie Sie gerne dorthin führen. :)
Auf diese Weise lernen Sie das Projekt kennen und stärken Ihren Ruf, während Sie wesentlich mehr dazu beitragen, als wenn Sie anfangen, nicht dem Standard entsprechende Patches einzureichen, die mehrmals abgelehnt werden, bis sie fertig sind.
Das Letzte und das Wichtigste: Wenn Sie sich an einer Stelle verbrannt haben, fahren Sie fort. gib nicht auf
Ich hoffe, das hilft.
quelle
Ich würde Ihnen dringend empfehlen, ein Open-Source-Projekt zu finden, das Ihr aufrichtiges Interesse hat und das Sie aktiv nutzen .
Der Grund ist einfach: Es macht den Unterschied zwischen einem Job und einem Hobby.
Schauen Sie sich Ihren Computer an. Welche Software hast du drauf, die Open Source ist? Eine Vermutung wäre Chrome oder Firefox oder vielleicht Open Office oder ein Instant Messenger-Client. Sind sie perfekt oder gibt es nur eine winzige Sache, die Sie gerne ändern würden, wenn Sie könnten?
Wenn ja, ist es jetzt an der Zeit, etwas dagegen zu unternehmen.
quelle
Ich würde vorschlagen, ein Projekt zu finden (oder zu starten), so wie es die Leute seit Jahren tun, und Open Source-Software zu verwenden, um Dinge zu tun. Das mag Ihnen trivial erscheinen, vielleicht sogar vereinfacht. Es ist jedoch sehr schwer zu beschreiben, wie zufrieden es ist, etwas zu benutzen, einen Fehler zu finden, die Quelle zu finden und zu beheben. Oder ändern Sie es, damit es so funktioniert, wie Sie es möchten.
Hacken Sie auch nicht nur, um sich einzumischen. 95% meiner Patches für den Linux-Kernel werden niemals das Licht der Welt erblicken. Ich bin mir sicher, dass niemand sie wollen würde, außer ich, und ich wäre wahrscheinlich gezwungen, mich einer psychiatrischen Untersuchung zu unterziehen, wenn ein anderer kompetenter Kernel-Hacker sie jemals gesehen hätte. Aber ich genieße immer noch meine Implementierung,
piglatin_printk()
die vor einigen Jahren als Gag für den 1. April begann :)Ja, es ist von unschätzbarem Wert, Ihren Code und Ihren Denkprozess vor viele andere kompetente Personen zu stellen, ebenso wie das Erlernen von Kommunikation und Zusammenarbeit. Ein Solo-Projekt ist eine großartige Möglichkeit, Ihnen zu zeigen, was Sie nicht tun sollten. Tipp, es geht um mehr als nur um die Verwendung von Versionskontrollsoftware, Mailinglisten und einem Bug-Tracker.
Um loszulegen, schlage ich vor , um zu graben Ohloo Software zu finden , die Sie vielleicht interessieren Verwendung zuerst. Laden Sie es herunter, bauen Sie es, spielen Sie damit. Dann schnapp dir was anderes. Irgendwann werden Sie etwas verbessern wollen oder feststellen, dass Sie den Drang haben, etwas ganz anderes umzusetzen, als Sie gefunden haben.
Das andere, was hilft, ist für ein offenes, freundliches Unternehmen zu arbeiten. Meine Firma verwendet Xen ausgiebig, so dass sie kein Problem damit haben, interessante Fehler zu finden und zu beheben, da wir das sowieso tun müssten. Sie haben auch nichts dagegen, dass Mitarbeiter an Aktivitäten wie RFCs und Entwurfsspezifikationen teilnehmen, da wir letztendlich das Ergebnis verwenden werden.
quelle
OpenHatch wurde speziell dafür erstellt.
Zitieren:
Sie können Projekte nach Typ, Technologie, erforderlichem Kenntnisstand usw. durchsuchen und herausfinden, was Ihrem Kenntnisstand entspricht.
quelle
Eine Sache, die mir wiederholt aufgefallen ist, wenn es um Leute geht, die mit Open Source-Entwicklung beginnen möchten, ist, dass sie von der schieren Komplexität und Größe großer Projekte überwältigt sind. Ich hatte vor ein paar Jahren das gleiche Problem, und meiner Erfahrung nach ist es am besten, sich die größeren Projekte nicht gleich anzuschauen.
Nachdem ich mir einige Projekte angeschaut hatte, die mir gefallen könnten, stellte ich fest, dass sie immer noch nicht in meiner Reichweite waren, und begann dann, selbst an sehr kleinen Projekten zu arbeiten. Ich möchte nur den Code auf Github veröffentlichen, unabhängig davon, ob er wirklich relevant ist oder ob andere Leute ihn verwenden werden. Irgendwann interessieren sich die Leute für das, was Sie tun. Auch sonst gewinnen Sie Selbstvertrauen und technische Fähigkeiten, um langsam zu größeren und populäreren Projekten überzugehen.
quelle
Speziell für diesen Zweck gibt es eine neue Website namens Code 52 , die neue Entwickler ermutigt, sich mit Open Source zu befassen, indem sie jede Woche ein neues OSS-Projekt starten.
Die Idee ist, dass es für Leute, die noch nie an Open Source teilgenommen haben, weniger einschüchternd erscheint und sich hoffentlich eher dazu geneigt fühlen, sich auch an anderen OSS-Projekten zu beteiligen.
quelle
Ich empfehle zu lesen: http://open-advice.org/ .
Ziel ist es, diejenigen zu unterstützen, die Gemeinschaften schaffen und pflegen, und diejenigen, die sich nicht sicher sind, welcher sie beitreten möchten oder wie sie dies tun sollen.
Gelingt dies nicht, suchen Sie ein Projekt mit einer Mission, die mit Ihnen in Resonanz steht, oder verzweigen Sie sich, und tragen Sie zu einem Projekt bei, das Ihnen bereits nützlich ist.
Viel Glück.
quelle
Als ich anfing, suchte ich online nach Optionen und es stellte sich als schwierig heraus, etwas zu finden, in das man sich als Anfänger hineinversetzen kann.
Einige Projekte sind schwer zu unterstützen, nicht weil sie zu weit fortgeschritten sind, sondern weil die Community sie nicht willkommen heißt. Lassen Sie sich also nicht entmutigen, wenn Sie gegen eine Wand stoßen.
Während der Suche habe ich beschlossen, eine Liste von 10 Open-Source-Projekten zusammenzustellen, die Anfänger ohne viel Stress unterstützen können. Hier ist der zu verwendende Link:
Zehn Projekte, die Anfänger unterstützen und von denen sie lernen können
Ich hoffe, Sie finden es hilfreich und können immer mehr hinzufügen, wenn Sie coole finden!
quelle
Ich schlage vor, ein eigenes Projekt zu einem Thema zu starten, an dem Sie interessiert sind.
Durch die Arbeit an einem Projekt kann im Allgemeinen viel gelernt werden. Es ist nicht erforderlich zu sehen, wie jemand anders codiert, um zu lernen, wie man besser codiert. Und manchmal wirst du tatsächlich sehen, was du nicht tun sollst, da die anderen Leute oft nicht erfahrener sind als du.
Normalerweise hilft es, den Code anderer zu sehen, aber Sie werden den Code anderer Leute in Ihrem eigenen Projekt nur über die von Ihnen verwendeten Bibliotheken und Komponenten antreffen.
Die Erfahrung wird Sie lehren, was gute und schlechte Praxis ist.
quelle
Ich bin ein Projektbesitzer von Google Code und suche Mitwirkende. (Aber ich werde nicht missbrauchen diese Antwort für die Werbung.) Daher meiner Meinung nach für Sie interessant sein könnten.
Sie müssen zuerst herausfinden, woran Sie interessiert sind. Entwickeln Sie dann Fachkenntnisse in einigen Bereichen, die mit Ihren Interessen zusammenhängen. Dann finden Sie ein Projekt, bei dem Ihr Fachwissen gefragt und gebraucht wird.
Je kleiner das Projekt ist, desto weniger Mitwirkende gibt es bereits, desto größer sind die Chancen, dass Mitwirkende gesucht werden, und Sie können sich direkt an die Autoren / Projektinhaber wenden. Sagen Sie ihnen, a) wie hoch Ihr Fachwissen ist, b) wo Sie sehen, dass es im Projekt angewendet werden könnte, c) was Sie Ihrer Meinung nach erreichen können.
Denken Sie daran: Nur eine oder zwei gängige Programmiersprachen zu kennen, ist kein Fachwissen.
quelle