Mis mejores libros sobre Python

¡Hola, Habr! Soy Slava, jefe del equipo de "Herramientas profesionales" en Tsian, miembro de la Python Conf de Moscú y miembro del equipo central de autores de Yandex.Practicum.



Junto con los chicos, estamos desarrollando el curso para desarrolladores de Python medio , y hoy quiero compartir mi lista personal de libros que lo ayudarán a estructurar y profundizar su conocimiento del desarrollo de Python.







Aprendiendo Python por Mark Lutz







La parte superior está abierta por el libro de Mark Lutz "Learning Python". Ocupa un lugar especial en mi carrera; fue a través de él que aprendí Python. Como estudiante, me pareció un trabajo fundamental: ¡hay casi mil quinientas páginas en el libro!



El libro te permitirá ingresar a Python, como dicen, desde cero. ¿Por qué la gente programa en Python? ¿Quién usa Python hoy? ¿Qué puedes hacer con Python? ¿Cuáles son las fortalezas de Python? Responder estas preguntas le dará una comprensión general del idioma.



El libro presenta al lector el modo interactivo: la línea de comandos de Python. Aprenderá cómo enviar texto a una salida estándar, sobre los módulos y su importación, sobre las peculiaridades del uso de Python en Windows.



La siguiente es una descripción de los tipos de datos y las características de trabajar con ellos. Capítulos separados cubren el trabajo con cadenas y diccionarios. Aprenderá sobre ramificaciones y bucles, iteradores, generadores, funciones y sus argumentos, módulos y paquetes como formas de organizar su código. A esto le sigue una introducción a la programación orientada a objetos: clases, herencia, sobrecarga de operadores, polimorfismo y metaclases. Explica sobre las excepciones y su papel en el idioma.



En mi opinión, "Aprender Python" presenta al lector de manera muy fluida y completa el mundo de Python, por un lado, sin entrar en detalles, por el otro, brindando la imagen completa.



Python de alto rendimiento: una guía práctica para personas, Misha Gorelik, Jan Oswald







El segundo lugar en la parte superior lo ocupa el libro de M. Gorelik y J. Oswald "Python de alto rendimiento: una guía práctica para las personas".



El libro le dará un pequeño vistazo bajo el capó de la lengua. ¿Qué es un alto rendimiento en términos de Python? El libro presenta la máquina virtual Python, le enseña cómo usar herramientas de creación de perfiles para encontrar cuellos de botella en el uso del tiempo del procesador, habla sobre los tipos de datos desde el punto de vista de su estructura interna.



Aprenderá sobre ejecución multiproceso, asíncrona y multiprocesador, cómo organizar la computación en clúster y cómo consumir menos RAM. Para los más sofisticados, hay un capítulo separado sobre la compilación de código Python en C.



Su código puede ser perfectamente correcto, pero no lo suficientemente rápido. Para que funcione más rápido, debe comprender cómo funciona el idioma en el que escribe. Esta guía práctica lo ayudará a obtener un conocimiento profundo de la implementación de Python.



"Pitón. Desarrollo basado en pruebas ", Harry Percival







El siguiente libro principal es “Python. Desarrollo basado en pruebas ”Harry Percival. Tuve la suerte de hablar con Harry como parte de la última Russian Python Week 2020 . Dicen que los británicos son remilgados, con un extraño sentido del humor. Creo que estos son estereotipos. Harry bromeaba mucho y gracioso, sonreía, contaba historias de la vida, era muy abierto. Lo mejor de todo es que Harry le contará sobre su libro él mismo.





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



, , . - , 12 -, -, .



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



. , , , — .



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



El desarrollo impulsado por pruebas no es algo natural; se necesita práctica para entrar en él. En el libro, solo trato de practicar un poco.


El libro le permitirá repensar su trabajo y acercarse a él, literalmente le dará la vuelta a la mente. Muchas cosas rutinarias cobrarán un nuevo significado, aparecerá interés en ellas. La calidad de las pruebas mejorará notablemente y esto afectará inevitablemente la calidad del código y la arquitectura de la aplicación.



Patrones de arquitectura con Python: habilitación del desarrollo basado en pruebas, diseño basado en dominios y microservicios basados ​​en eventos, Harry Percival, Bob Gregory







No pude evitar hablar con Harry Percival sobre un nuevo libro del que es coautor con Bob Gregory, Architectural Patterns in Python. El libro se puede leer gratis en www.cosmicpython.com . Harry continúa.

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



. , , - e2e- . . .



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



La pregunta principal que intento responder en este libro es cómo una arquitectura de aplicación puede ayudarnos a obtener pruebas de la más alta calidad.


El libro debe leerse como una continuación de “Python. Desarrollo impulsado por pruebas ". Si le gustó el primer libro y las ideas que se presentaron allí le resonaron, el segundo libro responderá todas sus preguntas y le ayudará a darle vida al enfoque, en el trabajo o en su proyecto personal.



"Pitón. A las alturas de la excelencia ", Luciano Ramallo







El libro “Python. A las alturas de la excelencia ”del magnífico Luciano Ramalho. El libro tuvo mucho éxito y se ha traducido a ocho idiomas.



Si trato de explicar en una línea de qué trata este libro, diría esto: se trata de cómo usar Python 3 de la mejor manera posible.



Luciano tiene 66 años y vive y trabaja en Sao Paulo, Brasil. Tuve la suerte de hablar con él como parte de la pasada Russian Python Week 2020 . A pesar de su edad, Luciano me pareció un interlocutor muy vivo, abierto y alegre.







Luciano está trabajando actualmente en la segunda edición del libro. Compartió que el cambio principal en el nuevo libro será el capítulo "Introducción a las sugerencias de tipos"; aún no está terminado, pero ya tiene 60 páginas, ¡y este será el capítulo más grande del libro!



Una vez Luciano fue llamado a jugar voleibol.



"No sé cómo jugar al voleibol", dijo Luciano.

- Sí, nadie tiene idea de cómo jugar al voleibol, solo necesitamos una persona más para formar un equipo, - respondieron los muchachos.



En el equipo, solo el capitán era profesional. Explicó que el jugador de los jardines pasa la pelota al jugador del centro, le pasa la pelota al jugador que está debajo de la red, quien a su vez envía la pelota al lado contrario. Esta es la mejor práctica, así que juega Pro.



El juego comenzó, el equipo actuó de acuerdo con las instrucciones y finalmente comenzó a perder.



La realidad era que nadie, excepto el capitán, sabía jugar lo suficientemente bien y, a menudo, durante los pases, el equipo perdía el balón: se caía al suelo y el movimiento pasaba al oponente.



Luciano armó un equipo.



- Dejemos de fingir que somos profesionales , ¡realmente no sabemos cómo jugar profesionalmente! Arrojemos inmediatamente la pelota al costado del oponente sin pasarla adentro, ¡tal como lo hicimos hace mucho tiempo en la escuela!



¡Y funcionó! No fue la mejor práctica, pero esta táctica se adaptaba mejor a la situación y al equipo que tenían. Y al final condujo a la victoria.



Esta pequeña historia también es importante para el mundo de Python. Debe comprender que muchas personas que no son desarrolladores profesionales utilizan Python: físicos, biólogos, sociólogos y otros. Es necesario que la herramienta no les exija realizar Best Practice, pero les permita resolver una tarea urgente. Y Python lo permite.



Luciano es muy aficionado a la programación. Comenzó a aprender Python hace 20 años y se lo ha enseñado a muchas otras personas desde entonces. Luciano descubrió que debido a que Python es tan fácil de aprender, a veces la gente ni siquiera lee el tutorial completo. Debido a esto, a veces, al leer el código de otra persona, puedes encontrar que una persona escribe código Java en Python o código Ruby en Python, es decir, intenta repetir en otro idioma lo que está acostumbrado. Luciano creó el curso Python para aquellos que conocen Python. Después de eso, habló mucho sobre el tema de cómo hacer ciertas cosas de forma pitónica. Y así nació el libro.



El libro tuvo mucho éxito tanto en el mundo como para el mismo Luciano: consiguió un trabajo en ThoughtWorks. Tenía muchas ganas de trabajar allí, pero no se atrevió a enviarles su currículum debido a los altos requisitos para los candidatos. Después de la publicación del libro, ellos mismos acudieron a él. Hoy, ThoughtWorks apoya a Luciano como orador público, al igual que lo hace con Martin Fowler.



El título ruso del libro fue sugerido por el desarrollador central de Python, Yuri Selivanov . Luciano cree que esta es una buena traducción de su libro.



Si se toma en serio la construcción de una carrera como desarrollador de Python, este libro es para usted.



Por que leer libros



Estoy profundamente convencido de que la lectura de libros es necesaria para personas de todas las edades. No solo literatura profesional, sino también ficción. Los libros actúan sobre una persona como una piedra de afilar sobre un sable: añaden nitidez al conocimiento.



Stephen R. Covey llama a esto "afilar la sierra" en su libro Los 7 hábitos de las personas altamente efectivas. Esta habilidad es sus recursos y medios personales. Él apoya y desarrolla su recurso más valioso: usted mismo.



"¿Cómo aprendes cosas nuevas?" - la pregunta que suelo hacer a los candidatos en las entrevistas. La respuesta es muy importante para mí, y aquí no es suficiente para mí escuchar sobre leer artículos, ver videos en YouTube o escuchar podcasts. Solo los libros dan estructura al conocimiento, sin interrupciones y con contexto completo, llevando al lector a la iluminación.



Parafraseando a Anton Ptushkin, diré: "¡Léelo, vale la pena!"



PD: La lista de libros que discutimos hoy no pretende ser completa. Si crees que hay un libro que no es menos digno de ocupar su lugar en el ranking, entonces te invito a unirte al tablero de Trello., donde nosotros, la comunidad rusa de desarrolladores de Python, formamos nuestra propia calificación de libros sobre el desarrollo de Python. Siéntase como en casa: vote por los existentes, agregue libros nuevos o categorías completas.



PPS ¿Todavía tienes preguntas? Búscame en la web: slavabezborodov.com



All Articles