Los desarrolladores expertos en Python recomiendan libros sobre programación y cuentan cómo sacarles el máximo provecho.
Le pedimos a especialistas experimentados en desarrollo Python que nos recomendaran buena literatura para programadores de distintos niveles. Como resultado, obtuvimos una selección de 17 libros probados a lo largo del tiempo, la experiencia y las carreras. 🙂
Libros para Desarrolladores de Python Principiantes
Dificultad: ★ ☆ ☆
Elegir un buen libro es bastante difícil, es más bien una cuestión de suerte. Es como con los cursos en Udemy: puede que encuentres algo interesante, pero lo más probable es que el curso lo dicte un indio con un acento terrible que repite la documentación. No obstante, hay libros buenos que los principiantes deberían leer.
Los libros de esta selección brindarán una idea de los conceptos básicos del lenguaje, los algoritmos, el framework Django, el aprendizaje automático y las mejores prácticas para escribir código.
Learning Python: Mark Lutz
- Título: Learning Python: Powerful Object-Oriented Programming
- Autor: Mark Lutz
- Páginas: 1643 páginas
Por qué leerlo: para comenzar a programar en Python, incluso si nunca has escrito código en tu vida.
«Learning Python» de Mark Lutz es un libro de texto de programación de culto diseñado para principiantes. Te ayudará a dominar Python desde cero, desde los conceptos básicos hasta los conceptos avanzados de programación orientada a objetos. Además, el libro contiene muchos ejemplos y ejercicios para que puedas poner en práctica la teoría en tareas reales.
El libro de texto de Lutz es bueno porque describe literalmente todo lo que necesitas saber sobre Python, incluso cómo funcionan el intérprete y la máquina virtual. Si logras dominarlo por completo (tiene +1000 páginas, después de todo), obtendrás conocimientos fundamentales sobre las capacidades del lenguaje y su funcionamiento interno.
Ventajas: el libro proporciona una base sólida no solo en los conceptos básicos de Python, sino también en informática en general. Por ejemplo, describe cómo el lenguaje funciona con la memoria y el sistema operativo.
Desventajas: algunas ideas se repiten muchas veces, probablemente para que los principiantes las asimilen mejor. Además, no existe una traducción del libro al español.
Introducing Python: Bill Lubanovic
- Título: Introducing Python: Modern Computing in Simple Packages
- Autor: Mark Lutz
- Páginas: 500 páginas
Por qué leerlo: para obtener todo lo más importante sobre el lenguaje de forma resumida.
Este es otro gran libro de texto para familiarizarse con Python. Aquí no encontrarás una inmersión profunda en las «entrañas» del lenguaje, pero dominarás lo esencial: sintaxis, variables, tipos y estructuras de datos, capacidades de programación orientada a objetos y, como beneficio adicional, trabajo con redes, memoria y frameworks populares. Y todo esto a través de ejemplos de programas reales escritos en Python.
Como beneficio adicional, el libro revela las capacidades de Python en el arte y la ciencia; por ejemplo, habla sobre cómo trabajar con gráficos bidimensionales y tridimensionales, diagramas, visualizaciones e interfaces gráficas. Por lo tanto, este libro será especialmente útil para los principiantes que se centran en la ciencia de datos, ya que pueden adquirir habilidades básicas para trabajar con datos.
Ventajas: un libro de texto de programación verdaderamente conciso.
Desventajas: muchos de los enlaces del libro ya no están disponibles. Tampoco existe la versión en español.
Django 2: Antonio Mele
- Título: Django 2
- Autor: Antonio Melé
- Páginas: 530 páginas
Por qué leerlo: para empezar a trabajar con Django, el framework Python más popular para desarrollar aplicaciones web. Te permite crear sitios y aplicaciones web a partir de plantillas y bibliotecas prefabricadas, como en un constructor, solo que con un ajuste mucho más preciso.
Con el libro «Django 2″, aprenderás las capacidades de la plataforma creando aplicaciones que realmente funcionan: un blog, una red social, una tienda en línea y una plataforma para la capacitación en línea. Aprenderás a implementar un proyecto en un servidor y a conectarle varias herramientas útiles, como formularios de pago, comentarios y autorización.
Ventajas: está escrito de forma fácil e interesante, con abundantes ejemplos. El libro analiza paso a paso la creación de un sitio web y su configuración. Todos los códigos fuente y bibliotecas se pueden descargar en el repositorio de GitHub.
Desventajas: el libro analiza la segunda versión de Django, mientras que ya se han lanzado la tercera, la cuarta y la quinta. También hay libros sobre ellas, pero aún no se han traducido al español. Sin embargo, la mayor parte de la información del libro sigue vigente: todas las instrucciones y fragmentos de código funcionarán tanto con Django 3, 4 como con Django 5.
Algoritmos. Guía Ilustrada para Programadores y Curiosos: Aditya Y. Bhargava
- Título: Algoritmos. Guía ilustrada para programadores y curiosos
- Autor: Aditya Y. Bhargava
- Páginas: 256 páginas
Por qué leerlo: para comprender que los algoritmos son interesantes y nada complicados.
Una lectura imprescindible para cualquiera que se vea en el sector de las tecnologías de la información. No importa si trabajas como programador o simplemente estás cursando el examen estatal unificado de informática: comprender cómo funcionan los algoritmos será útil para todos los involucrados en la informática.
En un lenguaje sencillo y atractivo, el autor explica cómo funcionan la clasificación, la recursividad, las tablas hash, los algoritmos voraces y otros conceptos complejos. Si te gusta que te expliquen cosas complicadas mediante analogías simples y situaciones de la vida real, este libro te encantará.
Ventajas: la teoría se explica en un lenguaje sencillo, con ejemplos de código en Python.
Desventajas: hay errores tipográficos en el código debido a errores de edición en la versión española.
Grokking Deep Learning: Andrew Trask
- Título: Grokking Deep Learning
- Autor: Andrew W Trask
- Páginas: 336 páginas
Por qué leerlo: para empezar a comprender el aprendizaje automático y dar el primer paso hacia la ciencia de datos.
Si siempre has soñado con aprender cómo aprenden las máquinas y de qué están hechas las redes neuronales, asegúrate de leer este libro. En cuanto al estilo de presentación, es más bien un divulgación científica que un libro de texto académico: perfecto para comprender completamente el tema sin volverse loco en el camino. Bueno, y cómo podríamos prescindir de la práctica: hacia el final del libro, podrás intentar crear tus propias redes neuronales y marcos de ML con la ayuda de populares bibliotecas de Python, como NumPy y PyTorch.
Ventajas: no se requieren conocimientos matemáticos especiales para leerlo, solo aritmética simple y habilidades básicas de codificación.
Desventajas: a pesar del lenguaje sencillo, para leerlo se necesitarán conocimientos matemáticos básicos: a mitad del libro, tendrás que comprender muchas cosas por tu cuenta.
¿Qué Leer para Desarrolladores Python de Nivel Medio
Dificultad: ★ ★ ☆
En esta selección encontrarás libros sobre sistemas distribuidos, algoritmos, infraestructura de bases de datos, aprendizaje profundo y tipado en Python.
Todo lo leído se quedará en tu cabeza solo si lo aplicas en la práctica. Después de familiarizarte con algún concepto, debes comenzar a usarlo en el código, intentar aplicarlo en proyectos existentes o crear uno propio en base a él. Solo a través de la práctica entenderás qué de lo leído te conviene y qué no
Python Cookbook: David Beasley, Brian K. Jones
- Título: Python Cookbook: Recipes for Mastering Python 3
- Autor: David Beazley, Brian K. Jones
- Páginas: 708 páginas
Por qué leerlo: para completar tu bagaje de programación con trucos útiles y comenzar a aplicarlos en el trabajo.
«Python Cookbook» es un libro de texto de programación centrado en la práctica. Hay poca teoría aburrida aquí, pero en cada página hay un problema con una solución y una discusión. Todas las tareas se basan en situaciones reales en el desarrollo, por lo que pueden percibirse como instrucciones listas; no en vano es un libro de recetas.
Por supuesto, aquí también hay una base teórica: estructuras de datos, algoritmos, trabajo con iteradores y generadores, codificación y procesamiento de datos, funciones, etcétera. Pero todo esto está ligado al máximo a la práctica; por ejemplo, puedes aprender a acelerar el programa cambiando el paradigma de escritura del código.
Ventajas: el libro se puede utilizar como un conjunto de recetas o un directorio.
Desventajas: para leer se necesitarán conocimientos básicos de programación; a los principiantes les resultará difícil profundizar.
Test-Driven Development with Python: Harry Percival
- Título: Test-Driven Development with Python
- Autor: Harry Percival
- Páginas: 400 páginas
Por qué leerlo: para aprender a escribir aplicaciones web utilizando el enfoque TDD (desarrollo a través de pruebas). Esto es cuando primero se escriben pruebas para un fragmento de programa y luego el código.
El libro está dirigido principalmente a desarrolladores experimentados, pero también será útil para los principiantes. El autor guía al lector utilizando el método TDD a través de todos los procesos de creación de un sitio web, desde la escritura de pruebas y la refactorización hasta la conexión de módulos en Django y el desarrollo en sí. La presentación es sencilla e ilustrativa, con mucho humor y ejemplos, por lo que leer resultará interesante.
Ventajas: es casi el único libro sobre desarrollo a través de pruebas en Python.
Desventajas: Algunas de las instrucciones de implementación del proyecto están ligeramente desactualizadas. El libro no se encuentra en versión español.
Fluent Python: Luciano Ramalho
- Título: Fluent Python: Clear, Concise, and Effective Programming
- Autor: Luciano Ramalho
- Páginas: 1016 páginas
Por qué leerlo: para comenzar a utilizar las capacidades de Python al máximo.
La característica del libro es que el autor no solo habla de herramientas populares, sino que también explica para qué tareas es mejor utilizarlas: por ejemplo, cuándo serán apropiadas las listas y cuándo los arreglos. Muchos recomiendan leerlo después del libro de Lutz para comprender mejor los temas complejos: flujos de control, metaprogramación, decoradores, cierres y todo eso.
Ventajas: el autor describe las mejores prácticas de programación en Python y explica cómo escribir código eficiente y legible.
Desventajas: no es adecuado para principiantes: sin pasar por la sintaxis y las características básicas del lenguaje, el libro pasa inmediatamente a las funciones avanzadas de Python.
Puedes encontrar notas en español acerca de este libro en:
https://github.com/GEJ1/fluent-python-notas
Diseño de Aplicaciones Mediante el Uso Intensivo de Datos: Martin Kleppmann
- Título: Diseño de aplicaciones mediante el uso intensivo de datos
- Autor: Martin Kleppmann
- Páginas: 1069 páginas
Por qué leerlo: para comprender aún mejor cómo funcionan las aplicaciones complejas del servidor.
El libro de Martin Kleppmann es la Biblia del desarrollador de backend. Bases de datos, protocolos de red, replicación: lo que sea. Incluso la teoría de categorías y las técnicas de diseño orientado a objetos se han introducido. Si nos referimos al aspecto práctico del asunto, en el libro descubrirás:
- cómo las bases de datos almacenan datos en el servidor para que se puedan encontrar de manera eficiente;
- cómo las aplicaciones del servidor manejan cargas pesadas;
- qué modelos de datos y lenguajes de consulta son adecuados para cada situación;
- qué enfoques permiten crear sistemas confiables y escalables.
Y muchas otras cosas que es mejor que los humanistas no lean por la noche 🙂
Ventajas: puedes obtener una idea del funcionamiento interno de las bases de datos y los escenarios de su uso.
Desventajas: algunos creen que debido a la constante aparición de nuevos métodos para trabajar con datos, el libro comenzará a volverse obsoleto en algún momento.
Código Limpio: Robert Martin
- Título: Código Limpio: Manual de estilo para el desarrollo ágil de software
- Autor: Robert C. Martin, también conocido como Uncle Bob
- Páginas: 464 páginas
Por qué leerlo: para aprender a escribir código limpio y notar errores donde otros no los ven.
Este libro tiene una reputación controvertida y aquí tienes el motivo.
El truco está en que muchas de las cosas sobre las que escribe el tío Bob son correctas. Pero debido a que no podemos acostumbrarnos a la alta cultura de escribir código, nunca escribimos de esa manera. Y debido a esto, el código que vemos en el libro nos parece extraño, feo, y comenzamos a condenarlo.
El libro consta de tres partes. La primera parte contiene principios, patrones y técnicas para escribir código limpio con ejemplos. La segunda parte son escenarios prácticos y ejercicios para limpiar código problemático. La tercera es una lista de reglas que describen cómo leer, escribir y corregir código correctamente.
Ventajas: puedes aprender qué patrones de desarrollo sugieren utilizar los programadores experimentados.
Desventajas: los ejemplos del libro están diseñados para idealistas y, a menudo, no son aplicables en el desarrollo comercial.
Sistemas Distribuidos: Andrew S. Tanenbaum
- Título: Sistemas Distribuidos, Principios y Paradigmas
- Autor: Andrew S. Tanenbaum, Maarten van Steen
- Páginas: 704 páginas
Por qué leerlo: para mejorar la creación de sistemas escalables y confiables para el backend.
Una obra verdaderamente fundamental sobre sistemas distribuidos. Escrito en un lenguaje un poco anticuado, pero contiene todo lo que un buen backender necesita: modelos y protocolos de red, arquitectura cliente-servidor, almacenamiento en caché y replicación en la web: tómalo y úsalo en tu trabajo. Qué más puedes aprender del libro:
- cómo funciona el acceso simultáneo a los recursos;
- cómo se implementan las colas de mensajes;
- cómo equilibrar la carga en un servidor.
Ventajas: un clásico atemporal, escrito en un lenguaje sencillo con ejemplos claros.
Desventajas: los lectores se quejan de la calidad de la traducción español del libro. Por lo tanto, se recomienda leer este libro en su idioma original, especialmente porque está publicado en acceso abierto.
Qué Leer para Desarrolladores Python Experimentados
Dificultad: ★ ★ ★
Los especialistas de mayor edad pueden leer historias más filosóficas y conceptuales para comenzar a comprender un tema no superficialmente, sino profundamente, combinando datos dispares sobre el desarrollo en una visión coherente.
En la selección de libros para personas experimentadas hay teoría de categorías, patrones de diseño, SQLAlchemy, Python avanzado: niveles de aplicación, metaprogramación, programación de eventos y asincronía.
Category Theory for Programmers: Bartosz Milewski
- Título: Category Theory for Programmers
- Autor: Bartosz Milewski
- Páginas: 350 páginas
Por qué leerlo: para ver la programación desde el punto de vista de las matemáticas y también para comprender las funciones monádicas.
Olvídate de las clases, los objetos, el polimorfismo y la herencia. El autor del libro, físico de formación, propone a los desarrolladores echar un vistazo a las entrañas más profundas de la programación: los principios de la teoría de categorías, gracias a los cuales las diferentes partes del código pueden combinarse entre sí. Si esto no es el binomio de Newton, está muy cerca de serlo.
Este no es un simple libro que puedas leer y cerrar. Es necesario reflexionar sobre lo leído, escribir código, volver a reflexionar y ejecutar los ejemplos de código propuestos por el autor. Es un proceso educativo complejo. Y un proceso educativo siempre es una violencia contra uno mismo. Tendrás que atormentarte un poco.
Ventajas: el libro proporciona a los programadores una base matemática ampliada. Si quieres trabajar con los ejemplos de código de este libro, puedes descargarlos desde el repositorio de GitHub del autor.
https://github.com/hmemcpy/milewski-ctfp-pdf
Desventajas: es un libro complejo, pero no por la presentación, sino por el tema. Los fragmentos de código se dan en C++ y Haskell, por lo que se requiere un conocimiento básico de estos lenguajes.
Expert Python Programming: Michal Jaworski, Tarek Ziadé
- Título: Expert Python Programming: Master Python by learning the best coding practices and advanced programming concepts
- Autores: Michał Jaworski, Tarek Ziadé
- Páginas: 630 páginas
Por qué leerlo: para comprender las nuevas características de la sintaxis de Python, aprender a trabajar con herramientas populares y configurar el entorno.
Debido a que el libro presta especial atención al paralelismo y el despliegue de proyectos, será particularmente útil para los desarrolladores web y los ingenieros de backend. Comenzando con la descripción de las novedades de Python 3.9, los autores guían gradualmente al lector hacia la escritura de aplicaciones y la gestión de proyectos. Puedes aprender a:
- desplegar aplicaciones en el servidor;
- integrar bloques de código en C y C++ en Python;
- utilizar bibliotecas de programación dirigida por eventos, señales y asincrónica;
- optimizar el código: identificar las partes vulnerables del proyecto y mejorar su rendimiento;
- redactar documentación técnica.
Ventajas: el libro permitirá estudiar más a fondo el lenguaje de programación Python en su versión 3.9.
Desventajas: hay errores tipográficos en el código, no hay traducción al español.
Architecture Patterns with Python: Harry Percival y Bob Gregory
- Título: Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
- Autores: Harry J.W. Percival, Bob Gregory
- Páginas: 280 páginas
Por qué leerlo: para comprender los patrones de diseño de alto nivel.
Este libro de texto proporciona información detallada sobre los enfoques de la arquitectura de aplicaciones. A través de ejemplos comprensibles, los autores explican los principios del diseño orientado al dominio, el desarrollo guiado por pruebas, los conceptos básicos de la programación orientada a objetos y la arquitectura general del software.
El libro enseña a construir una aplicación con capas, gestores de contexto, comprender la unidad de trabajo, gestionar la complejidad de las aplicaciones y obtener el máximo resultado de las pruebas.
Ventajas: los enfoques descritos funcionan no solo en Python, sino también en otros lenguajes de programación.
Desventajas: los lectores se quejan de la mala maquetación.
500 Lines or Less: Michael DiBernardo
- Título: 500 Lines or Less: Experienced programmers solve interesting problems
- Autores: Amy Brown, Michael DiBernardo
- Páginas: 478 páginas
Por qué leerlo: para saber cómo los programadores expertos resuelven tareas complejas.
Esto no es un libro en el sentido tradicional, sino más bien un almanaque o una colección de artículos. Los desarrolladores de aplicaciones de código abierto hablan sobre sus productos: cómo funcionan, de qué se componen y qué se puede aprender de ellos. Según los autores del proyecto, los artículos serán de interés para dos categorías de desarrolladores:
- Para principiantes, para saber cómo piensan sus colegas experimentados.
- Para programadores experimentados, para adoptar algunas técnicas y utilizarlas en su trabajo.
Ventajas: aprendemos de los mejores.
Desventajas: no hay.
Elegant SciPy: Juan Nunez-Iglesias
- Título: Elegant SciPy: The Art of Scientific Python.
- Autores: Juan Nunez-iglesias, Stéfan Van Der Walt, Harriet Dashnow
- Páginas: 251 páginas
Por qué leerlo: para aprender a trabajar con bibliotecas para el procesamiento de datos.
Por último: un libro para verdaderos científicos y todos los que sueñan con los big data. Con su ayuda, puedes dominar las bibliotecas populares que se utilizan en estadística, aprendizaje automático, visualización de datos y procesamiento de imágenes. Tanto NumPy como su complemento SciPy, Pandas y el legendario cuaderno Jupyter, que puede ejecutar código por partes. ¿Qué más necesitan los científicos de datos?
Ventajas: conciso y al grano, sin divagaciones líricas: una inmersión detallada y profunda en las profundidades del ecosistema científico de Python. Todos los ejemplos se basan en investigaciones reales. Por ejemplo, hay ejemplos con un conjunto de datos de expresión génica y análisis de datos de radar.
Desventajas: no hay.
En conclusión: cómo leer libros de programación para obtener el máximo beneficio
Otros Libros de Python en Español
Recomendaría empezar con la lista descrita anteriormente, pero si aún le temas al idioma inglés, estos libros pueden ayudarte en tu inicio con el lenguaje de programación Python.
Estos libros en español abarcan introducciones amigables para principiantes. Ofrecen tanto una visión general del lenguaje, como la oportunidad de dominar técnicas y herramientas específicas de Python.
Portada | Título y Autor | Enlace de Compra |
---|---|---|
Aprende Python en un fin de semana: Alfredo Moreno Muñoz, Sheila Córcoles Córcoles | Comprar | |
Python. Aprenda a programar proyectos lúdicos: Lilian Buzer | Comprar | |
Aprende a Programar Python. Manual De Programación: Sergio Delgado | Comprar | |
Python para Todos: Dr. Charles Russell Severance | Comprar | |
Curso de Programación Python: Arturo Montejo Ráez, Salud María Jiménez Zafra | Comprar | |
Python a fondo: Óscar Ramírez Jiménez | Comprar | |
Python 3. Curso Practico: Alberto Cuevas Alvárez | Comprar | |
Aplicaciones Gráficas con Python 3: Alberto Cuevas Álvarez | Comprar | |
Python Para Todos: Raul Gonzalez Duque | Comprar |
Extra: El Aprendiz de Python de Austin Bingham y Robert Smallshire
Resumen: Cómo Leer un Libro Acerca de Programación, para Obtener el Máximo Beneficio
Muchos principiantes comienzan a aprender programación leyendo libros. Por el contrario, hay quienes no lo recomiendan. No significa que sea malo, sino que cada persona tiene una forma de aprender muy distinta.
Entonces, puedes estudiar la documentación oficial y el código fuente de los programas: visitar GitHub, abrir un proyecto que te guste en Django o Python y leer los códigos fuente. En algún momento, gracias a esto, comenzarás a comprender el asunto de prácticamente cualquier proyecto.
O, puedes leer libros, y los mejores recomendados en esta publicación. Presta atención a la literatura sobre conceptos básicos, como algoritmos y trabajo con bases de datos.
Finalizamos con algunos consejos:
Elige el libro adecuado para tu nivel
Es un error clásico leer un libro que no se ajusta a tu nivel de conocimientos. Si eres principiante y lees un libro para programadores experimentados, te harás daño. Aún no entiendes la problemática que el autor abordaba al escribir ese libro. Después, la gente suele «meter lo que no cabe», y eso es malo tanto para el programador como para el código que escribe.
No te obsesiones con las mejores prácticas
El desarrollo comercial siempre implica parches. A menudo, no se pueden aplicar allí las mejores prácticas. Por lo tanto, leas o no libros, no hay diferencia. La lectura de libros no desempeña ningún papel en el desarrollo profesional.
En una empresa comercial, es extremadamente difícil convertirse en un gran profesional. Tienes que crear algo tuyo, ganarte algunos golpes, o encontrar un mentor único, que son muy escasos en el mundo, y los libros no te ayudarán en eso.
Lo más importante es la práctica
Los libros son solo un sustituto del desarrollo. Te desarrollas cuando haces algo. Cuando lees, solo finges que haces algo. En su lugar, debes aplicar inmediatamente los conocimientos adquiridos.
La mejor manera de aprender algo es crear un proyecto de código abierto que resuelva un problema específico y luego desarrollarlo y mantenerlo. Así te conviertes en experto en un problema concreto. Si no puedes crear tu propio proyecto, puedes unirte a uno existente, y entonces la gente cuyos trabajos han sido escritos en todos estos libros te dirá cómo hacer las cosas y cómo no hacerlas. Esto será mucho más útil que leer un libro y no escribir ni una línea de código siguiendo las prácticas descritas.