È male unirsi a progetti open source come dilettante?


17

Ho pensato per circa sei mesi che avrei dovuto unirmi a un progetto open source per iPhone o iPad per affinare le mie capacità in Objective-C, ma ogni volta che vado a farlo vedo migliaia di righe di codice su grandi progetti che finisco per convincermi che non avrei mai capito. Penso sempre che i miei impegni finiscano per essere una seccatura per gli amministratori di progetto e per i collaboratori più anziani, quindi torno sempre all'ultimo secondo.

La mia domanda è essenzialmente: è una seccatura quando un programmatore con esperienza intermedia si unisce a un progetto open source?


1
La risposta di Macke è più esaustiva, ma la risposta sintetica alla tua domanda incoraggiata è: no.
Chris Browne,

1
@ChrisBrowne: buon punto. Ho modificato la mia risposta per abbinare. :)
Macke,

Risposte:


15

No non lo è.

Se la base di codice dei progetti che guardi è troppo scoraggiante, considera:

  • Scegliere un progetto (anche) più piccolo con cui lavorare.
  • Scegli un'attività più piccola all'interno del progetto:
    • Scrivi un esempio / tutorial / demo per qualcosa
    • Aggiorna e correggi la documentazione (tutti i progetti, OS o no, necessitano di documenti migliori)
    • Correzione di molti bug a bassa priorità ma facili da correggere (ottima esposizione al codice, gli sviluppatori di solito sono felici, a basso rischio)
  • Esistono modi per contribuire senza impegnare l'accesso alla fonte principale, come ad esempio:
    • Invio di patch, che possono essere commentate.
    • Forking e invio richieste pull (vedi sopra)
    • Biforcarsi e lavorare da soli, solo per vedere dove ti porta. Se sei felice, chiedi agli sviluppatori di dare un'occhiata a tutto ciò che hai fatto per vedere se ha senso.

Per superare la tua "paura" di non accettare i tuoi impegni, cerca inizialmente punti sicuri. Ciò consentirà a te e al team di sviluppo di acquisire fiducia nella relazione e di apprendere il modo di pensare reciproco. Man mano che migliorerai (sia in termini di abilità, esperienza, qualità del codice e comprensione del team del tuo progetto OS sia delle sue dinamiche) sarai in grado di affrontare compiti più grandi introducendo meno problemi.

Aiuta anche a chiedere punti di partenza adeguati e vedere cosa la squadra potrebbe trovare adatta a te.

Ad esempio, ho contribuito un po 'a Buildbot nel corso degli anni. Ho iniziato a risolvere solo alcuni piccoli problemi, quindi ho migliorato la qualità dei passaggi della fonte Mercurial risolvendo alcuni bug evidenti. Infine, ho riscritto la maggior parte delle pagine Web e ho scambiato il codice HTML incollato in una soluzione di generazione HTML basata su modelli. Quest'ultimo è stato qualche centinaio di impegni per alcuni mesi di duro lavoro.

Ho anche fatto un po 'di lavoro su Mercurial, ma quei ragazzi sono più esigenti e la tecnologia è più complicata, quindi non ho ancora ottenuto alcuna correzione nel nucleo. Ho fatto alcune segnalazioni di bug e scritto alcune piccole estensioni, ma al momento non ho ottenuto nulla di più grande.

Spero che sia d'aiuto.


+1 per buildbot: è un progetto fantastico, con manutentori molto simpatici e disponibili. Se vuoi iniziare un buon progetto, vale sicuramente la pena dare un'occhiata.
Nate,

che dire di dilettanti completi? Persone che hanno un basso livello di programmazione e nessuna istruzione ufficiale?
Roy,

1
@Roy In quel caso, inizierei a guardare in giro e ad armeggiare con la fonte per imparare da esso. Arrivare al punto in cui contribuisci in modo efficace richiede un po 'più di tempo. Probabilmente è meglio iniziare seguendo alcuni buoni tutorial da soli (per il progetto ed i suoi quadri / librerie) e costruire le tue conoscenze in modo da sapere dove e come contribuire. Le mod di gioco (e plug-in) possono essere un eccellente mezzo tra l'essere soli nella sandbox e avere il livello di sviluppatori core.
Macke,

4

Entra. Controlla gli elenchi di sviluppo per un po 'e presentati quando ti senti a tuo agio. Molti progetti hanno alcuni lavori più facili nella correzione di errori o nella documentazione che i clienti abituali saranno felici di indicarti. La maggior parte dei progetti sono abbastanza amichevoli per le nuove mani e ti porteranno a grattare abbastanza velocemente da poter diventare una vera risorsa per il progetto.

Dopo un po 'avrai familiarità con la struttura e le parti più importanti della base di codice. Imparare a comprendere un codice del genere è una parte molto importante della programmazione e l'open source è un ottimo modo per impararlo.


2

Fallo. Ci sono tonnellate di principianti che fanno lo stesso. Il responsabile del progetto può aiutarti a trovare cose su cui lavorare che non sono fuori dalla tua portata. A poco a poco cresci nel resto.

Oh, e solo perché non capisci il codice non significa che sia buono . Ho visto un codice davvero orribile là fuori. Alcuni di questi sono difficili da capire perché sono scritti male e resi molto più complessi di quanto dovrebbero essere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.