7 fantásticos libros de Python para todos los niveles

Cuanto más popular o poderoso sea un lenguaje de programación, mayores serán las probabilidades de encontrar no solo muchos libros sobre él, sino también una diversidad de libros. A medida que Python se ha disparado en popularidad, también lo ha hecho la cantidad y variedad de libros creados para ayudar a las personas a aprender el idioma y dominar sus complejidades.

Aquí hay siete de los mejores libros sobre programación con Python, que van desde guías para principiantes hasta el dominio de Power-Python. Ya sea que esté comenzando o haya estado trabajando con Python durante algún tiempo, lo más probable es que haya un libro aquí para usted. Algunos están disponibles en ediciones en línea o PDF de forma gratuita. 

Automatiza las cosas aburridas con Python

La mayoría de las introducciones a los lenguajes de programación, oa la programación en general, son conceptuales. Hablan de programación en abstracto. Automate the Boring Stuff with Python de Rob Sweigart   habla sobre la programación en particular: utiliza un curso en Python como una forma de aprender cómo convertir tareas tediosas en scripts rápidos de Python.

Automate  está dirigido a principiantes en Python y computación en general. Se abre haciendo que el lector se sienta cómodo con un IDE simple (el editor "Mu"), luego lo guía a través del uso de entrada, control de flujo, funciones, colecciones de objetos (listas, diccionarios), validando la entrada y la coincidencia de patrones, y trabajando con archivos.

La segunda mitad del libro está más orientada a tareas y proyectos. Cubre tareas de automatización comunes: trabajar con hojas de cálculo y documentos de texto, enviar correos electrónicos, manipular imágenes y automatizar las interacciones de la GUI.

Lo que hace de  Automate  un libro valioso para principiantes es cómo se integra, a lo largo del camino, en proyectos que se adaptan al nivel actual de la lección, como un juego simple (aunque detallado) de piedra, papel y tijera para enseñar control de flujo, o un Generador de Pig Latin para enseñar a manipular cuerdas. También se necesita tiempo para trazar, una y otra vez, cómo traducir lo que queremos hacer (primero esto, luego esto, luego esto) en lo que hace el programa.

Automate the Boring Stuff with Python  está disponible en varios formatos: una edición en línea gratuita, ediciones impresas y de libros electrónicos, y un curso de Udemy (50 videos).

Amazon: //www.amazon.com/Automate-Boring-Stuff-Python-2nd/dp/1593279922

Un byte de Python

“Sin pretensiones” es la mejor palabra para describir A Byte of Python de Swaroop Chitlur  . Es fácilmente la guía más sencilla y accesible de Python, aunque también una de las menos adornadas. No usa trucos, proyectos o lindas ilustraciones, pero omitirlos también es una de sus mayores fortalezas: nada se interpone entre el lector y las lecciones.

El libro guía al lector primero a través de la instalación y configuración de una instancia de Python, luego el uso de REPL y un editor (PyCharm obtiene la mayor parte de la cobertura allí). A partir de ahí, pasa por variables y tipos, operadores, flujo de control, funciones, módulos, estructuras de datos (incluidas las clases, aunque hay un capítulo completo sobre OOP), E / S, excepciones y descripciones generales rápidas de nociones como listas por comprensión y decoradores.

El libro tiene algunos pequeños inconvenientes. Una es la organización: la entrada y la salida se manejan bastante tarde, cuando la mayoría de los tutoriales lo enseñan mucho antes. Además, algunos elementos que merecen estar en una descripción general básica de Python, como los administradores de contexto, no están cubiertos en absoluto. Pero en su conjunto, el libro es una buena introducción al idioma sin lujos.

A Byte of Python  está disponible nominalmente de forma gratuita como un libro basado en la web, pero también está disponible como descarga en PDF y en copias impresas. También existen muchas traducciones a otros idiomas además del inglés.

Amazon (solo Kindle): //www.amazon.com/Byte-Python-Swaroop-CH-ebook/dp/B00FJ7S2JU

Aprendiendo Python, 5.a edición

Programación de Python, cuarta edición

En lo que se refiere a amplitud total y todo en uno, nada supera a Learning Python  y  Programming Python de Mark Lutz  . Ambos libros tienen más de mil seiscientas páginas  cada uno , pero no dejes que el tamaño te asuste: están destinados a ser digeridos por vía tópica, en lugar de leerse de principio a fin.

Casi todos los temas de Python, a partir de Python 3.3, se tratan en  Learning Python y se tratan en profundidad. Si quieres aprender todo lo que hay que saber sobre decoradores, por ejemplo, el capítulo sobre ese tema constituye un minicurso sobre el tema.

Programar Python  consiste en usar Python para crear aplicaciones del mundo real. En lugar de simplemente ilustrar los componentes del lenguaje, explora la programación del sistema, las GUI, los clientes y servidores de Internet, las bases de datos, la integración con C y mucho más.

La mayor desventaja de Learning Python  no es su tamaño, sino su edad. La quinta edición salió en 2013, cubriendo Python 3.3 y 2.7, por lo que no cubre muchas de las innovaciones importantes incorporadas a Python desde entonces. En 2016, Lutz no tenía planes de actualizarlo, en parte debido a sus dificultades documentadas con el editor. 

Amazon: //www.amazon.com/Learning-Python-5th-Mark-Lutz/dp/1449355730; //www.amazon.com/Programming-Python-Powerful-Object-Oriented-dp-0596158106/dp/0596158106/

Python de alto rendimiento: programación práctica y eficaz para humanos

Cualquier persona que esté remotamente interesada en hacer que Python sea más rápido o más eficiente debe agregar este libro a su colección.

"Python" y "alto rendimiento" no se suelen hablar al mismo tiempo. Lo que Python le brinda en conveniencia, se lo quita en velocidad bruta a nivel de máquina. Pero eso no significa que Python de alta velocidad sea imposible; como muchas cosas "imposibles", solo requiere un poco más de trabajo.

Python de alto rendimiento: programación práctica práctica para humanos , de Micha Gorelick e Ian Ozsvald, guía a los programadores experimentados de Python a través de todas las formas en que el código Python se puede hacer más rápido, desde simples optimizaciones de Python puro hasta código C personalizado. El libro comienza con una inmersión en la creación de perfiles de aplicaciones, una habilidad clave para diagnosticar y corregir problemas de rendimiento con cualquier aplicación de Python, luego explora optimizaciones específicas a su vez:

  • Acceda a patrones y rendimiento de big-O de varias estructuras de datos, como listas frente a diccionarios y conjuntos.
  • Cómo se pueden usar los generadores para ahorrar memoria para grandes problemas computacionales.
  • Uso de matrices y vectores: esencialmente, una introducción al uso de NumPy y Pandas para obtener matemáticas más rápidas.
  • Usar Cython, Numba, PyPy y otros compiladores y tiempos de ejecución de terceros para la velocidad a nivel de máquina Una discusión de cada uno de ellos podría ocupar un libro completo (en el caso de Cython, lo hace) por sí solo, por lo que aquí solo se cubren los casos de uso más básicos y comunes. Pero estará bien preparado para seguir aprendiendo.
  • Uso de programación asincrónica para acelerar múltiples operaciones dependientes de E / S.
  • Usar multiprocesamiento para evitar el GIL y usar agrupaciones y colas de trabajos para dividir aún más el trabajo.

También se ocupa un capítulo extenso con notas sobre soluciones a problemas de rendimiento de Python en el mundo real, incluida la implementación de canalizaciones de aprendizaje automático. La segunda edición del libro actualiza el texto de las últimas versiones de Python e incluye material sobre cómo trabajar con GPU.

Amazon: //www.amazon.com/High-Performance-Python-Performant-Programming/dp/1492055026/

Python fluido

Una vez que domine los conceptos básicos, ¿qué sigue? Fluent Python  responde a esa pregunta.

Los programadores que ya conocen lo suficiente de Python para escribir sus propios programas a menudo tienen dificultades para pasar a la siguiente etapa: hacer uso del conjunto de características únicas de Python para escribir software verdaderamente poderoso.  Fluent Python , de Luciano Ramalho, guía al programador a través de muchos aspectos clave de Python aprovechados por expertos: dominar el modelo de datos de Python y los "métodos dunder", el uso avanzado de colecciones de datos como conjuntos y diccionarios, la creación de objetos que funcionan como registros (no solo clases, pero con nombre tuplas y clases de datos), usando funciones como objetos, sugerencias de tipos y mucho más.

Si bien parte del material (por ejemplo, lambdas) puede no ser nuevo ni siquiera para los programadores de Python moderadamente experimentados, el libro muestra cómo estos elementos son valiosos para los programadores avanzados. Incluso si ha usado estas características de Python antes, el libro le mostrará cómo construir programas más robustos con ellas y cómo elegir sabiamente entre alternativas similares (por ejemplo, estructuras y vistas de memoria) para trabajos avanzados.

En el momento de escribir este artículo, Fluent Python, 2nd Edition  está disponible como borrador de lanzamiento temprano con una membresía de O'Reilly, o se puede reservar por adelantado en Amazon.

Amazon: //www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1492056359

Piensa en Python

El subtítulo de este libro es "Cómo pensar como un informático", que le da una pista de las intenciones del libro. Think Python , de Allen B. Downey, es una guía para aprender Python dirigida a principiantes totales, pero su objetivo más amplio es ayudar al lector a comprender de qué se trata la programación, qué significa ser un programador y por qué los programas de computadora funcionan de esa manera. ellas hacen. Python es solo el campo en el que se exploran esas ideas. Dado lo fácil que es aprender Python, es una elección sensata.

Think Python  comienza con conceptos formales: qué es un programa, qué son entradas y salidas, qué son tipos y valores y cómo los programas tratan la información en esos términos. A partir de ahí, el libro pasa a ver cómo funcionan los enunciados y los órdenes de operación, y cómo los enunciados se pueden unir en expresiones y funciones. Manejo de condiciones y control de flujo, iteración, tipos de colección (cadenas, listas, diccionarios), E / S de archivos, clases y herencia, junto con una gran cantidad de funciones útiles de Python etiquetadas como "Goodies", todos reciben capítulos propios.

Lo más atractivo de  Think Python , además de su lenguaje claro y directo, es cómo relaciona constantemente cada bit de información con los temas centrales de cómo funcionan las computadoras y los programas de computadora, y qué técnicas se utilizan en programación para lograr los fines. Para los recién llegados, esto es más importante de lo que podrían darse cuenta al principio.

Think Python  está disponible como un libro electrónico gratuito en formato PDF o HTML. 

Amazon: //www.amazon.com/gp/product/1491939362