Onderwerp
- #Groeimogelijkheden
- #Bijdragen aan open source
Aangemaakt: 2025-05-03
Bijgewerkt: 2025-05-27
Aangemaakt: 2025-05-03 00:00
Bijgewerkt: 2025-05-27 09:42
Deze post is bedoeld om degenen die geïnteresseerd zijn in opensource maar angst hebben om te beginnen te bemoedigen met 'Durf ik het wel aan?' en 'Waar moet ik beginnen?'.
Vandaag wil ik mijn ervaringen delen over hoe ik de opensource deuren durfde te openen en wat ik daarbij heb geleerd en gevoeld.
Wanneer je studeert voor ontwikkelaar, kom je vaak de term 'opensource' tegen. Als je GitHub bekijkt, zie je talloze projecten die de code openlijk delen en de wereld in beweging zetten.
Projecten die de code openbaar maken, worden 'opensource' genoemd.
Er zijn bijvoorbeeld grote opensources zoals OpenJDK, Spring Framework, Redis en React.
Ik heb tot nu toe in totaal 4 keer bijgedragen aan opensource. Het gaat niet om het toevoegen van functies die de wereld zullen veranderen, maar ik zoek en draag bij aan kleine, onbeduidende verbeteringen in opensource.
Ik ken de codestijl van de bovenstaande projecten niet en weet niet precies hoe ze werken.
Je kunt zien dat je kunt bijdragen aan de community, zelfs als je de code niet volledig begrijpt. Ik heb nog maar 2 jaar ervaring met ontwikkelen en ik heb niet het gevoel dat ik erg getalenteerd ben in het ontwikkelen.
Ik geniet er gewoon van om bij te dragen aan opensource en te communiceren in de developer community, dus ik blijf deze activiteiten voortzetten.
Eerlijk gezegd, in het begin, dacht ik ook wel eens 'Zou het niet fijn zijn om een regel aan mijn cv toe te voegen?' Die gedachte was er zeker wel. Maar er was een grotere motivatie. Het was de wens om 'dieper te leren' en de behoefte om 'mijn problemen op te lossen'.
Tijdens een teamproject met Spring WebFlux had ik de kans om Project Reactor, de basistechnologie, diepgaand te bestuderen. Hoewel ik de concepten begreep via boeken en documentatie, kon ik pas echt begrijpen hoe het werkt en geoptimaliseerd wordt in complexe systemen door de code zelf te bekijken en te ervaren. Ik vroeg me ook vaak af: 'Hoe bewijs ik dat ik Reactor serieus heb bestudeerd?', en ik dacht: 'Ik moet bijdragen aan opensource!'.
Zodra ik besloot 'Ik wil bijdragen!' was het onduidelijk waar ik moest beginnen. Alles was beangstigend, van het vinden van de delen die ik moest wijzigen in de enorme hoeveelheid code tot het voorspellen van de impact van mijn wijzigingen op het hele systeem.
Ik dacht vaak: 'Wat als ik een PR indien en onterecht kritiek krijg?' Het duurde lang voordat ik uiteindelijk een PR registreerde.
Mijn Reactive Command van Lettuce, een Java-client van Redis die ik gebruikte als Reactive Stack, was gebaseerd op Reactor, en ik wilde de Reactor-keten direct wijzigen en verbeteren op basis van mijn Reactor-studie.
Ik forkte lukraak en bekeek alle code die de tekenreeksen 'Reactive' en 'reactor' bevatte. Ik leek alle code te hebben gecontroleerd die was opgebouwd uit Reactor Publishers, zoals Mono en Flux.
Toen ik de code grondig aan het bekijken was, ontdekte ik gelukkig code die Reactor-ketens gebruikte, die enigszins onleesbaar was en waar de method chaining niet correct was. Het was geen functieverbetering of architectuurwijziging die de wereld zou doen opschudden, maar het was een klein en duidelijk probleem binnen mijn bereik om te begrijpen en te wijzigen. Ik dacht: 'Oh, dit is iets waar ik ook aan kan bijdragen!'.
Op basis van wat ik had geleerd, corrigeerde ik voorzichtig de code en controleerde ik in een lokale omgeving of deze naar wens werkte, al was het maar simpelweg. Hoewel het een kleine wijziging was, benaderde ik het voorzichtig en dacht ik er meerdere keren over na om de stijl van de bestaande code zoveel mogelijk te volgen en of het andere delen zou beïnvloeden.
Ik committe de gewijzigde inhoud en eindelijk was het tijd om de PR in te dienen. Eerlijk gezegd waren er veel overwegingen en aarzeling voordat ik op de knop 'Verzenden' drukte. Ik vroeg me af: 'Is het goed om een PR te verzenden met deze wijziging?', 'Zouden ze zeggen dat ik iets voor de hand liggends heb gecorrigeerd?', 'Zou ik het goed in het Engels kunnen uitleggen?' Er waren veel zorgen.
Zoals ik al zei, was er angst dat ik bekritiseerd zou worden vanwege mijn tekortkomingen. Maar met de gedachte 'De beste manier om iets te leren is door het te proberen' en 'Je kunt niets leren als je het niet probeert', nam ik de moed om de wijzigingen die ik had aangebracht uit te leggen en de redenen ervoor zo gedetailleerd mogelijk op te schrijven en de PR in te dienen.
redis/lettuce - #3061
Uiteindelijk werd mijn PR 'Merged', en ik voelde een enorm gevoel van voldoening en trots dat de code die ik had geschreven en gewijzigd deel uitmaakte van een bekend opensourceproject dat door talloze ontwikkelaars werd gebruikt.
Bovenal was het de grootste winst dat ik het zelf kon!'.
Het is prima als je het niet helemaal begrijpt. Je kunt, net als ik, bij kleine dingen beginnen. Er zijn echt veel manieren om bij te dragen, zoals het corrigeren van typefouten in documentatie, het deelnemen aan vertalingen en het melden van eenvoudige bugs. Het belangrijkste is de moed om over de angst heen de eerste stap te zetten.
Als je een fout maakt, is het ook een kans om te groeien door feedback van de community te ontvangen.
Het is ook een waardevolle kans om een regel aan je cv toe te voegen, maar bijdragen aan opensource op basis van leren kan ook een manier zijn om te bewijzen dat je echt hard hebt gestudeerd.
Reacties zijn niet toegestaan op dit bericht.