Beste antwoord
Ik zal dit nemen.
Eerst van alles ben ik het helemaal niet eens met één antwoord (met 1000 + upvotes) in deze thread, samen met de regels, “ Als je een beginner bent, draag niet bij aan een open source-project op GitHub! Het is een doodlopende onderneming die leidt tot frustratie en woede !”
Als iets frustratie en woede bij iemand veroorzaakte, betekent dat niet dat hetzelfde bij jou dezelfde reactie zou veroorzaken. Het spijt me, maar dat was een negatief vooruitzicht.
In feite is bijdragen aan open-source iets dat je onderscheidt van beginner en gemiddeld of ervaren. Het geeft je een boost om verder te komen in je technische of coderingstraject. Natuurlijk wil je niet voor altijd een beginner zijn, of wel?
Ik moedig beginners ten zeerste aan om bij te dragen aan open-source op GitHub en ik Ik zal precies laten zien hoe je dat kunt doen direct na het lezen van dit antwoord.
Veel mensen denken dat ze noodzakelijkerwijs een soort code moeten schrijven om bij te dragen aan open-source GitHub-projecten.
Ze krijgen dit kunstmatige beeld in hun hoofd dat een of andere openbare opslagplaats van een open-source JavaScript-bibliotheek of framework een probleem of bug zou hebben en ze zullen die bug moeten oplossen als ze besluiten een bijdrage te leveren.
Dat is niet waar (de hele tijd) .
Ik kreeg altijd een soortgelijk beeld in mijn hoofd toen ik begon met bijdragen aan open-source op GitHub.
Bijdragen aan open source betekent niet noodzakelijkerwijs code schrijven.
- Mensen richtlijnen geven voor het leren van een programmeertaal kan ook worden beschouwd als een open-sourcebijdrage ion.
- Mensen de weg laten zien om front-end ontwikkelaar te worden, kan ook worden beschouwd als open-sourcebijdrage.
- Nou, het feit dat ik dit antwoord schrijf om te leren wat de niet-traditionele manier om bij te dragen aan open-source-activiteiten op GitHub kan ook worden beschouwd als mijn bijdrage aan open-source.
Genoeg gepraat. Laat me je een idee geven hoe je nu kunt bijdragen aan open-source.
Ik zal beginnen met het uitwerken van mijn persoonlijke ervaring met het bijdragen aan één openbare GitHub-repository.
Ik ben onderdeel van een aantal forums met betrekking tot de ontwikkelaarsgemeenschap. Veel van hen. Op een dag was er een man die een thread maakte met de vermelding:
“Ik heb een GitHub-repository gemaakt met een doel om 999 C-programmas voor beginners te bieden. Ik heb er 7 gemaakt. 992 meer te gaan. “
Dit klonk me erg interessant. Ik klikte snel op zijn repo-link en verkende 7 programmas die hij had gemaakt. Ze waren echt beginnersvriendelijk en pasten perfect bij zijn doel, om mensen te helpen die beginnen met programmeren in C.
Ik splitste snel zijn GitHub-repository op. Ik heb die opslagplaats op mijn lokale computer gekloond. En creëerde een beginnersvriendelijk C-programma met oplossing, volgens het formaat en de structuur die de man volgde voor andere 7 programmas. Heeft de wijzigingen naar de gevorkte opslagplaats gepusht. Maakte een pull-request (PR) naar de originele repository van die gast met een bericht “een ander beginnersvriendelijk C-programma met oplossing toegevoegd”. Die man keurde mijn PR-verzoek goed en voegde wijzigingen samen in zijn master-branch. De volgende dag deed ik hetzelfde met nog een programma.
Daar gaat het. Mijn open-source bijdrage. Ja. Ik moest code schrijven voor deze bijdrage. Het was echter totaal iets anders dan wat ik me eerder voorstelde. Ik heb geen bug of probleem op geavanceerd niveau opgelost in een beroemde bibliotheek of framework. Ik dacht net aan een beginnersvriendelijk programma dat we op de universiteit hebben geleerd, er een oplossing voor heeft geboden en dat is het.
Je kunt een GitHub-repository op je eigen profiel maken op basis van deze ideeën:
- beste bronnen om front-end ontwikkeling te leren (vermeld artikellinks, boeken, videobronnen, gratis cursussen enz.)
- beste scripts voor taakautomatisering in python (bronscripts online en verzamel ze op één plaats , geef eer aan oorspronkelijke auteurs)
- overzicht van verschillende databases (leer mensen over bekende databases zoals MySQL, MongoDB, SQL Server, Oracle enz. Vertel hen waarom ze de ene boven de andere zouden moeten selecteren.)
- of iets waarvan je denkt dat het leerzaam is voor het hele internet
Als je van ReactJS houdt, voel je dan vrij om bij te dragen aan mijn GitHub-repository: UnnitMetaliya / 99-reactjs-project-ideas
Ik werk aan het leveren van 99 eenvoudige projectideeën die mensen kunnen ontwikkelen met de ReactJS-bibliotheek. Heb een idee? Super goed. Fork mijn repository. Maak een map voor uw idee volgens dezelfde structuur als de # 001-map. Push het naar de repository die je hebt geforked. Maak een pull request naar mijn master branch. En dat is alles.
tl; dr >> Bijdragen aan open-source op GitHub vereist niet noodzakelijkerwijs het schrijven van code. Er zijn honderden verschillende manieren om bij te dragen aan open-source anders dan het schrijven van code.
Antwoord
Ten eerste is open source software software die vrij kan worden gebruikt, gewijzigd en gedeeld (in een gewijzigde of ongewijzigde vorm) door iedereen.
Omdat dit de theoretische betekenis is van wat open source is, sluit de diepere betekenis aan bij de visie om dingen transparant te houden voor de gebruiker, zodat de gebruiker begrijpt volledig wat er aan de hand is en heeft daarom een kans om een verschil te maken door de functie toe te voegen die hij / zij meer wil van de specifieke software / hardware.
De eerste stap in open source is het identificeren van de organisatie die je bevalt of wiens visie overeenkomt met wat je de wereld echt terug wilt geven. Elk van deze organisaties heeft zijn eigen visie en missie om iets terug te geven aan mensen, ik draag bij aan Mozilla vanwege hun visie en hun missie waar ik echt in geloof, mensen een internet zonder grenzen te geven en het web vrij te houden. / p>
Onze missie is om openheid, innovatie en kansen op het web te promoten.
Bij Mozilla zijn we een wereldwijde gemeenschap van technologen, denkers en bouwers die samenwerken om het internet levend en toegankelijk, zodat mensen over de hele wereld geïnformeerd kunnen worden over bijdragers en makers van het web. Wij geloven dat deze menselijke samenwerking op een open platform essentieel is voor individuele groei en onze collectieve toekomst.
Er zijn ook veel andere organisaties, zoals Fedora, Ubuntu, GCC, Python, OpenCV, KDE. Veel mensen in deze organisaties werken uitsluitend omdat de missie / visie aansluit bij hun denken of hoe zij denken dat het beste is om iets terug te geven aan de samenleving als geheel.
Na het kiezen van de organisatie zal er meerdere projecten die voor u beschikbaar zijn om uit te kiezen of waaraan u kunt bijdragen, Firefox is een van de belangrijkste projecten van Mozilla, er zijn ook veel andere projecten zoals MDN (Mozilla Developer Network), Firefox OS, Persona enz., De organisatie van uw keuze kan een webpagina / wikipagina hebben die is gewijd aan hoe u aan de slag kunt gaan met bijdragen. Bij Mozilla hebben we iets genaamd Wat kan ik doen voor Mozilla [1]. Het helpt mensen duidelijk naar hun interesses te leiden op basis van de programmeertaal van hun keuze etc .., dus zoek zoiets dat je op weg kan helpen, de volgende stap is om een paar bugs te zoeken, de vereiste broncode te nemen en het systeem op je specifieke ontwikkelmachine te bouwen en tenslotte een patch te sturen.
Het belangrijkste verschil Tussen het werken met de codebasis van een open source-organisatie en de codebase die wordt gebruikt tijdens de universitaire Datastructuren of vergelijkbare cursussen zit de grootte van de codebasis. Uitzoeken waar welke inhoud zich bevindt en welk codesegment doet wat de grootste uitdaging is. In eerste instantie zou het ook een uitdaging kunnen zijn om de codebasis te begrijpen, ook al ken je de programmeertaal misschien, maar de pijn is het waard. Je zult geweldige mensen hebben die je bij het proces kunnen helpen die misschien een beetje van hun vrije tijd nemen om je te helpen als je de goede kant op gaat en weet wat je precies doet.
Ja, om bij te dragen aan open source projecten moet je een gedegen kennis hebben van ten minste één programmeertaal voor het geval je bereid bent om een bijdrage te leveren aan de codebasis. Behalve dit, behoorlijk goede leesvaardigheid en geduld om de documentatie voor elk project door te lezen, een van de vele versiecontrolesystemen te begrijpen, of het nu git of mercurial of svn is.
Voor zover ik weet, is er ” s niets dat een correcte benadering wordt genoemd, soms komt een open source-bijdrage van een individu binnen omdat ze de specifieke software gebruiken en hun leven wordt gemakkelijker door een specifieke functie in deze software te integreren, dus integreren ze het en dragen het bij aan de oorspronkelijke code basis, verschillende mensen hebben verschillende vereisten en passen de software aan hun behoefte aan, sommigen dragen hun wijzigingen terug in de hoop dat het iemand anders zal helpen, anderen geven er de voorkeur aan het als een afzonderlijk afzonderlijk project op te nemen. De beste manier om te beginnen is door het project te kiezen en er gepassioneerd over te zijn.
bijv.Tor-browser is een project afgeleid van Firefox, het is aangepast om anonimiteit te bieden en geconverteerd naar een zelfstandig project.
Wat je ook kiest, het moet iets zijn dat je op de een of andere manier gebruikt, op die manier weet je het wat je aan het doen bent en je weet ook hoe de software werkt, zodat het gemakkelijker wordt om de werking van de code te correleren met de daadwerkelijke werking.
Een paar suggesties van mijn kant wanneer je de code binnengaat open source bijdragewereld zou zijn
- Beginnen met het gebruik van op Linux / Unix gebaseerde systemen.
- Blijf bij de terminal en geniet van het werken vanaf daar.
- Ken basis commandoregel dingen zoals, man, grep en voor elk ander commando heb je een man-bestand. (man file = manual, als je wilt weten hoe je een specifiek commando moet gebruiken, zeg grep, doe dan gewoon `man grep`)
- Een goede editor; vim v / s emacs oorlog is er altijd tussen ontwikkelaars, maar je zou ook kunnen gaan met Sublime Text / Notepad ++
Bijdragen aan open source is een geweldig gevoel als ontwikkelaar omdat je weet dat die kleine regels code die je hebt geschreven, hebben een impact op de levens van miljoenen mensen die de software gebruiken.
Iets anders dat in deze tijd naar boven zal komen zijn fanboys, ik zal een ervaring met jullie delen , omdat we een bijdrage leveren aan Mozilla, is de vraag waar wij als evangelisten [2] voor staan, koppige mensen die zeggen: “Ik gebruik Chrome! Ik hou niet van Firefox”
Cool, daar hebben we absoluut geen probleem mee. We bouwen Firefox alleen omdat we dat graag doen en het belangrijkste doel hier is niet “welke browser je echt gebruikt, we zouden het geweldig vinden als je Firefox zou gebruiken, maar het belangrijkste doel is om een open web te hebben.
Een web dat gratis, open, veilig, privé en vooral een web is dat van ons is.
Ik kijk ernaar uit je te zien bij de Mozilla-community.
[1] Wat kan ik doen voor Mozilla [2] Task force / Evangelism