Ist es schlecht, als Amateur an Open-Source-Projekten teilzunehmen?

17

Ich habe vor ungefähr sechs Monaten darüber nachgedacht, mich einem Open-Source-iPhone- oder iPad-Projekt anzuschließen, um meine Kenntnisse in Objective-C zu verbessern, aber jedes Mal, wenn ich es mache, sehe ich Tausende von Codezeilen in großen Projekten, die ich verwende Am Ende überzeuge ich mich selbst. Ich würde es nie verstehen. Ich denke immer, dass meine Verpflichtungen nur ein Ärger für Projektadministratoren und mehr hochrangige Mitarbeiter sein würden, deshalb mache ich immer in letzter Sekunde Schluss.

Meine Frage ist im Wesentlichen, ist es ein Ärger, wenn sich ein erfahrener Programmierer einem Open-Source-Projekt anschließt?

esqew
quelle
1
Mackes Antwort ist erschöpfender, aber die prägnante Antwort auf Ihre ermutigte Frage lautet: Nein.
Chris Browne
1
@ ChrisBrowne: Guter Punkt. Ich habe meine Antwort entsprechend bearbeitet. :)
Macke

Antworten:

15

Nein, ist es nicht.

Wenn die Codebasis der betrachteten Projekte zu entmutigend ist, sollten Sie Folgendes berücksichtigen:

  • Wählen Sie ein (noch) kleineres Projekt, mit dem Sie arbeiten möchten.
  • Wählen Sie eine kleinere Aufgabe innerhalb des Projekts:
    • Schreiben Sie ein Beispiel / Tutorial / Demo für etwas
    • Aktualisieren und Korrigieren der Dokumentation (alle Projekte, Betriebssysteme oder keine, benötigen bessere Dokumente)
    • Beheben Sie viele Fehler mit niedriger Priorität, die sich jedoch leicht beheben lassen (hohe Codeexposition, Entwickler sind normalerweise zufrieden, geringes Risiko).
  • Es gibt Möglichkeiten, Beiträge ohne Commit-Zugriff auf die Kernquelle zu leisten, z. B .:
    • Einreichen von Patches, die kommentiert werden können.
    • Forking und Einreichen von Pull Requests (siehe oben)
    • Auf eigene Faust arbeiten und arbeiten, nur um zu sehen, wohin es Sie führt. Wenn Sie zufrieden sind, bitten Sie die Entwickler, einen Blick auf das zu werfen, was Sie getan haben, um festzustellen, ob es sinnvoll ist.

Um Ihre "Angst" zu überwinden, dass Ihre Commits nicht akzeptiert werden, gehen Sie zunächst auf Nummer sicher. Dies ermöglicht es Ihnen und dem Entwicklerteam, Vertrauen in Ihre Beziehung zu gewinnen und das gegenseitige Denken zu lernen. Wenn Sie sich verbessern (sowohl in Bezug auf Können, Erfahrung, Codequalität und Verständnis des Teams Ihres OS-Projekts als auch in Bezug auf dessen Dynamik), werden Sie in der Lage sein, größere Aufgaben zu bewältigen und gleichzeitig weniger Aufwand zu verursachen.

Es hilft auch dabei, nach geeigneten Ausgangspunkten zu fragen und herauszufinden, was das Team für Sie geeignet finden könnte.

Als Beispiel habe ich im Laufe der Jahre ein bisschen zu Buildbot beigetragen. Ich habe angefangen, nur ein paar kleine Probleme zu beheben, und dann die Qualität der Mercurial-Quellschritte durch die Behebung einiger eklatanter Fehler verbessert. Schließlich habe ich die meisten Webseiten neu geschrieben und das Einfügen von HTML-Code in eine vorlagenbasierte HTML-Generierungslösung umgestellt. Letzteres war ein paar hundert Verpflichtungen in ein paar Monaten harter Arbeit.

Ich habe auch einige Mercurial-Arbeiten gemacht, aber diese Leute sind wählerischer und die Technologie ist komplizierter, so dass ich noch keine Korrekturen im Kern erhalten habe. Ich habe ein paar Fehlerberichte gemacht und ein paar kleine Erweiterungen geschrieben, aber im Moment habe ich dort nichts Größeres gefunden.

Ich hoffe es hilft.

Macke
quelle
+1 für Buildbot - es ist ein fantastisches Projekt mit sehr netten, hilfreichen Betreuern. Wenn Sie mit einem guten Projekt beginnen möchten, ist es auf jeden Fall einen Blick wert.
Nate
was ist mit kompletten Amateuren? Personen mit niedrigem Programmierniveau und ohne offizielle Ausbildung?
Roy
1
@Roy In diesem Fall würde ich anfangen, indem ich herumfummle und nur an der Quelle herumbastle, um daraus zu lernen. Es dauert etwas länger, bis Sie an den Punkt gelangen, an dem Sie effektiv einen Beitrag leisten. Es ist wahrscheinlich besser, zunächst einige gute Tutorials (für das Projekt und seine Frameworks / Bibliotheken) zu lesen und Ihr Wissen aufzubauen, damit Sie wissen, wo und wie Sie einen Beitrag leisten können. Game Mods (und Plugins) können eine hervorragende Gelegenheit sein, um alleine in der Sandbox zu sein und das Level von Core-Entwicklern zu haben.
Macke
4

Steigen Sie ein. Überwachen Sie die Entwicklungslisten für eine Weile und stellen Sie sich vor, wenn Sie sich wohl fühlen. Viele Projekte haben einige leichtere Aufgaben in der Fehlerbehebung oder Dokumentation, auf die die Stammgäste Sie gerne hinweisen. Die meisten Projekte sind für Neulinge recht freundlich und bringen Sie schnell genug auf den neuesten Stand, sodass Sie zu einem echten Aktivposten für das Projekt werden können.

Nach einer Weile sind Sie mit der Struktur und den wichtigsten Teilen der Codebasis vertraut. Das Verstehen von Code wie diesem ist ein sehr wichtiger Teil der Programmierung, und Open Source ist eine großartige Möglichkeit, ihn zu lernen.

Fabio Fracassi
quelle
2

Tue es. Es gibt Unmengen von Anfängern, die dasselbe tun. Der Projektleiter kann Ihnen dabei helfen, Dinge zu finden, an denen Sie arbeiten können, die nicht zu Ihrer Liga gehören. Sie wachsen allmählich in den Rest hinein.

Oh, und nur weil Sie den Code nicht verstehen, heißt das nicht, dass er gut ist . Ich habe da draußen einen schrecklichen Code gesehen. Einige davon sind schwer zu verstehen, weil sie schlecht geschrieben und viel komplexer sind, als es sein sollte.

Brian Knoblauch
quelle