Dans ce blog, je partagerai mon expérience de mentorat. (TLDR ; une expérience unique et géniale, envoyez-moi un message. Je serais plus qu’heureux de vous aider.
Qu’est-ce que le mentorat LFX ?
Commençons par connaître The Linux Foundation. La Fondation Linux (LF) est une organisation à but non lucratif, qui normalise le développement du noyau Linux et promeut également des projets open source tels que Kubernetes, GraphQL, Hyperlivre, RISC-V, projet Xen, etc.
Le Linux Foundation Mentorship est un programme géré par LF, qui aide les développeurs possédant les compétences et les ressources nécessaires pour apprendre et contribuer à des projets open source, à travers 3 ou 6 mois de stage. Au cours de cette période, le mentoré est guidé à travers le flux de travail de développement et les méthodologies utilisées par les organisations open source, à travers un projet.
Procédure de sélection
Je suis impliqué dans l’open source depuis un certain temps et j’ai postulé pour le mentorat, mais j’ai été rejeté à chaque fois.
Cette fois aussi, j’ai parcouru les projets et j’ai trouvé un projet particulièrement intéressant. Il s’agissait d’analyser un protocole. Cela m’a attiré l’attention car à cette époque, j’apprenais le réseautage et j’expérimentais beaucoup avec les communications. Alors naturellement, je me suis intéressé. Après avoir lu les détails du projet, je suis allé sur le canal slack du projet pour trouver un mentor. Omid, l’un des ingénieurs fondateurs de Pixie, a eu la gentillesse de répondre à mon message et a demandé un appel rapide.
Je lui ai parlé et lui ai parlé de mon intérêt et de la façon dont j’ai fait un analyseur de protocole filaire Mongo préliminaire en utilisant Node.js comme préparation. Il a semblé satisfait de cela et m’a parlé des prochaines étapes et de l’engagement de temps.
D’autres formalités comprenaient la soumission d’une lettre de motivation et mon CV.
Quelques jours plus tard j’ai ça :
Enfin, après avoir postulé tant de fois, j’ai été sélectionné !!!
Mois 1
J’ai commencé et j’ai été présenté à mon mentor Yaxiong Zhao, un autre ingénieur fondateur de Pixie. Il m’a dit ce que nous allions faire dans les 3 prochains mois. Il m’a fait une démonstration de l’interface utilisateur Pixie et m’a expliqué son fonctionnement, et comment pixie attrape les paquets (indice : eBPF). Et puis m’a envoyé la fiche technique AMQP, et comment elle doit être implémentée en utilisant C++.
Oui, le protocole est passé de Mongo à AMQP et le langage de Node.js à C++. Mais je suppose qu’une qualité de survie très importante de l’industrie est d’être flexible.
Ainsi, au cours du premier mois, j’ai acquis des connaissances théoriques sur les spécifications de câblage AMQP et les ai expérimentées en déployant un serveur RabbitMQ local et en surveillant les paquets à l’aide de Wireshark. Mon mentor a également essayé de m’aider à créer Pixie sur ma machine locale, mais nous avons échoué, même après avoir changé de distribution. Enfin, nous avons pu configurer mon environnement de développement dans un conteneur.
…tout un mois
Mois 2
Au cours de la première moitié de ce mois, j’ai poursuivi mes recherches sur AMQP (apparemment, la mise en œuvre d’un protocole nécessitait beaucoup de lectures approfondies) et j’ai trouvé des analogies avec des protocoles que je connaissais déjà, et j’ai continué à expérimenter manuellement la traduction de paquets.
3ème semaine du mois, il était enfin temps pour moi de commencer à écrire du code. Bon, c’était donc la partie la plus difficile. Ayant des connaissances très limitées en C++, j’ai continué. Mais mon mentor était un ange à ce stade, m’expliquant très patiemment et me dirigeant dans la bonne direction, me faisant comprendre chaque lex requise. J’ai commencé par implémenter une structure de données pour stocker et créer des relations entre les paquets. Après quelques efforts, j’ai finalement fusionné mes relations publiques.
Mois 3
Poursuivant mon travail de code, j’ai commencé à construire un code d’analyseur. Yaxiong a été très patient et serviable pendant cette période, m’envoyant des blogs et des guides et m’expliquant chaque petit doute que j’avais. Grâce à lui, j’ai pu enfin soumettre mon code préliminaire pour l’analyse du code.
Et une dernière chose pour cela était d’écrire des tests. Apprentissage de la bibliothèque de test C++ de Google. Code écrit, poussé.
Conclure le programme
Comme toute bonne chose, cela aussi a pris fin. 12 semaines se sont écoulées – plus vite que vous ne pouvez le penser – Le programme a ouvert un nouveau monde d’open source et m’a fait découvrir de nombreux outils professionnels et l’étiquette. J’apprécie le temps et les efforts que mon mentor a consacrés à ce programme.
Réaliser ce stage était un rêve devenu réalité, esquivant des tonnes de problèmes : internet, collège, préparation au stage, examens, tout. À de nombreux moments du stage, j’étais certain de ne pas pouvoir terminer le projet. mais:
À un moment donné, tout ira vers le sud pour vous… tout ira vers le sud et vous allez dire, c’est ça. C’est ainsi que je termine. Maintenant, vous pouvez soit accepter cela, soit vous mettre au travail. C’est tout ce que c’est. Vous venez de commencer. Vous faites le calcul. Vous résolvez un problème… et vous résolvez le suivant… et puis le suivant. Et si vous résolvez suffisamment de problèmes, vous rentrez chez vous.
– Tail ender, Le Martien.