Dominando Python
Dominando Python
Resumen:
Introducción
El libro «Dominando Python» (Mastering Python) de Rick van Hattem no es una introducción más a la sintaxis del lenguaje, sino una guía completa para quienes ya escriben con soltura en Python y desean alcanzar un nuevo nivel. Publicado en 2022 (segunda edición), cubre las versiones de Python 3.9 y 3.10, incluyendo las características más recientes como las expresiones match y las anotaciones de tipo mejoradas. Su extensión es de 710 páginas de texto técnico denso, que no perdona una lectura superficial, pero recompensa generosamente al lector reflexivo.
En el portal educativo PythonLib recibimos a menudo consultas: «¿Qué leer después del curso básico?». La respuesta es clara: este libro. No enseña a escribir «código que simplemente funciona», sino a pensar como un creador de herramientas, no como un usuario.
De qué trata el libro
El libro consta de 16 capítulos, cada uno dedicado a un área de dominio específica. El autor guía al lector de manera progresiva desde el trabajo avanzado con estructuras de datos hasta la metaprogramación, la depuración y la optimización del rendimiento.
- Capítulos 1–3: Tipos de datos avanzados, colecciones, iteradores y generadores. Aquí aprenderá a trabajar eficientemente con la memoria y a crear sus propios objetos iterables.
- Capítulos 4–6: Programación funcional en Python: decoradores, closures, functools, itertools. El autor muestra cómo escribir código limpio y declarativo sin efectos secundarios.
- Capítulos 7–9: Metaprogramación y reflexión. Aprenderá a crear decoradores de clases, interceptar atributos, trabajar con metaclases y escribir sus propios descriptores.
- Capítulos 10–12: Programación asíncrona (asyncio, corrutinas, event loop), multihilo y multiproceso. Se presta especial atención al GIL y a las formas de evitarlo.
- Capítulos 13–14: Pruebas (unittest, pytest, mock) y depuración (pdb, perfilado).
- Capítulos 15–16: Optimización del rendimiento, extensiones en C, Cython, Numba y empaquetado de proyectos.
Para quién es este libro
El libro está dirigido a desarrolladores de nivel medio y senior, así como a quienes desean pasar de la categoría de «usuario del lenguaje» a la de «experto». Si ya ha escrito varios proyectos en Django, Flask o FastAPI, pero siente que no comprende del todo cómo funciona Python en sí mismo, este libro es para usted.
El libro no es adecuado para principiantes: el autor no explica la sintaxis básica, ni qué es una variable o un bucle. Se asume que el lector domina Python a un nivel suficiente para escribir código de producción.
Qué aprenderá el lector
- Cómo utilizar las capacidades avanzadas de los módulos
collections,itertoolsyfunctoolspara crear algoritmos eficientes. - Los principios de la programación funcional y su implementación en Python (decoradores, aplicación parcial, currying).
- Técnicas de metaprogramación: metaclases, descriptores, sobrecarga de operadores, creación de DSL.
- La programación asíncrona «desde dentro»: cómo funciona el event loop, cómo evitar bloqueos, cómo diseñar APIs asíncronas.
- Herramientas de perfilado y optimización: cProfile, memory_profiler, dis, timeit.
- Escritura de extensiones en C con Cython y ctypes.
- Prácticas modernas de pruebas: property-based testing (Hypothesis), mocking, fixtures de pytest.
Puntos fuertes
Profundidad sin relleno. Cada capítulo contiene no solo teoría, sino ejemplos reales de la práctica del autor. Rick van Hattem es desarrollador principal de CPython, por lo que sus explicaciones sobre el funcionamiento interno del intérprete son precisas y autorizadas.
Actualidad. El libro está escrito para Python 3.10, lo que lo convierte en uno de los más actualizados del mercado. Se tratan match/case, tipificación estructural y las nuevas capacidades de dataclasses.
Enfoque práctico.
Recommendations
Algoritmos y estructuras de datos en TypeScript
Java y microservicios: Arquitectura, desarrollo e implementación
Concurrencia en Go: de lo básico a los patrones avanzados
Patrones de diseño en Go (Golang)
Rust para data science: guía práctica de análisis de datos
Arquitectura orientada a eventos en Golang