Est-il mauvais de rejoindre des projets open-source en tant qu'amateur?

17

Je pense depuis environ six mois maintenant que je devrais rejoindre un projet open source iPhone ou iPad pour affiner mes compétences en Objective-C, mais chaque fois que je vais le faire, je vois des milliers de lignes de code sur des projets énormes que je finir par me convaincre que je ne comprendrais jamais. Je pense toujours que mes engagements finiraient par être un tracas pour les administrateurs de projet et les contributeurs plus seniors, donc je recule toujours à la dernière seconde.

Ma question est essentiellement, est-ce un problème quand un programmeur expérimenté intermédiaire rejoint un projet open-source?

esqew
la source
1
La réponse de Macke est plus exhaustive, mais la réponse succincte à votre question enhardie est: non.
Chris Browne
1
@ChrisBrowne: Bon point. J'ai modifié ma réponse pour qu'elle corresponde. :)
Macke

Réponses:

15

Non ce n'est pas.

Si la base de code des projets que vous regardez est trop intimidante, envisagez:

  • Choisir un projet (encore) plus petit avec lequel travailler.
  • Choisissez une tâche plus petite dans le projet:
    • Écrivez un exemple / tutoriel / démo pour quelque chose
    • Mise à jour et correction de la documentation (tous les projets, OS ou non, ont besoin de meilleurs documents)
    • Correction de nombreux bogues de faible priorité mais faciles à corriger (excellente exposition au code, les développeurs sont généralement satisfaits, à faible risque)
  • Il existe des moyens de contribuer sans valider l'accès à la source principale, tels que:
    • Envoi de correctifs, qui peuvent être commentés.
    • Forker et soumettre des demandes de tirage (voir ci-dessus)
    • Bifurquer et travailler seul, juste pour voir où cela vous mène. Si vous êtes satisfait, demandez aux développeurs de jeter un œil à tout ce que vous avez fait pour voir si cela a du sens.

Pour surmonter votre «peur» de ne pas accepter vos engagements, optez d'abord pour des points sûrs. Cela vous permettra, à vous et à l'équipe de développement, de gagner en confiance dans votre relation et d'apprendre la façon de penser de chacun. Au fur et à mesure que vous vous améliorez (à la fois en compétences, en expérience, en qualité de code et en compréhension de l'équipe de votre projet OS et de sa dynamique), vous serez en mesure de vous attaquer à des tâches plus importantes tout en introduisant moins de tracas.

Cela aide également à demander des points de départ appropriés et à voir ce que l'équipe pourrait trouver approprié pour vous.

À titre d'exemple, j'ai contribué un peu à Buildbot au fil des ans. J'ai commencé à corriger quelques petits problèmes, puis j'ai augmenté la qualité des étapes de la source Mercurial en corrigeant quelques bogues flagrants. Enfin, j'ai réécrit la plupart des pages Web et remplacé le collage html en code par une solution de génération HTML basée sur un modèle. Ce dernier représentait quelques centaines d'engagements en quelques mois de dur labeur.

J'ai également fait du travail sur Mercurial, mais ces gars sont plus pointilleux et la technologie est plus compliquée, donc je n'ai pas encore obtenu de correctifs dans le noyau. J'ai fait quelques rapports de bugs et écrit quelques petites extensions, mais je n'ai rien de plus gros pour l'instant.

J'espère que cela aide.

Macke
la source
+1 pour buildbot - c'est un projet fantastique, avec des mainteneurs très gentils et serviables. Si vous voulez commencer par un bon projet, ça vaut vraiment le coup d'œil.
Nate
qu'en est-il des amateurs complets? Des gens qui ont un faible niveau de programmation et aucune éducation officielle?
Roy
1
@Roy Dans ce cas, je commencerais par foirking et juste bricoler avec la source pour en tirer des leçons. Arriver au point où vous contribuez efficacement prend un peu plus de temps. Vous êtes probablement mieux de commencer par suivre vous-même de bons tutoriels (pour le projet et ses frameworks / bibliothèques) et de développer vos connaissances afin de savoir où et comment contribuer. Les mods de jeu (et plugins) peuvent être un excellent intermédiaire entre être seul dans le bac à sable et avoir le niveau de développeurs principaux.
Macke
4

Allez-y. Surveillez les listes de développement pendant un certain temps et présentez-vous lorsque vous vous sentez à l'aise. De nombreux projets ont des tâches plus faciles de correction de bogues ou de documentation que les habitués se feront un plaisir de vous signaler. La plupart des projets sont assez conviviaux pour les nouvelles mains, et ils vous permettront de vous mettre à jour assez rapidement pour que vous puissiez devenir un véritable atout pour le projet.

Après un certain temps, vous serez familiarisé avec la structure et les parties les plus importantes de la base de code. Apprendre à comprendre du code comme celui-ci est une partie très importante de la programmation, et l'open source est un excellent moyen de l'apprendre.

Fabio Fracassi
la source
2

Fonce. Il y a des tonnes de débutants qui font de même. Le chef de projet peut vous aider à trouver des choses sur lesquelles vous ne pouvez pas travailler. Vous devenez progressivement le reste.

Oh, et ce n'est pas parce que vous ne comprenez pas que le code est bon . J'ai vu un code vraiment horrible là-bas. Certains sont difficiles à comprendre car ils sont mal écrits et rendus beaucoup plus complexes qu'ils ne devraient l'être.

Brian Knoblauch
la source