Ho dato il mio primo contributo open source entro 200 giorni (e anche tu come puoi)

Il 22 dicembre 2016, ho creato un account freeCodeCamp. Il 1 ° luglio 2017, la mia prima richiesta pull è stata fusa in un progetto open source.

Volevo scrivere questo articolo per condividere la mia esperienza con gli altri. Spero che ti mostrerà che contribuire a progetti open source è più facile di quanto pensi.

Perché dovresti contribuire all'open source?

Probabilmente hai sentito che contribuire a è un buon uso del tuo tempo come sviluppatore. Ma nel caso non fossi ancora convinto, ecco due motivi per considerare:

Motivo n. 1: ti aiuterà a trovare un lavoro

Questo è uno dei motivi principali per cui ho deciso di contribuire a un progetto open source. Alcuni sviluppatori senior del mio gruppo di ex studenti universitari mi hanno detto che potrebbe aiutarmi a sembrare più occupabile.

Quando fai un progetto da solo tramite freeCodeCamp o per un corso, sei l'unico che deve approvare il codice. Con un progetto open source, centinaia di migliaia di persone possono usare il codice che scrivi. Quindi c'è una maggiore pressione per scrivere codice pulito e riutilizzabile.

Inoltre, quella comunità di sviluppatori deve accettarlo. Quindi quando accettano il tuo codice, questo ha molto peso, a causa del numero di occhi che lo hanno visto.

Penso che sia sicuro affermare che i contributi open source dicono molto di più ai datori di lavoro rispetto alla maggior parte dei progetti personali.

Motivo n. 2: restituisce alla community

Contribuire a progetti open source ti dà l'opportunità di offrire volontariamente il tuo tempo per migliorare un progetto usato da te e dalla tua comunità. Questo è probabilmente uno degli aspetti più interessanti della programmazione.

Qualcuno crea un progetto e poi lo open-source in modo che il pubblico possa vedere il codice sorgente. Quindi un gruppo di persone che non si conoscono contribuisce al codice. E può migliorare la vita delle persone in tutto il mondo. Non molto altro nel nostro mondo è paragonabile a quello.

Come è stato il processo quando ha contribuito all'open source?

Probabilmente ti starai chiedendo come ho fatto. Innanzitutto, ho controllato le app e i siti Web che usavo regolarmente per vedere se ne esistessero open-source.

Successivamente, ho chiesto ad alcuni dei miei amici più stretti (che ho incontrato nella mia prima coorte Chingu;)) e tutti abbiamo deciso di affrontare la sfida insieme.

Abbiamo deciso su Habitica, un task manager gamified.

L'abbiamo scelto per i seguenti motivi:

  • Lo usiamo tutti i giorni
  • La loro wiki per contribuire è ben scritta
  • Incoraggiano i neofiti a contribuire
  • La loro base di codice è costituita principalmente da Javascript
  • Hanno un gruppo in cui puoi porre domande e chiedere aiuto quando rimani bloccato

Successivamente, abbiamo discusso di ciò che pensavamo fosse il modo migliore per farlo.

Ecco il piano d'azione passo-passo che abbiamo utilizzato:

Passaggio n. 1: trova un "mentore", qualcuno nella community che potrebbe aiutarci se ci perdessimo

Fortunatamente per noi, Habitica ha una fantastica gilda di programmatori chiamata "Aspiring Blacksmiths (Coding for Habitica)". Abbiamo pubblicato nel gruppo e un membro ha accettato di fornirci una guida.

Passaggio 2: trova un problema appropriato per il nostro livello di abilità

Successivamente, abbiamo esaminato le questioni sul repository Habitica Github e abbiamo trovato quelle etichettate come "codifica di medio livello". Abbiamo scelto quattro opzioni, quindi abbiamo chiesto al nostro mentore quale fosse più adatto a noi per il primo contributo. Dopo averne discusso nel nostro gruppo, abbiamo deciso su questo.

Passaggio 3: lavoraci da solo, ma anche attraverso sessioni di programmazione in coppia

La risoluzione del problema è durata due settimane o circa 14-18 ore. Di solito ci lavoravamo da 1 a 4 ore al giorno. Abbiamo trascorso la maggior parte del tempo a capire quali file dovevamo cambiare.

Abbiamo trascorso ore a cercare nella cartella del progetto. Abbiamo cercato termini diversi come "gruppo" e "approvazioni di gruppo" fino a quando non siamo stati in grado di individuare le righe di codice che dovevamo correggere.

Dopo aver trovato i file, abbiamo dovuto affrontare una nuova sfida. Abbiamo dovuto capire come prendere i dati dal database ed essere in grado di chiamarli nel file JSON per essere visualizzati nella pagina "Approvazione attività piani di gruppo".

Abbiamo esaminato gli oggetti nel database e trovato una coppia chiave-valore del tipo di attività con le informazioni di cui avevamo bisogno. Quindi abbiamo dovuto aggiungerlo a un oggetto come proprietà di un oggetto in un file chiamato groupApprovalsController.js. In questo modo potremmo fare riferimento nel file JSON. Siamo stati in grado di capire tutto questo grazie alla nostra esperienza con JavaScript su freeCodeCamp, il corso Bootcamp per gli sviluppatori Web di Colt Steele e leggendo You Don't Know JS.

La prossima sfida che abbiamo dovuto affrontare è stata quella di rendere il markdown e le emoji. Il progetto utilizza un pacchetto npm sviluppato da uno dei principali programmatori del progetto, quindi i documenti erano facili da seguire. Abbiamo esaminato le pagine di giada simili e riconosciuto i modelli nel modo in cui è stato reso il markdown.

Una volta abbiamo conosciuto la sintassi per il markdown e la pagina a cui dovevamo aggiungerla. Abbiamo pensato che il resto sarebbe stato facile. Ma non lo era. Abbiamo faticato a capire come passare il testo specifico di cui avevamo bisogno.

Dopo ore di frustrazione e molti tentativi falliti, finalmente l'abbiamo capito. Abbiamo dovuto passare un argomento di "approvazione" in una funzione denominata approvazioneTitle e impostare il testo uguale a quello. La linea che abbiamo finito per scrivere era:

markdown (testo = "ApprovationTitle (approvazione)")

Ovviamente pensavamo di aver finito ... fino a quando non abbiamo notato che il nuovo codice ha spostato la posizione del pulsante "Approva" sulla pagina.

Una soluzione ha aperto un nuovo problema, ma abbiamo accettato la nuova sfida e abbiamo perseverato. Dopo aver scavato, Rachel è stata in grado di trovare una correzione Bootstrap che la faceva sembrare un po 'meglio.

Passaggio n. 4: inviare una richiesta pull (PR) per sollecitare feedback

La nostra soluzione non era perfetta, ma risolveva la maggior parte dei problemi e presentava solo alcuni piccoli problemi di formattazione. Abbiamo chiesto aiuto nella Gilda dei Fabbri Aspiranti. Ci hanno consigliato di inviare una richiesta pull per ricevere feedback. Ne abbiamo inviato uno con le nostre modifiche. Poco dopo, un altro sviluppatore ha formulato alcuni suggerimenti su come risolvere il problema di formattazione.

Passaggio n. 5: ripulisci il codice e invia un PR finale

Dopo aver ripulito gli impegni e averli organizzati in modo significativo, abbiamo presentato un PR finale.

Passaggio n. 6: festeggia dopo la fusione

Sabato 1 luglio 2017, il nostro PR è stato unito e abbiamo festeggiato.

Cosa ho imparato?

Queste sono le cose principali che ho imparato dal mio primo contributo open source:

  • Come lavorare su codice scritto da altre persone
  • Come lavorare con un altro sviluppatore per correggere un bug
  • Come inviare una richiesta pull
  • Come scrivere messaggi di commit significativi
  • Come contribuire a un progetto open source

Sono grato per tutto l'incoraggiamento che abbiamo ricevuto dalla comunità Habitica. E sono felice di aver potuto lavorare su questo con la mia amica Rachel. Grazie a questa esperienza, sono cresciuto come sviluppatore.

Pensieri finali

Se non conosci la programmazione come me, suggerirei di contribuire a un progetto open source. All'inizio può sembrare spaventoso e alcune parti lo erano sicuramente. Ciò significa che stai andando nella giusta direzione.

Stai uscendo dalla tua zona di comfort e in un territorio inesplorato. Qui è dove avviene il vero apprendimento. Qui è dove sarai sfidato in modi che non avresti potuto immaginare.

Se hai contribuito a un progetto open source che ritieni possa essere utile per i neofiti, commenta con i nomi! :)

Grazie per aver letto! Spero che questo articolo ti sia stato utile. In tal caso, fammi sapere facendo clic su o lasciando un commento qui sotto.