Entretien de la communauté Python avec Anthony Shaw – Real Python

By | octobre 7, 2020

Cours Python en ligne

Aujourd'hui, je suis rejoint par Anthony Shaw, vice-président senior mondial pour la transformation des talents et l'innovation chez NTT Ltd. Anthony est également un Vrai Python auteur du tutoriel et a écrit un nouveau livre intitulé Internes CPython.

Dans cette interview, nous abordons une variété de sujets, notamment la sécurité Python, les conseils pour les développeurs débutants et son amour pour la plage. Alors sans plus tarder, accueillons Anthony.

Ricky: Merci de m'avoir rejoint, Anthony. Je suis heureux que vous ayez pu me rejoindre pour cette interview. Je voudrais commencer de la même manière que nous le faisons avec tous nos invités: comment êtes-vous entré dans la programmation et quand avez-vous commencé à utiliser Python?

Anthony Shaw

Anthony: Hé, Ricky. Merci pour l'opportunité de parler au Vrai Python lecteurs!

Je me suis lancé dans la programmation au début des années 90, en apprenant à écrire du code pour des appareils qui n'étaient guère plus que des calculatrices programmables. À l'adolescence, j'ai dépensé la plupart de mes revenus d'une tournée de journaux sur la programmation de livres et de matériel informatique.

Je suis pour la plupart autodidacte, commençant avec certains langages de type BASIC plus anciens et passant à des langages OOP comme C ++ et C #. Je travaillais avec C # .NET depuis environ huit ans et j'ai découvert Python tout en contribuant à un projet open source qui nécessitait la prise en charge d'une API sur laquelle je travaillais au travail.

J'ai appris les bases de Python au cours d'un long week-end en 2010 et j'ai craqué pour la flexibilité du langage dans le travail avec des structures de données fluides et la manière naturelle d'utiliser à la fois la programmation orientée objet et la programmation procédurale.

Ricky: Vous semblez avoir gagné un intérêt pour la sécurité Python ces derniers temps, après avoir écrit un plugin de sécurité PyCharm et une bibliothèque de scripts intersites pour Django. Vous avez même réalisé une vidéo sur l'injection SQL. Comment trouvez-vous votre incursion dans l'infosec, et est-ce un changement permanent d'orientation pour vous dans votre carrière?

Anthony: C’est toujours quelque chose qui m’intéressait. Je pense que cela a commencé quand j'étais à l'université, où tout ce qui était branché sur le réseau local du campus sans pare-feu était mis en échec en 60 secondes.

Je suis devenu ingénieur du support informatique du couloir, réparant les ordinateurs des gens en échange d'une provision de bière. Peu de temps après, j'ai obtenu un emploi rémunéré en tant que support technique dans une société d'hébergement de serveurs locale.

À l'époque où PHP était populaire sur le Web, les serveurs dont le code PHP était extrêmement peu sûr étaient piratés à gauche, à droite et au centre. Si vous voulez être motivé pour apprendre quelque chose à la dure, essayez d'être réveillé à 3 h 00 par un client parce que son serveur a été piraté.

Avec la permission du client, j'aurais accès aux serveurs à distance, découvrirais comment ils ont été piratés, consulter le client et tout réinstaller. L'entreprise ne développait pas le logiciel. Nous hébergions simplement les serveurs. Lorsqu'ils s'habituaient aux botnets (ou pire), cela commencerait vraiment à avoir un impact sur tout le monde.

Pour essayer de minimiser mes interruptions de sommeil pendant mon appel, j'ai écrit une série de scripts qui analysaient les réseaux et recherchaient les vulnérabilités connues et les systèmes couramment non corrigés. Je pourrais alors alerter le client à l'avance.

Vous pouvez désormais acheter des logiciels prêts à l'emploi pour ce faire, mais avec l'accès à des bases de données comme Shodan et à des outils d'exploitation automatisés de vulnérabilité comme Metasploit, toute personne disposant d'une souris et d'un clavier peut cliquer pour accéder à l'accès root.

Cette année, j'ai écrit des outils pour l'analyse de code Python. Cela inclut Wily, un analyseur de complexité du code, et PyCharm Security, un plugin d'analyse de code sécurisé pour PyCharm. Ils partagent tous deux le même objectif, qui est d'améliorer la qualité et la sécurité du code avec le moins de coûts de performance possible.

Comme pour les tests, le moment le plus simple pour corriger un bogue est quand il est en cours d’écriture! PyCharm Security analyse votre code au fur et à mesure que vous tapez dans PyCharm et met en évidence les failles de sécurité que vous pourriez introduire. Il est livré avec un grand site de documentation qui explique pourquoi ces vulnérabilités existent et comment vous pouvez les corriger. Dans les cas où il s'agit d'un changement évident, PyCharm peut effectuer la refactorisation automatiquement.

Ce n’est pas un changement de carrière. Je suis juste intéressé par le sujet et passionné par les développeurs qui apprennent à écrire des logiciels sécurisés et maintenables.

Ricky: Autant ces entretiens portent sur des histoires personnelles de membres de la communauté, j'essaie également de laisser à nos lecteurs quelque chose d'actionnable qu'ils peuvent emporter et appliquer à leur code. Dans cet esprit, quels conseils de sécurité pouvez-vous donner que la plupart des gens ne connaissent peut-être pas?

Anthony: J'ai une liste de dix si vous avez le temps de les lire! Le plus gros pour Python est la désérialisation.

Les deux cornichon bibliothèque et la pyYAML La bibliothèque est livrée avec une logique permettant des procédures de désérialisation personnalisées. Cela signifie qu'un attaquant peut intégrer n'importe quel code Python dans YAML ou des fichiers picklés, y compris du code pour ajouter un utilisateur root à votre serveur de production ou voler votre base de données. Ce sont des problèmes documentés mais pas de notoriété publique.

Ricky:Ce n’est un secret pour personne que vous n’êtes pas seulement un auteur de didacticiels ici à Vrai Python mais aussi l'auteur du nouveau Internes CPython livre. Qu'espérez-vous que les gens retireront du livre lorsqu'ils le liront? Avez-vous appris quelque chose en écrivant qui vous a surpris à propos de la langue ou que vous pensiez déjà maîtriser mais ne l’avez pas fait?

Anthony:Ce que j’espère, c’est que le lecteur pourra prendre quelque chose d’apparemment compliqué comme le compilateur CPython, le décomposer en petits morceaux et le relier à des concepts qu’il connaît ou peut apprendre. Je veux qu'ils non seulement le comprennent, mais qu'ils l'exploitent et qu'ils s'en inspirent. Si une seule personne lit le livre et contribue au projet CPython, ce sera une énorme victoire.

J'ai reçu un certain nombre de messages de lecteurs de l'édition à accès anticipé. Ils ont partagé leur enthousiasme à l'idée de recompiler leur propre compilateur CPython personnalisé et avec certains des exemples du livre. Ce sont des choses qui, de l'avis de nombreux développeurs, dépassent leur niveau de compétence, mais ce n'est pas le cas.

Une grande chose que j'ai apprise en écrivant ce livre est comment toutes les implémentations de parallélisme et de concurrence – et il y en a pas mal! – fonctionnent en CPython. Async a toujours été une mystérieuse boîte noire pour moi, et je ne l’ai pas beaucoup utilisé avant d’écrire le livre parce que je ne savais pas comment cela fonctionnait et que je ne lui faisais pas implicitement confiance.

Après avoir exploré les concepts et les éléments de base qui mènent à la asynchrone et attendre mots-clés, comme les générateurs et les coroutines, async a un sens absolu. Je l’ai depuis utilisé pour améliorer les performances de certaines applications.

Ricky: Vous avez parlé à quelques PyCons à ce jour, mais celui qui m'intéresse le plus est votre dernière conférence à PyCon Africa, intitulée «Se démarquer dans un monde de 20 millions de développeurs». Qu'est-ce qui vous a incité à donner cette conférence et quels conseils donnez-vous fréquemment aux développeurs de tous niveaux?

Anthony:Ce qui m'a inspiré à donner cette conférence, c'est de voir tant de développeurs débutants lutter pour obtenir le poste qu'ils voulaient. J’ai interviewé de nombreux développeurs de logiciels et en ai également coaché ​​plusieurs.
Un des conseils que je donne est d'approfondir vos connaissances sur un ou deux sujets. Allez large et superficiel sur d'autres sujets.

Ne soyez pas un touche-à-tout, mais ne soyez pas non plus un poney à un tour. Essayez d'être vraiment bien informé sur deux choses, comme PyTorch et l'accélération GPU, Django et PostgreSQL, ou Vue.js et Jinja. Apprenez juste assez sur d'autres sujets et technologies pour ne pas avoir peur de travailler avec eux. En savoir plus sur SQL, JavaScript, HTML, CSS, MLP.

Vous n’avez pas besoin d’être un expert sur tout, mais si vous pouvez vous appliquer à un large éventail de problèmes, vous réussirez mieux.

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

Anthony:J'aime être à la plage, qui se trouve à cinq minutes à pied. Donc, pendant six mois de l’année, vous me trouverez dans ou au bord de l’océan. Le reste de l'année, j'adore construire des choses avec mes mains. Il fait beaucoup plus frais ici en Australie en hiver, alors je vais faire beaucoup de projets de bricolage.

Ricky: Merci de vous joindre à moi, Anthony, et bonne chance pour la sortie du livre.


Si vous souhaitez contacter Anthony à propos de tout ce dont nous avons parlé aujourd'hui, vous pouvez contactez-le sur Twitter. Si vous souhaitez approfondir CPython et découvrir comment cela fonctionne sous le capot, vous pouvez récupérer une copie du Internes CPython livre.

S'il y a quelqu'un dans la communauté Python que vous aimeriez que je interviewe, laissez un commentaire ci-dessous ou contactez-moi sur Twitter. Bon codage!