Jamais l’open source n’a été aussi en vogue que ces dernières années. Non seulement de grandes boîtes tech telles que Facebook, Airbnb, Microsoft ou Google se sont mises à activement rendre disponible des librairies en open source, contribuer à l’open source est également devenu un facteur différenciant lors des entretiens d’embauche.
Qu’est-ce que l’open source et pourquoi devrais-je m’en soucier ?
En tant que développeur en début de carrière, les compétences que vous cherchez à apprendre sont les bonnes pratiques de programmation. Pour cela vous comptez sur votre employeur et vos collègues. Vous espérez pouvoir avoir des formations et que les développeurs seniors de votre équipe pourront passer du temps avec vous pour progresser.
Sauf que le plus dur pour un développeur qui commence sa carrière c’est justement de trouver ce premier emploi. De plus, rien ne garanti, qu’après l’avoir trouvé, vous serez dans un environnement propice à l’apprentissage.
Contribuer à des projets open source est un excellent moyen d’engranger cette première expérience et d’avoir l’attention de développeurs seniors pour vous accompagner.
Contribuer à l’open source pour progresser
Se familiariser aux bonnes pratiques
Pour qu’un projet open source ait une chance de germer, il a besoin d’être compréhensible et être « developer friendly ». En effet, si le ou les créateurs espèrent pouvoir voir leur librairie adoptée et enrichie par la communauté, ils doivent s’assurer que l’environnement est propice aux contributions extérieures. C’est pourquoi, les projets open source rassemblent souvent les bonnes pratiques de développement.
La couverture de test est souvent très bonne et vous ne pourrez pas rajouter une fonctionnalité à un code open source sans avoir rédigé les tests automatisés qui couvrent cette feature.
Votre code sera revu par les contributeurs du projet et si votre code ne respecte pas les standards fixés par les fondateurs du projet, il ne passera pas la code review.
Avoir les feedbacks de développeurs seniors
C’est lors de cette revue de code que vous apprendrez le plus. En effet, il y a peu de chances que votre contribution soit bonne du premier coup. En revanche, les contributeurs de projets open source sont le plus souvent bienveillants. S’ils voient un nouveau contributeur, même débutant, qui souhaite s’investir dans leur projet, ils passeront du temps à vous former et à vous expliquer les notions qui vous manquent.
Avoir une histoire hors du commun à raconter en entretien d’embauche
Certaines boîtes tech font de la contribution opensource une obligation pour rejoindre l’entreprise. En pratique c’est encore très peu le cas en France. En revanche, c’est un excellent point différenciant que vous pourrez aborder lors de l’entretien.
Imaginez un développeur qui a eu 3 ans d’expérience dans un centre de service où il n’a pas respecté les bonnes pratiques de tests et de clean code. De l’autre côté, un développeur débutant, issu d’un bootcamp de reconversion qui a passé plusieurs mois à contribuer à un projet opensource assez populaire dans la communauté. Je peux vous garantir que votre profil va être pris avec autant de sérieux que le candidat avec trois ans d’expérience
Trouver le temps
Ne pas avoir le temps est simplement ne pas avoir assez envie. Si vous êtes en recherche d’un poste de développeur, contribuer à un projet opensource est une habitude à prendre qui peut payer beaucoup plus que développer votre projet perso.
De plus, vous tirerez les bénéfices de la contribution open source qu’en multipliant les contributions. C’est en voyant votre investissement sur un projet que les contributeurs vont s’investir en vous, pour vous aider à produire une contribution de qualité.
D’autant plus que les contributions open source sont publiquement affichées sur votre Github. Ces commits sont analysés par les recruteurs et par la Core Teams des développeurs de projets open source.
Trouver le projet
Contribuer à l’open source ne se fait pas en saupoudrant du code dans différents projets. Il est plus efficace de vous investir dans un projet et de s’y tenir. Rien ne vous empêche d’ajouter un second projet ou de changer de projet de cœur si vous trouvez un peu plus tard un projet qui vous paraît plus motivant.
Pour trouver le premier projet où contribuer, Google est votre ami. Plusieurs sites ou repos Github répertorient les projets JavaScript ou NodeJS qui sont ouverts aux contributions de débutants.
Au fur et à mesure que vous ferez des recherches sur les projets, n’hésitez pas à regarder sur Github la liste des contributeurs et à suivre ceux qui vous semblent motivés. Vous découvrirez ensuite les projets qu’ils suivent ou auxquels ils contribuent. Cette recherche va vous permettre de découvrir des projets opensource « sous le radar » sur lesquels vous pourriez contribuer.
Un projet intéressant sur lequel contribuer est un repository actif où les contributions s’y font régulièrement (chaque semaine au moins), par plusieurs contributeurs. Évitez les librairies trop populaires telles que React ou Angular, vous risqueriez de vous heurter à trop d’obstacles.
Démarrer ses contributions
Dès que vous aurez identifié le ou les projets sur lesquels vous aimeriez contribuer, commencez par entrer en contact avec les Core contributeurs. Echangez avec eux sur le projet, dites leurs comment vous avez découvert le repository, que vous apprenez le JavaScript et que vous souhaitez contribuer pour progresser. Ils vous diront comment commencer à travailler.
Chaque projet a une façon de fonctionner différente, mais le plus probable est qu’ils aient une documentation sur les contributions. Prenez le temps de la lire et n’ayez pas peur de poser des questions si vous n’avez pas tout compris.
Ensuite il conviendra de demander sur quelle issue travailler avant de commencer à coder. Vous pourrez ensuite cloner le repository, créer votre branche et commencer à coder. Une fois votre code et vos tests terminés, vous devrez sûrement ouvrir une Pull Request afin de faire valider votre code par les autres contributeurs. Ceux-ci vont sûrement vous faire quelques remarques et vous reprendrez votre travail en mettant en pratique ces commentaires.
N’hésitez pas à faire des propositions fonctionnelles autour du projet. Les créateurs aiment que leur projet prenne vie et l’intelligence collective est un excellent moyen de trouver des Features intéressantes. En revanche, souvenez-vous qu’il s’agit du projet de quelqu’un d’autre et vos propositions, tout comme vos Pull Requests, peuvent se faire rejeter.