Ich bin ein Student im zweiten Jahr aus China, der sich für Webentwicklung interessiert. In meinem ersten Jahr habe ich einem technischen Verein an der Uni beigetreten. Dieser Club war meine Einführung in das Programmieren und Open Source. Dort traf ich auf eine Gruppe von gleichgesinnten Partnern, die das Programmieren lieben. Von ihm erfuhr ich Anfang 2023 von Google Summer of Code. Dieses von Google organisierte globale Programm vernetzt Studenten mit Open-Source-Organisationen und hilft ihnen, den Sommer sinnvoll zu nutzen, indem sie an Open-Source-Aktivitäten teilnehmen.
Ich habe es versucht und meine Bewerbung eingereicht. Glücklicherweise wurde ich angenommen. Der Sommer, in dem ich am Chrome Extension Samples-Repository mitgearbeitet habe, war unvergesslich und wertvoll. Natürlich habe ich auch viel gelernt: unter anderem effektive Kommunikation, Programmierkenntnisse und Planungskompetenzen.
Das GSoC 2023 neigt sich dem Ende zu. Daher möchte ich einige meiner Erfahrungen mit dem GSoC teilen. In diesem Beitrag werde ich kurz den allgemeinen Ablauf des GSoC anhand meiner eigenen Teilnahme vorstellen. Ich hoffe, dass er Ihnen weiterhilft.
Meine GSoC-Erfahrung
Ich habe mich für das Chromium GSoC 2023-Projekt beworben, bei dem es meine Hauptaufgabe sein würde, vorhandene Chrome-Erweiterungsbeispiele für die Verwendung in Manifest V3 zu aktualisieren, einschließlich einiger zugehöriger Scripts und Dokumente.
Am Anfang
Ich habe das erste Mal im Februar 2023 von der GSoC erfahren, war mir aber noch nicht sicher, ob ich mich bewerben wollte. Damals hatte ich einige Bedenken:
- Ich bin introvertiert und Englisch ist nicht meine Muttersprache. Die Kommunikation mit Mentoren kann also eine Herausforderung sein.
- Die GSoC-Communitys kommen aus der ganzen Welt und es kann schwierig sein, Zeitzonenunterschiede zu berücksichtigen.
- Das GSoC ist ein so renommiertes Programm, dass es sehr umkämpft sein kann, was meine Chancen schmälert.
Ich kann Ihnen jedoch versichern, dass keines dieser Probleme aufgetreten ist.
Bevor ich meine Geschichte erzähle, möchte ich über etwas sprechen, das mir Anfang 2022 passiert ist. Dieser Vorfall war auch eine Gelegenheit für mich, am GSoC teilzunehmen. Ich wollte eine Browsererweiterung, die auf Manifest V2 basiert, zu Manifest V3 migrieren. Um die Migration abzuschließen, musste ich die Dokumentation lesen und jede API-Änderung verstehen. Außerdem musste ich nach relevanten Referenzbeispielen suchen. Die neue API zu verstehen und den Code zu übertragen, ist für mich ziemlich schwierig.
Deshalb war ich sehr aufgeregt, als ich die GSoC-Projektliste durchging und die Idee zu MV3 entdeckte. Ich wollte dazu beitragen, die Manifest V3-Erweiterungsbeispiele zu verbessern und eine nützliche Ressource für zukünftige Entwickler bereitzustellen.
Im März schickte ich Oliver, einem der zuständigen Mentoren, eine kurze E-Mail mit meinen Absichten:
Die Bewerbung für die Teilnahme am GSoC-Projekt
Hallo,
Ich bin ein Informatikstudent aus China. Ich habe bei der GSoC von dem Projekt zu Chrome-Erweiterungsbeispielen erfahren und wollte die Manifest V3-Beispiele verbessern. Ich habe nicht viel Erfahrung mit der Arbeit an API-Beispielen, aber ich habe Erfahrung mit Webentwicklung und MV3-Erweiterungsentwicklung (https://github.com/daidr/paimon-webext). Dadurch habe ich die Bedeutung von MV3-API-Beispielen erkannt und möchte sowohl dazulernen als auch dazu beitragen. Kann ich mich trotzdem für dieses Projekt bewerben?
Vielen Dank.
Kurz darauf erhielt ich eine Antwort von Oliver und Ali (Olivers Chef). Sie beantwortete meine Fragen und gab mir ausführliche Informationen zu den spezifischen Regeln und dem Zeitplan des GSoC. Außerdem hat er mir viele wertvolle Referenzmaterialien zur Verfügung gestellt.
Das war ein echter Motivationsschub, der meine Entschlossenheit, weiterzumachen, verstärkte. Wenn Sie an anstehenden Open-Source-Veranstaltungen teilnehmen möchten, z. B. an der GSoC 2024, ist es wichtig, den ersten Schritt zu machen. Zögern Sie nicht und probieren Sie es einfach aus.
Bevor ich mich beworben habe, habe ich den Code des Projekts geprüft und mir die Dokumentation angesehen. Obwohl das GSoC den Teilnehmern eine fast einmonatige Kennenlernphase bietet, in der sie sich mit der Community vertraut machen können, hat mein Vorwissen den Druck verringert und mir ermöglicht, einen zielgerichteteren Vorschlag zu verfassen.
Ich habe versucht, die vom Projekt bereitgestellten Startfehler zu beheben. Diese Probleme waren relativ einfach und halfen mir, das Projekt schnell zu verstehen. Ich bin meinem Mentor Oliver dankbar (auch wenn er damals noch nicht mein Mentor war). Er hat mir immer schnell auf meine E-Mails geantwortet, wenn ich etwas klären musste, und meine Probleme geduldig gelöst. Wenn beim Verfassen eines Vorschlags Probleme auftreten, können Sie ihn auch an Ihren Mentor senden, um herauszufinden, ob es Bereiche gibt, die verbessert werden müssen.
Akzeptanz
Das Verfassen eines Exposés ist der letzte Schritt vor der Bewerbung. Der Vorschlag sollte neben dem Antragsformular auch Ideen, Ziele und einen Zeitplan enthalten. Je nach Projekt, an dem Sie arbeiten möchten, erhalten Sie möglicherweise eine zusätzliche Vorlage für den Vorschlag. Viele fertige Angebotsbeispiele sind online als Referenz verfügbar.
Nachdem ich den Entwurf fertiggestellt hatte, schickte ich ihn meinem Mentor zur Beurteilung. Nach dem Einreichen der Bewerbung dauert es lange, bis eine Antwort kommt. Anfang Mai erhielt ich die Benachrichtigung, dass ich angenommen wurde.
Code Work
Während der anfänglichen Bindungsphase habe ich mich zuerst um die verbleibenden Startfehler gekümmert und geprüft, ob ich neue Fähigkeiten erlernen musste. Den Rest der Zeit verbringe ich damit, Dokumentationen zu lesen.
Nach einer Unterhaltung mit meinem Mentor haben wir einige Ziele angepasst, um die für die Aufgaben vorgesehene Zeit realistischer zu gestalten. Außerdem haben wir die Idee einer neuen Seite auf developer.chrome.com diskutiert, auf der alle API-Beispiele aufgeführt und grundlegende Filter bereitgestellt werden, damit Entwickler die benötigten Beispiele schnell finden können. Es war eine ziemlich komplexe Aufgabe für mich und es hat mein Mentor und mich einige Zeit gekostet, das Projekt zu definieren und ein Produkt-Anforderungensdokument (PRD) zu verfassen.
Für diese größere Aufgabe haben wir uns entschieden, ein automatisiertes Script im Samples-Repository zu verwenden, um das Repository zu durchsuchen und eine JSON-Datei mit einer Liste von Erweiterungsbeispielen und den verwendeten APIs zu generieren. Im Entwickler-Repository von developer.chrome.com wird diese Datei jetzt zum Erstellen einer Seite verwendet.
Ich habe zuerst überlegt, Babel zu verwenden, um den abstrakten Syntaxbaum des Beispielcodes zu analysieren und die verwendeten APIs zu ermitteln. Als ich diese Idee mit meinem Mentor teilte, stellte ich fest, dass er bereits an etwas Ähnlichem gearbeitet hatte, was die Machbarkeit dieses Ansatzes bestätigte. Nachdem ich den Code fertiggestellt hatte, gaben mir mein Mentor und andere Mitglieder seines Teams wertvolle Vorschläge, wie ich die Codesegmentierung beachten, den Codestil standardisieren und Funktionen richtig dokumentieren kann.
Nach mehreren großen und kleinen Überarbeitungen wurde der Code erfolgreich zusammengeführt. Den vollständigen Thread finden Sie auf GitHub oder auf der Liveseite.
Zusammenfassung
Wenn Sie mich fragen, was mir das GSoC gebracht hat: Zuerst natürlich das Wissen über APIs für Browsererweiterungen. Durch das Lesen der Dokumentation und das Erstellen neuer Beispiele habe ich ein detailliertes Verständnis der verschiedenen APIs für Browsererweiterungen gewonnen.
Außerdem habe ich viele Fähigkeiten erworben, mit denen ich vor der Aufnahme in das GSoC nur wenig vertraut war, z. B. einen umfassenden Codeüberprüfungsprozess und die Erstellung eines PRD. Außerdem habe ich damit begonnen, GitHub-Aktionen zur Automatisierung von Workflows zu verwenden, und gelernt, wie ich mit Babel alle Erweiterungsbeispiele durchsuchen und die verwendeten APIs verfolgen kann. Außerdem hatte ich meine erste Erfahrung mit der Nunjucks-Template-Engine. Diese Fähigkeiten sind für die Programmierung unerlässlich und ich bin froh, dass ich sie gelernt habe. Die Teilnahme an Open-Source-Communitys macht mir Spaß.
Dieser Sommer hat mir viele unvergessliche Erinnerungen beschert. Das Programmieren macht mir sehr viel Spaß. Ich habe geduldige Mentoren getroffen, die mich angeleitet und mir interessantes Wissen vermittelt haben, was meine Erfahrung bereichert hat.
Das Wissen im Bereich der Informatik ist unendlich. Als ich mich mit anderen verglich, wurde mir klar, dass mein Verständnis von Open Source nur die Spitze des Eisbergs war. Jeder Beitrag zählt, ob klein oder groß. Ich glaube, dass das GSoC ein guter Ausgangspunkt für die Teilnahme an Open Source-Projekten ist.
Ich hoffe auch, dass meine Erfahrung für die zukünftige Teilnahme an Open-Source-Aktivitäten ein gewisser Referenzpunkt sein kann.
Hier sind einige meiner Vorschläge für alle, die am Google Summer of Code teilnehmen möchten:
- Wählen Sie eine Idee aus, die zu Ihnen passt: Bei der Suche nach Ideen sollten Sie sich in erster Linie an Ihren Interessen und dann an Ihren Fähigkeiten orientieren. So können Sie während des gesamten Beitragsprozesses Ihre Begeisterung aufrechterhalten.
- Qualität vor Quantität: Sie können viele Vorschläge einreichen, um die Chancen zu erhöhen, für das GSoC ausgewählt zu werden. Ich glaube jedoch, dass die Qualität wahrscheinlich wichtiger ist, da die menschliche Energie begrenzt ist. Es kann am Ende hilfreicher sein, sich auf zwei oder drei Ideen zu konzentrieren.
- Haben Sie keine Angst vor Neuem: Zögern Sie nicht, Technologien auszuprobieren, mit denen Sie in einem Projekt noch nicht gearbeitet haben. Sie haben fast einen Monat Zeit, sich mit unbekannten Technologien vertraut zu machen, und einen ganzen Sommer, um sie zu implementieren. Leg einfach los!
- Machen Sie sich vorab mit dem Projekt vertraut: Lesen Sie sich beispielsweise die Entwicklungsdokumentation durch, sehen Sie sich den bisherigen Commit-Verlauf und die Probleme an und werfen Sie einen Blick auf frühere Pull-Requests. Wenn Sie sich vorab ein umfassendes Bild vom Projekt machen, können Sie einen umfassenderen Vorschlag erstellen.
- Bleiben Sie im Austausch: Sprechen Sie regelmäßig mit Ihrem Mentor und zögern Sie nicht, Fragen zu stellen, wenn Sie auf Probleme stoßen, ganz gleich, ob vor oder nach der Aufnahme. Die meisten Mentoren sind bereit, Ihnen bei der Lösung von Problemen zu helfen. So können sie auch Ihren Fortschritt im Auge behalten.
Vielen Dank fürs Lesen.