Je viens de commencer à travailler il y a un an et je souhaite rejoindre un projet open source pour les mêmes raisons que quiconque: m'aider à créer quelque chose d'utile et à développer davantage mes compétences.
Mon problème est que je ne sais pas comment trouver un projet dans lequel je m'intégrerai.
Comment trouver un projet convivial pour les débutants? Quels attributs devrais-je rechercher? Quels sont les signes avant-coureurs qu'un projet pourrait ne pas convenir? Existe-t-il des outils permettant de mettre en correspondance des personnes avec des projets open source?
Il y a une question similaire ici , mais cette question concerne l'emploi et se limite à PHP / Drupal.
Réponses:
Ma première contribution open source était pour une bibliothèque que j'avais déjà utilisée (et que j'aurais beaucoup souffert sans) sur un projet déjà payé. Lors de ma première utilisation, j'avais détecté un bogue dans le code. J'ai donc créé un correctif, rejoint le projet et l'ai soumis pour examen.
Environ 8 mois plus tard, alors que j'avais du temps libre, j'ai décidé de rendre (et de développer mes compétences en développement) en contribuant davantage au projet. J'ai donc cloné le référentiel et commencé à me familiariser avec le code base. Après quelques semaines de soumission de correctifs mineurs à la base de code et de surveillance des demandes de fonctionnalités, j'ai sélectionné une demande de fonctionnalité pour ajouter un module assez substantiel au projet.
Comme la génération de nombreux correctifs individuels est assez fastidieuse pour tout développement important, j'ai cloné le référentiel dans une branche de git hub et commencé à extraire du code. Quelques semaines et plusieurs milliers de lignes de code plus tard, le chef de projet et moi-même avons ensuite intégré et testé mes correctifs dans la bibliothèque de manière cohérente avec le reste de la base de code.
C'est un processus inestimable dont j'ai beaucoup appris:
Ce projet particulier était basé sur la génération et le décodage de paquets réseau à tous les niveaux de protocoles réseau. Je suis personnellement intéressé par les réseaux de niveau inférieur. Il était donc formidable de discuter avec un autre développeur partageant les mêmes intérêts et connaissances dans le domaine.
Si vous voulez juste vous mouiller les pieds: trouvez un projet que vous utilisez déjà; cloner le référentiel; et commencez à voir si vous pouvez résoudre certains bugs et / ou ajouter des tests unitaires. Il peut sembler intimidant de regarder le code de quelqu'un d'autre d'un œil neuf, mais c'est une compétence extrêmement précieuse à apprendre. Soumettez des correctifs. Vous pouvez vous attendre à ce que votre code soit examiné de près au début. Ne vous inquiétez pas, c'est une partie normale du processus de gagner la confiance des administrateurs du projet.
Après avoir établi une base de mérite avec les projets, les administrateurs commencent à rechercher plus de responsabilités, telles que proposer de nouvelles fonctionnalités ou demander à être affectés à la mise en œuvre des demandes de fonctionnalités.
Si vous ne trouvez pas un projet déjà existant sur l'un des principaux réseaux de référentiels open source (github, sourceforge, code Google), pensez à une application que vous aimeriez vraiment utiliser qui n'existe pas encore et démarrez le vôtre.
Préparez-vous à être humilié et attendez-vous à ce que le travail soit rejeté au profit de nouvelles révisions. Le mythe selon lequel n'importe qui peut ajouter du code à un projet open source est complètement faux. Il y a toujours un portier entre vous et l'accès Push. Plus votre code est bon, moins il sera scruté à la longue à mesure que vous gagnerez la confiance des administrateurs du projet. Si c'est votre projet, vous serez ce gardien.
Mise à jour:
J'y ai juste réfléchi et je me suis rendu compte que je n'avais pas pris la peine de mentionner le projet auquel ma réponse faisait souvent référence. Pour ceux qui veulent savoir, c'est SharpPcap . Le développeur principal, Chris Morgan, est très professionnel et sur le point. Il fait un sacré travail en gérant le projet et m'a beaucoup appris sur ce qu'il faut pour mûrir un projet de logiciel libre.
En raison de contraintes de temps personnelles, je n'ai pas été en mesure de contribuer au code depuis plus d'un an, mais j'essaie toujours de donner en revenant sur Stack Overflow et en répondant à des questions sur SharpPcap de temps en temps.
la source
Voici ce que je suggère de faire pour trouver votre partenaire idéal:
Si vous utilisez déjà un projet open-source, que vous connaissez et que vous aimez, ce devrait être votre premier candidat à essayer. Penser autrement à ce que vous voulez vous faire en général et la recherche d'un projet dans ce domaine.
Lorsque vous avez trouvé un projet potentiel, ne vous précipitez pas dessus. Essayez de l'utiliser vous-même. Est-ce aussi bon en action qu'il semblait de la description et des critiques? Sinon, ce n'est pas un spectacle complet. c'est peut-être une opportunité pour vous de participer et de vraiment faire la différence. Après tout, personne n’a besoin d’un autre développeur pour obtenir un produit parfait. Mais cela vous donnera une idée importante de votre participation à ce projet, tout en vous permettant d’acquérir une expérience pratique des nouvelles technologies dans un domaine qui vous intéresse.
De même, avant de commencer à investir trop de temps dans le projet et à en apprendre plus sur ses aspects, envisagez de rester dans les listes de diffusion, les forums et même le système de suivi des bogues du projet pendant quelques semaines. Si vous commencez à contribuer régulièrement au projet, vous y passerez beaucoup de temps.
Comprenez-vous: aimez-vous traîner là-bas ou est-ce un problème pour vous? Est-ce que vous avez l'impression que ce projet a une bonne et énergique communauté ou est-ce en train de mourir lentement? Est-ce que les personnes clés ici semblent encourager et encadrer les nouveaux arrivants ou êtes-vous seul?
Suivez ces étapes pour plusieurs projets, potentiellement dans différents domaines, et vous risquez moins de subir la déception qui survient lorsque vous rejoignez une mauvaise équipe. Une telle expérience peut éventuellement vous décourager de le refaire à l'avenir.
Quelques réflexions supplémentaires:
Si le projet qui vous intéresse vraiment est très médiatisé et qu'il compte de nombreux développeurs et activités, vous aurez probablement de la difficulté à y établir une réputation suffisante pour obtenir des droits d'engagement ou un rôle intéressant dans la communauté. Dans ce cas, envisagez de rejoindre un projet dérivé associé avec une visibilité inférieure. Par exemple, au lieu d'essayer de contribuer à jQuery, essayez de trouver le plug-in jQuery qui vous conviendra le mieux. Plus tard, vous pouvez envisager de "monter".
Si vous aimez un projet mais que vous vous sentez intimidé par sa taille, sa complexité ou les exigences de qualité du code, envisagez de commencer par des rôles de support, tels que les tests, la maintenance de la documentation ou la vérification des rapports de bogues. Si vous demandez dans la liste de diffusion du projet le type d’aide dont ils ont le plus besoin en ce moment, ils se feront un plaisir de vous guider. :)
De cette façon, vous apprendrez le projet et vous construirez votre réputation tout en y contribuant davantage que si vous commenciez à soumettre des correctifs non standard qui seraient rejetés plusieurs fois jusqu'à ce qu'ils soient prêts.
Le dernier et le plus important: si vous êtes brûlé à un endroit, passez à autre chose; n'abandonne pas.
J'espère que ça t'as aidé.
la source
Je vous recommande fortement de trouver un projet open source qui suscite votre intérêt et que vous utilisez activement .
La raison est simple: cela fait la différence entre une tâche et un passe-temps.
Regardez sur votre ordinateur. Quel logiciel avez-vous mis sur ce qui est Open Source? Une hypothèse serait Chrome ou Firefox, ou peut-être Open Office ou un client Instant Messenger. Sont-ils parfaits ou y a-t-il juste une petite chose que vous voudriez changer si vous le pouviez?
Si tel est le cas, le moment est venu d'agir.
la source
Je suggérerais de trouver (ou de démarrer) un projet, comme les gens le font depuis des années, commence à utiliser un logiciel Open Source pour faire des choses. Cela peut vous paraître banal, peut-être même trop simplifié. Cependant, il est vraiment difficile de décrire la satisfaction d'utiliser quelque chose, de trouver un bogue, de saisir la source et de la corriger. Ou peut-être le changer pour qu'il fonctionne comme vous le souhaitez.
Aussi, ne vous contentez pas de bidouiller pour vous impliquer. 95% de mes correctifs pour le noyau Linux ne verront jamais le jour, je sais avec certitude que personne ne les voudra sauf moi, et je serais probablement obligé de subir une évaluation psychiatrique si un autre pirate compétent du noyau les voyait jamais. Mais j'apprécie toujours ma mise en œuvre
piglatin_printk()
qui a commencé comme un gag du 1er avril il y a plusieurs années :)Bien que oui, obtenir votre code et votre processus de réflexion devant de nombreuses autres personnes compétentes soit inestimable, vous apprendrez également à communiquer et à collaborer. Un projet solo est un excellent moyen de vous montrer ce qu’il ne faut pas faire. Astuce, il n'y a pas que l'utilisation d'un logiciel de contrôle de version, de listes de diffusion et d'un système de suivi des bogues.
Pour commencer, je vous suggère de creuser autour Ohloh pour trouver des logiciels que vous pourriez être intéressé par l' utilisation , d' abord. Téléchargez-le, construisez-le, jouez avec. Alors va chercher autre chose. Vous finirez par vouloir améliorer quelque chose ou vous vous rendrez compte que vous avez envie de mettre en œuvre quelque chose de complètement différent de ce que vous avez trouvé.
L'autre chose qui aide, c'est de travailler pour une entreprise ouverte et conviviale. Ma société utilise beaucoup Xen, ils n'ont donc aucun problème à ce que je trouve et corrige des bogues intéressants, car nous aurions quand même besoin de le faire. Ils ne voient pas d'inconvénient à ce que les employés participent à des tâches telles que les RFC et les spécifications préliminaires, car nous utiliserons finalement le résultat.
la source
OpenHatch a été créé spécifiquement pour cela.
Citer:
Vous pouvez parcourir les projets par type, technologie, niveau de compétence requis, etc. et trouver celui qui correspond à votre niveau.
la source
Une chose que j'ai souvent remarquée quand il s'agit de ceux qui cherchent à se lancer dans le développement open source, c'est qu'ils sont submergés par la complexité et l'ampleur des grands projets. J'ai rencontré le même problème il y a quelques années et, d'après mon expérience, il est préférable de ne pas se pencher immédiatement sur les projets les plus importants.
Après avoir passé quelque temps à regarder des projets que je pourrais aimer, je me suis rendu compte qu'ils étaient toujours hors de ma portée et j'ai ensuite commencé à travailler sur de très petits projets par moi-même. Je me fais un devoir de publier le code sur Github, qu'il soit vraiment pertinent ou que d'autres personnes commencent à l'utiliser. Éventuellement, les gens pourraient commencer à s'intéresser à ce que vous faites. Même dans le cas contraire, vous gagnerez en confiance et en capacité technique pour vous déplacer lentement vers des projets plus grands et plus populaires.
la source
Il existe un nouveau site Web spécialement conçu pour ce code 52, qui encourage les nouveaux développeurs à s’impliquer dans l’open source en lançant un nouveau projet de logiciel libre chaque semaine.
L'idée est que cela semblera beaucoup moins intimidant pour les personnes qui n'ont jamais été impliquées dans l'open source auparavant et qui, espérons-le, se sentiront plus enclines à s'impliquer également dans d'autres projets de logiciel libre.
la source
Je recommande de lire: http://open-advice.org/ .
Il vise à aider ceux qui créent et maintiennent des communautés et ceux qui ne savent pas trop à quelle communauté ils souhaitent adhérer ou comment le faire.
Sinon, trouvez un projet qui a une mission en résonance avec vous ou créez-en une et contribuez-en à une qui vous est déjà utile.
Bonne chance.
la source
Lorsque j'ai commencé, j'ai cherché en ligne des options et il s'est avéré difficile de trouver quelque chose que vous pouvez mordre à pleines dents en tant que débutant.
Il est difficile de contribuer à certains projets, non pas parce qu’ils sont trop avancés, mais parce que la communauté n’est pas accueillante. Alors, ne vous découragez pas lorsque vous heurtez un mur.
Au cours de la recherche, j'ai décidé de dresser une liste de 10 projets open source que les débutants peuvent commencer à soutenir sans trop de processus stressants. Voici le lien à utiliser:
Dix projets pour les débutants à soutenir et à apprendre
J'espère que vous le trouverez utile et que vous pourrez toujours en ajouter d'autres si vous en trouvez de bons!
la source
Je suggère de démarrer un projet par vous-même sur un sujet qui vous intéresse.
On peut apprendre beaucoup en travaillant sur un projet en général. Il n'est pas nécessaire de voir comment quelqu'un d'autre code pour apprendre à mieux coder. Et parfois, vous verrez réellement ce qu'il ne faut pas faire, car les autres personnes ne sont souvent pas plus expérimentées que vous.
Il est généralement utile de voir le code d'un autre utilisateur, mais vous rencontrerez le code d'autres personnes dans votre propre projet via les bibliothèques et les composants que vous utilisez.
L'expérience vous apprendra quelles sont les bonnes et les mauvaises pratiques.
la source
Je suis propriétaire de projet sur google code et je recherche des contributeurs. (Pourtant, je ne vais pas abuser de cette réponse pour la publicité.) Mon avis pourrait donc vous intéresser.
Vous devrez d’abord déterminer ce qui vous intéresse. Ensuite, développez une expertise dans certains domaines en rapport avec vos intérêts. Trouvez ensuite un projet où votre expertise est demandée et nécessaire.
Plus le projet est petit, moins les contributeurs sont déjà présents, plus les chances de trouver des contributeurs sont grandes et vous pouvez contacter directement les auteurs / responsables du projet. Dites-leur a) quelle est votre expertise b) où vous pensez que cela pourrait être appliqué dans le projet c) ce que vous pensez pouvoir réaliser.
N'oubliez pas: le simple fait de connaître un ou deux langages de programmation traditionnels ne constitue pas une expertise.
la source