Entretien de la communauté Python avec Kattni Rembor – Real Python

By | juin 8, 2020

Formation gratuite Python

Cette semaine, je suis rejoint par Kattni Rembor, ingénieur créatif chez Adafruit Industries. Le rôle de Kattni est varié, car elle couvre les logiciels embarqués, la conception matérielle, la rédaction technique et le leadership communautaire.

Dans cette interview, nous parlons de son travail de développement de CircuitPython et du rôle que le mentorat a joué dans sa carrière à ce jour. Elle partage également ses conseils pour tous ceux qui souhaitent démarrer leur premier projet matériel à l'aide de CircuitPython.

Ricky: Bienvenue à Real Python, Kattni. Je suis tellement heureux que vous puissiez me rejoindre pour cette interview. Commençons de la même manière que nous le faisons avec tous nos invités, avec la question inévitable: comment avez-vous commencé la programmation et quand avez-vous commencé à utiliser Python?

Kattni Rembor

Kattni: Ces deux questions sont une seule et même chose pour moi. J'ai commencé avec la programmation en juillet 2017 et j'ai commencé avec Python. J'étais au chômage et j'avais beaucoup de temps libre.

J'ai décidé d'essayer d'apprendre Python. J'ai regardé autour de moi et j'ai pensé que le tutoriel officiel était le meilleur endroit pour commencer. Il s'avère qu'il est écrit pour les programmeurs, pas pour les débutants. Je suis arrivé à la section quatre, j'ai heurté un mur et j'ai abandonné.

Le côté matériel a commencé avec une vente sur Raspberry Pi Zero Ws et un de mes amis m'en a donné un. J'ai immédiatement fait la chose que vous faites toujours après avoir acheté un Raspberry Pi, c'est d'acheter tout ce qui va avec votre Raspberry Pi.

J'ai trouvé un accessoire appelé Sense HAT qui avait un tas de capteurs et de LED intégrés, mais il n'était pas conçu pour le Raspberry Pi Zero W, alors j'ai essayé de le recréer avec des capteurs individuels, qui sont rapidement devenus chers.

J'ai découvert quelque chose appelé Circuit Playground Express qui avait également beaucoup de capteurs et de LED intégrés et j'ai pensé que cela fonctionnerait. J'en ai commandé un, n'ayant aucune idée qu'il n'était pas compatible avec le Raspberry Pi. Il s'avère que c'était un microcontrôleur.

Je l'ai ramené à la maison et y ai jeté un coup d'œil, j'ai décidé que c'était complètement trop compliqué et l'ai mis de côté pendant deux semaines avant de finalement le ramasser et le brancher. Je me souviens avoir pensé, je n'écrirai jamais quelque chose d'aussi cool que cette démo. C'était un tourbillon arc-en-ciel sur les LED qui jouait un ton pour chaque LED qui s'allumait.

J'ai cherché ce que je pouvais faire avec le Circuit Playground Express. Il y avait trois options. Arduino est passé juste au-dessus de ma tête, et je n'avais absolument aucune envie d'essayer de l'apprendre. MakeCode était juste assez simple pour être frustrant. J'ai trouvé une seule mention de quelque chose appelé CircuitPython et j'ai pensé: Hé, j'essaie d'apprendre Python – c'est parfait!

J'ai trouvé une vidéo Adafruit sur la mise en route, je l'ai installée et en très peu de temps, j'ai eu une LED clignotante. Aussi simple que cela puisse paraître, rien de ce que j'avais fait avec Python jusqu'à ce moment-là ne m'a autant accroché qu'à ce moment-là. Pour la première fois depuis que j'ai essayé d'apprendre Python, j'ai ressenti un lien avec ce que je faisais. J'avais trouvé ma passion.

Ricky: Les microcontrôleurs d'Adafruit sont réputés intégrés à CircuitPython. Pour ceux qui ne connaissent pas CircuitPython, en quoi est-ce différent des autres microcontrôleurs? Et quel impact cela a-t-il eu sur la façon dont vous enseignez dans les ateliers et avec les tutoriels Learn d'Adafruit?

Kattni: La différence dépend des microcontrôleurs auxquels vous faites référence. Arduino est essentiellement C ++, utilise souvent un IDE et nécessite d'être compilé avant de pouvoir le charger sur une carte. MicroPython, bien qu'une version de Python, nécessite des étapes supplémentaires compliquées pour commencer.

Avec CircuitPython, vous branchez la carte sur USB, et elle apparaît comme un lecteur USB. Vous ouvrez un code.py fichier en utilisant votre éditeur Python préféré et commencez à écrire du code. Dès que vous l'enregistrez sur la carte, CircuitPython recharge et exécute le code.

Vous bénéficiez d'une gratification immédiate, mais surtout, d'une itération rapide sur votre code. C'est l'expérience par excellence de CircuitPython, et la capacité est une condition pour qu'un microcontrôleur soit considéré comme officiellement compatible avec CircuitPython.

Nous nous concentrons sur la première expérience d'un utilisateur avec CircuitPython – les cinq premières minutes. Il est particulièrement important pour nous que cette expérience soit positive et nous avons déployé beaucoup d’efforts pour garantir que ce soit le cas.

Quand quelqu'un peut prendre un microcontrôleur et avoir une LED clignotante au cours de cette période de cinq minutes, c'est non seulement incroyablement stimulant, mais également satisfaisant. C’est ce qui fait qu’un nouvel utilisateur décide de continuer avec CircuitPython, et je pense que nous avons réussi à créer cette expérience.

En termes d'instructions de didacticiels, l'expérience CircuitPython a créé une situation où je n'ai pas à dépenser la moitié de mon didacticiel pour expliquer comment configurer ou exiger des participants qu'ils installent beaucoup de logiciels superflus. Je leur donne un microcontrôleur, je leur fais ouvrir un éditeur et je peux immédiatement commencer à parcourir des exemples de code pratiques.

Pour la plupart, cela fonctionne simplement. Je peux mieux utiliser le temps dont je dispose en étant en mesure de consacrer plus de temps aux concepts et au contenu. Je suis également en mesure de présenter le même tutoriel aux personnes matérielles qui ne connaissent peut-être pas Python que je présente aux personnes Python qui ne connaissent peut-être pas le matériel.

Quel que soit le public, les retours sont toujours positifs. CircuitPython relie la programmation et l'électronique d'une manière accessible à un large éventail de personnes.

En ce qui concerne les didacticiels Adafruit Learn, j'ai écrit le guide principal de mise en route de CircuitPython. Tous les autres guides CircuitPython peuvent se référer au guide de mise en route, ce qui signifie que les auteurs peuvent accéder directement au contenu du projet ou du didacticiel et n'ont pas nécessairement à expliquer les bases.

Cela signifie également que nous avons un endroit unique où nous pouvons référer toute personne qui vient à nous et qui souhaite démarrer avec CircuitPython, et nous saurons qu’elle obtient les informations dont elle a besoin.

Ricky: De nombreux lecteurs de Real Python sauront déjà programmer en Python. Mais ils n'ont peut-être jamais envisagé de prendre un projet parallèle avec des microcontrôleurs. Quels conseils donneriez-vous à quiconque s'y lance pour la première fois?

Kattni: Entrez. N'hésitez pas. Reprendre l'électronique peut être intimidant, mais au final, il utilise Python pour manipuler le monde physique. Si vous connaissez déjà Python, CircuitPython aura une sensation familière.

La différence est une question de compréhension de la façon de faire la configuration appropriée dans le code pour interagir avec le matériel. C'est là qu'interviennent les guides et tutoriels Adafruit Learn, et il y en a beaucoup parmi lesquels choisir. Trouvez un projet qui vous parle et foncez.

Si vous cherchez un endroit précis pour commencer, le Circuit Playground Express et sa grande sœur, le Circuit Playground Bluefruit, sont des microcontrôleurs avec un tas de capteurs, de LED et d'entrées intégrées. La bibliothèque Adafruit CircuitPython Circuit Playground fait tout le configuration pour vous dans les coulisses, afin que vous puissiez commencer à créer un projet sans vous soucier de savoir comment communiquer avec une LED ou un bouton.

La combinaison de ce matériel et de cette bibliothèque vous permet de commencer à comprendre l'interaction entre le code et le matériel sans avoir besoin de connaissances en électronique ou de connaissances en électronique. Vous pouvez gagner la confiance en étant capable de faire de vos idées une réalité facilement, puis de passer à des projets plus complexes au fur et à mesure de votre progression.

Ricky: Quel a été votre projet préféré jusqu'à présent? Qu'est-ce qui fait que celui-ci se démarque de tous les autres?

Kattni: C'est une question difficile, mais la réflexion continue de me ramener au premier projet que j'ai jamais fait, qui était un piano lumineux à touches capacitives. Finalement, j'ai ajouté des limes clés – les fruits sont capacitifs! – et j'ai publié un guide intitulé Piano in the Key of Lime.

Au centre du projet se trouvait le premier Circuit Playground Express que j'ai commandé, et c'était apparemment le premier morceau de CircuitPython que j'ai écrit. Cela m'a également amené à construire un studio photo sur caisson lumineux, exécutant Python et utilisant le premier Raspberry Pi que j'ai reçu, pour prendre des photos pour le guide.

Il se démarque pour plusieurs raisons. La raison pour laquelle j'ai commencé en premier lieu était que le conseil d'administration était si nouveau à l'époque qu'il y avait très peu de documentation. Je me sentais obligé de créer un projet que je pourrais partager avec d'autres qui cherchaient à démarrer. J'ai demandé à rédiger un guide d'apprentissage pour documenter mon projet pour Adafruit, et j'ai été approuvé.

Ce projet m'a amené à écrire la bibliothèque Circuit Playground, qui était ma première véritable contribution à CircuitPython. La bibliothèque avait les trois fonctionnalités les plus simples du Circuit Playground Express, et il a été suggéré d'en ajouter plus.

Je pensais que la suggestion était risible. Je n'avais aucune expérience en électronique ou en programmation, mais quelques semaines après avoir choisi les deux, j'avais soumis ma première demande d'extraction pour ajouter une fonctionnalité à la bibliothèque.

Au moment où j'ai terminé le guide d'apprentissage du projet un mois plus tard, j'avais implémenté la plupart des fonctionnalités de l'Express et raccourci mon code de projet d'origine de quatre-vingt-dix lignes à environ quarante-cinq. J'avais créé quelque chose que d'autres pourraient utiliser pour rendre leur expérience CircuitPython plus simple et meilleure. C'était une sensation incroyable.

C'était aussi la première chose qu'Adafruit m'a jamais payé. Cela m'amènerait finalement à les rejoindre à plein temps.

J'ai commencé à contribuer à CircuitPython parce que j'aimais vraiment le faire, et cela a abouti à une carrière pour moi. Et tout a commencé par trébucher en achetant le Circuit Playground Express et en décidant que j'allais créer ce projet.

Ricky: À PyOhio en 2019, vous avez donné une conférence intitulée «Changer des vies grâce à l'open source, la passion et le mentorat». Comment le mentorat a-t-il joué un rôle dans votre carrière dans la technologie jusqu'à présent? Et comment avez-vous pu payer pour aider les autres en technologie?

Kattni: J'attribue ma carrière entièrement au mentorat. Quand j'ai commencé avec la programmation et l'électronique, j'aurais été content de faire clignoter les LED. Mes mentors m'ont poussé à faire des choses en dehors de ma zone de confort, à élargir mes connaissances et mes compétences.

J'apprends incroyablement vite, mais cela m'amène aussi à entrer rapidement dans des concepts au-delà de mon niveau, ce qui à mon tour me rend facilement frustré. Mes mentors m'ont fourni des conseils et du soutien et m'ont fait avancer alors que j'aurais autrement abandonné.

J'ai appris de mes mentors que je devais me défendre en toutes choses. Ma carrière a commencé parce que j’ai tendu la main et demandé à rejoindre Adafruit, ce que je n’aurais pas pu faire sans encouragements importants. L'une des choses les plus précieuses que j'ai apprises est que le mentorat peut venir de n'importe où, et il est important de rester ouvert à toutes les possibilités, y compris les amis.

La chose la plus étonnante que j'ai réussi à faire est d'aider les autres à réaliser leurs rêves. Il y a trois personnes qui travaillent avec moi qui attribuent l'adhésion à Adafruit, au moins en partie, aux conseils de moi. Si vous m'aviez demandé avant que cela se produise, si je pouvais être un mentor, je vous aurais dit: «Non, je n'ai rien d'utile à offrir.»

Il s'avère que quel que soit votre niveau de compétence, vous avez une histoire à partager. Je ne suis pas un programmeur expérimenté, mais j'ai réussi à naviguer en apprenant quelque chose de complètement nouveau et en trouvant une carrière. Ces compétences méritent d'être partagées. Parfois, la chose la plus importante que vous puissiez faire en tant que mentor est simplement de vous soutenir et de l'encourager.

Le fait est que vous n'avez pas besoin d'être un expert dans votre domaine pour être un mentor. Il vous suffit de partager votre expérience. Peu importe qui vous êtes ou où vous en êtes dans votre carrière, vous avez vécu quelque chose que quelqu'un d'autre devra affronter, et il bénéficiera des connaissances que vous avez acquises à la fois en cas de succès et d'échecs.

Le partage des échecs en particulier est particulièrement important, car il peut montrer à quelqu'un qu'il n'est pas seul et qu'il est possible d'échouer, puis de continuer à réussir. Partagez tout ce que vous pouvez avec qui vous le pouvez et vous trouverez quelqu'un qui tirera profit de votre expérience.

Ricky: Maintenant pour mes dernières questions. Que faites-vous d'autre pendant votre temps libre? Quels autres hobbies et intérêts avez-vous en dehors de Python et de la programmation?

Kattni: Je n'ai pas l'impression d'avoir beaucoup de temps libre, mais malgré tout, la situation actuelle a entraîné beaucoup de changements dans ce que je fais de mon temps. Le fait de ne pas pouvoir quitter la maison, sauf pour des voyages essentiels, a été très contraignant.

Je suis profondément intéressé par la photographie, et cela fait un moment que je n'ai pas pu sortir et le faire. La dernière fois que j'ai pu, j'ai visité un magnifique parc fédéral. Inutile de dire que je suis impatient de pouvoir à nouveau explorer de beaux endroits et ramener des photos incroyables à la maison.

Le revers de la médaille est que le fait de ne pas pouvoir quitter la maison m'a également amené à prendre des choses qui ne me dérangent généralement pas, comme préparer le dîner tous les jours. J'ai toujours apprécié ma nourriture. Cependant, je vais souvent opter pour des plats à emporter ou des options simples. Depuis que tout a changé, je prépare des repas plus impliqués.

J'ai même fait des efforts pour adapter des recettes compliquées à mes goûts. Ce soir, c'était un bifteck de flanc de gingembre-soja et une courge musquée rôtie. Ce n’est pas toujours aussi chic, je suis aussi un grand fan de sandwichs au petit déjeuner sur des bagels frais. Quoi qu'il en soit, l'heure du dîner est devenue quelque chose qui vaut la peine d'être consacré.

Le python et la programmation sont devenus une partie énorme de ma vie, et cela l'a conduit à dériver également dans mes hobbies. Je reconstruis actuellement mon studio photo de caisson lumineux de table dans ma deuxième maison, et cette fois je remplace le Raspberry Pi et Python par un microcontrôleur Feather nRF52840 et CircuitPython.

J'essaie également de le documenter, ce que j'ai négligé de faire la première fois. C'est un remake du deuxième projet de programmation et d'électronique que j'ai jamais construit, donc il m'est proche et cher. Avec un peu de chance, je pourrai éventuellement rassembler quelque chose pour le partager.


Merci de vous joindre à moi, Kattni. C'était génial d'entendre vos expériences et vos conseils.

Si vous souhaitez contacter Kattni, vous pouvez la trouver sur Twitter. Et si vous cherchez à vous familiariser avec CircuitPython et le matériel pour la première fois, les didacticiels Adafruit seraient un excellent point de départ. Vous pouvez également en savoir plus sur CircuitPython dans notre interview Real Python Podcast avec Thea Flowers.

Comme toujours, s'il y a quelqu'un dans la communauté Python que vous aimeriez que j'interviewe pour un prochain article dans la communauté, laissez un commentaire ci-dessous ou contactez-moi sur Twitter.

Bon codage!