Mes meilleurs livres sur Python

Bonjour, Habr! Je suis Slava, chef de l'équipe "Professional Tools" à Tsian, membre de la Moscow Python Conf et membre de l'équipe principale d'auteurs de Yandex.Practicum.



Avec les gars, nous développons le cours de développement Middle python , et aujourd'hui je souhaite partager ma liste personnelle de livres qui vous aideront à structurer et à approfondir vos connaissances sur le développement Python.







Apprendre Python par Mark Lutz







Le sommet est ouvert par le livre de Mark Lutz "Learning Python". Il occupe une place particulière dans ma carrière - c'est grâce à lui que j'ai appris Python. En tant qu'étudiant, cela m'a semblé un travail fondamental - il y a près de quinze cents pages dans le livre!



Le livre vous permettra d'entrer dans Python, comme on dit, à partir de zéro. Pourquoi les gens programment-ils en Python? Qui utilise Python aujourd'hui? Que pouvez-vous faire avec Python? Quelles sont les forces de Python? Répondre à ces questions vous donnera une compréhension générale de la langue.



Le livre présente au lecteur le mode interactif - la ligne de commande Python. Vous apprendrez comment générer du texte vers la sortie standard, sur les modules et leur importation, sur les particularités de l'utilisation de Python sous Windows.



Ce qui suit est une description des types de données et des fonctionnalités de leur utilisation. Des chapitres séparés couvrent le travail avec des chaînes et des dictionnaires. Vous en apprendrez davantage sur le branchement et les boucles, les itérateurs, les générateurs, les fonctions et leurs arguments, modules et packages pour organiser votre code. Ceci est suivi d'une introduction à la POO: classes, héritage, surcharge d'opérateurs, polymorphisme et métaclasses. Explique les exceptions et leur rôle dans la langue.



A mon avis, "Apprendre Python" introduit de manière très fluide et complète le lecteur dans le monde de Python, d'une part, sans entrer dans les détails, d'autre part, en donnant une vue d'ensemble.



Python haute performance: un guide pratique pour les gens, Misha Gorelik, Jan Oswald







La deuxième place dans le haut est occupée par le livre de M. Gorelik et J. Oswald "High Performance Python: A Practical Guide for People".



Le livre vous donnera un petit aperçu sous le capot de la langue. Qu'est-ce que la haute performance en termes de Python? Le livre présente la machine virtuelle Python, vous apprend à utiliser les outils de profilage pour trouver les goulots d'étranglement dans l'utilisation du temps processeur, parle des types de données du point de vue de leur structure interne.



Vous en apprendrez davantage sur l'exécution multithreading, asynchrone et multiprocesseur, comment organiser le calcul en cluster et comment consommer moins de RAM. Pour les plus sophistiqués, il existe un chapitre séparé sur la compilation de code Python en C.



Votre code est peut-être parfaitement correct, mais pas assez rapide. Pour que cela fonctionne plus rapidement, vous devez comprendre comment fonctionne la langue dans laquelle vous écrivez. Ce guide pratique vous aidera à acquérir une compréhension approfondie de la mise en œuvre de Python.



"Python. Développement piloté par les tests ", Harry Percival







Le prochain livre principal est «Python. Développement basé sur des tests »Harry Percival. J'ai eu la chance de parler à Harry dans le cadre de la dernière Russian Python Week 2020 . Ils disent que les Britanniques sont primitifs, avec un étrange sens de l'humour. Je pense que ce sont des stéréotypes. Harry plaisantait beaucoup et drôle, souriait, racontait des histoires de la vie, était très ouvert. Mieux encore, Harry parlera de son livre lui-même.





, , . Python «Dive Into Python» — 2008-. , , — . - 14- -. . , , -. : «, !» -, . — , . , . Python — - -? ! Django-, - — , . ? . .



, , . - , 12 -, -, .



– . , , . . … , -. . , , ! , , !



. , , , — .



, . , : «- ? ?» : — . — . . : « ? , !» : «-, , ». , , , . ! - ! , - , — . .



Le développement piloté par les tests n'est pas une chose naturelle; il faut de la pratique pour y entrer. Dans le livre, j'essaie juste de donner un peu de pratique.


Le livre vous permettra de repenser votre travail et de l'aborder, il va littéralement tourner votre esprit. Beaucoup de choses routinières prendront un nouveau sens, un intérêt apparaîtra pour elles. La qualité des tests s'améliorera sensiblement, ce qui affectera inévitablement la qualité du code et l'architecture de l'application.



Modèles d'architecture avec Python: activer le développement piloté par les tests, la conception pilotée par domaine et les microservices pilotés par les événements, Harry Percival, Bob Gregory







Je n'ai pas pu m'empêcher de parler à Harry Percival d'un nouveau livre qu'il co-écrit avec Bob Gregory sur, Architectural Patterns in Python. Le livre peut être lu gratuitement sur www.cosmicpython.com . Harry continue.

. -, , API, , , — e2e-, ; , . , , — . , : , , , . , — , .



. , , - e2e- . . .



: , . , . Java C# ( -) Python. , Java Python ( ), , pythonic way.



La principale question à laquelle j'essaie de répondre dans ce livre est de savoir comment une architecture d'application peut nous aider à obtenir les tests de la plus haute qualité.


Le livre doit être lu comme une continuation de «Python. Développement piloté par les tests ". Si vous avez aimé le premier livre et que les idées qui y sont présentées ont résonné en vous, alors le deuxième livre répondra à toutes vos questions et vous aidera à faire vivre l'approche - au travail ou dans votre projet personnel.



"Python. Vers les hauteurs de l'excellence ", Luciano Ramallo







Le livre «Python. Vers les hauteurs de l'excellence »par le magnifique Luciano Ramalho. Le livre a connu un grand succès et a été traduit en huit langues.



Si j'essaie d'expliquer en une seule ligne de quoi parle ce livre, alors je dirais ceci: il s'agit de savoir comment utiliser Python 3 de la meilleure façon possible.



Luciano a 66 ans et vit et travaille à Sao Paulo, Brésil. J'ai eu la chance de lui parler dans le cadre de la dernière Russian Python Week 2020 . Malgré son âge, Luciano m'a semblé un interlocuteur très vivant, ouvert et joyeux.







Luciano travaille actuellement sur la deuxième édition du livre. Il a partagé que le principal changement dans le nouveau livre sera le chapitre "Introduction aux indices de type" - il n'est pas encore terminé, mais il fait déjà 60 pages, et ce sera le plus grand chapitre du livre!



Une fois, Luciano a été appelé à jouer au volleyball.



«Je ne sais pas jouer au volleyball», a déclaré Luciano.

- Oui, personne ne sait comment jouer au volley-ball, nous avons juste besoin d'une personne de plus pour former une équipe, - répondirent les gars.



Dans l'équipe, seul le capitaine était un professionnel. Il a expliqué que le joueur dans le champ extérieur passe le ballon au joueur au centre, il passe le ballon au joueur sous le filet, qui à son tour envoie le ballon du côté de l'adversaire. C'est la meilleure pratique, alors jouez à Pro.



Le jeu a commencé, l'équipe a agi selon les instructions et a finalement commencé à perdre.



La réalité était que personne à part le capitaine ne savait comment jouer assez bien, et souvent lors des passes, l'équipe perdait le ballon - il tombait au sol et le mouvement passait à l'adversaire.



Luciano a formé une équipe.



- Arrêtons de prétendre que nous sommes Pro - nous ne savons vraiment pas comment jouer professionnellement! Lançons immédiatement le ballon sur le côté de l'adversaire sans le faire passer à l'intérieur - comme nous le faisions il y a longtemps à l'école!



Et ça a marché! Ce n'était pas la meilleure pratique, mais cette tactique était la mieux adaptée à la situation et à l'équipe qu'ils avaient. Et à la fin, cela a conduit à la victoire.



Cette petite histoire est également significative pour le monde Python. Vous devez comprendre que Python est utilisé par de nombreuses personnes qui ne sont pas des développeurs professionnels - ce sont des physiciens, des biologistes, des sociologues et d'autres. Il est nécessaire que l'outil ne les oblige pas à exécuter les meilleures pratiques, mais leur permette de résoudre une tâche urgente. Et Python le permet.



Luciano aime beaucoup la programmation. Il a commencé à apprendre Python il y a 20 ans et l'a enseigné à de nombreuses autres personnes depuis. Luciano a constaté que parce que Python est si facile à apprendre, parfois les gens ne lisent même pas tout le didacticiel. Pour cette raison, parfois, en lisant le code de quelqu'un d'autre, vous pouvez constater qu'une personne écrit du code Java en Python ou du code Ruby en Python, c'est-à-dire qu'elle essaie de répéter dans un autre langage ce à quoi elle est habituée. Luciano a créé le cours Python pour ceux qui connaissent Python. Après cela, il a beaucoup parlé de la façon de faire certaines choses à la manière pythonique. Et c'est ainsi que le livre est né.



Le livre a connu un grand succès à la fois dans le monde et pour Luciano lui-même: il a trouvé un emploi chez ThoughtWorks. Il voulait vraiment y travailler, mais n'a pas osé leur envoyer son CV en raison des exigences élevées des candidats. Après la publication du livre, ils sont eux-mêmes venus le voir. Aujourd'hui, ThoughtWorks soutient Luciano en tant qu'orateur public, tout comme Martin Fowler.



Le titre russe du livre a été suggéré par le développeur principal de Python Yuri Selivanov . Luciano pense que c'est une bonne traduction de son livre.



Si vous envisagez sérieusement de bâtir une carrière de développeur Python, ce livre est pour vous.



Pourquoi lire des livres



Je suis profondément convaincu que la lecture de livres est nécessaire pour les personnes de tous âges. Non seulement la littérature professionnelle, mais aussi la fiction. Les livres agissent sur une personne comme une pierre à aiguiser agit sur un sabre - ils ajoutent de l'acuité à la connaissance.



Stephen R. Covey appelle cela «aiguiser la scie» dans son livre Les 7 habitudes des personnes hautement efficaces. Cette compétence est vos ressources et moyens personnels. Il soutient et développe votre ressource la plus précieuse - vous-même.



"Comment apprenez-vous de nouvelles choses?" - la question que je pose habituellement aux candidats lors des entretiens. La réponse est vraiment importante pour moi, et ici, il ne me suffit pas d'entendre parler de lecture d'articles, de regarder des vidéos sur YouTube ou d'écouter des podcasts. Seuls les livres donnent une structure de connaissance, sans interruption et avec un contexte complet, conduisant le lecteur à l'illumination.



Pour paraphraser Anton Ptushkin, je dirai: "Lisez-le, ça vaut le coup!"



PS La liste des livres dont nous avons discuté aujourd'hui ne prétend pas être complète. Si vous pensez qu'il y a un livre qui n'est pas moins digne de prendre sa place dans le classement, alors je vous invite à rejoindre le conseil d'administration de Trello, où nous - la communauté russe des développeurs Python - formons notre propre évaluation de livres sur le développement Python. Faites comme chez vous - votez pour ceux qui existent déjà, ajoutez de nouveaux livres ou des catégories entières!



PPS Vous avez encore des questions? Cherchez-moi sur le Web: slavabezborodov.com



All Articles