Última actualización: 31/12/2020
Esta entrada es una recopilación de los mejores libros de Big Data, desarrollo de software y programación. Libros esenciales que aportarán mucho valor a tus habilidades técnicas y te permitirán convertirte en un experto.
Aquí te dejo una lista de sugerencias de los mejores libros de big data y programación, ¡siéntete libre de proponer nuevos libros y nuevas ideas!
Mejores libros de Big Data
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Martin Kleppmann
Libro orientado a ingenieros de datos y arquitectos de software con interés en desarrollar aplicaciones con un backend para procesar o almacenar datos. Gran ayuda para tomar decisiones de arquitectura y entender las ventajas e inconvenientes de cada solución en torno a los datos y a desarrollar sistemas escalables.
Architecting Modern Data Platforms
Jan Kunigk, Lars George, Paul Wilkinson, Ian Buss
Este es un buen libro para comprender las soluciones empresariales basadas en el ecosistema Hadoop. Se centra en explicar su arquitectura y particularidades en detalle con ejemplos prácticos que abarcan todo el rango de soluciones end-to-end. Está escrito con un lenguaje fácil de entender para iniciados con más o menos experiencia en entornos big data.
Spark: The Definitive Guide: Big data processing made simple
Bill Chambers, Matei Zaharu
Libro práctico sobre Apache Spark. Aprende a desarrollar aplicaciones big data con las últimas versiones de Spark. Repasa las operaciones básicas del framework de programación, su API y Spark Streaming. El libro también explica cómo mantener un clúster de Apache Spark y todo lo necesario alrededor de esta tecnología de una manera clara y concisa y con ejemplos en Python y Scala.
Hadoop: The Definitive Guide
Tom White
La guía completa de Apache Hadoop. Explica cómo sacar partido de la tecnología y desarrollar sistemas y aplicaciones distribuidas y escalables con este framework de procesamiento big data. Es un libro fundamental para programadores y administradores de sistemas big data con el que aprenderán a poner en funcionamiento clústers Hadoop. Repasa los componentes principales: MapReduce, HDFS y Yarn, además de las principales herramientas de ingesta y de procesamiento.
Foundations for Architecting Data Solutions: Managing Successful Data Projects
Ted Malaska, Jonathan Seidman
Explica conceptos fundamentales para implementar soluciones big data en las organizaciones. Es un libro práctico que cubre diferentes casos de uso, con patrones de diseño y etapas en el ciclo de desarrollo. También se puede usar como una lista de buenas prácticas y de conceptos de alto nivel a recordar al implementar un proyecto big data.
The Enterprise Big Data Lake
Alex Gorelik
En este libro aprenderás qué es un Data Lake y cómo se usa de forma efectiva en las organizaciones a través de sus casos de uso. Además, aprenderás a construir un data lake con las buenas prácticas asociadas para servir como Data Warehouse, soporte para big data y analítica.
Big Data For Dummies
Judith Hurwitz, Alan Nugent, Marcia Kaufman, Fern Halper, Dan Kirsch
Libro de introducción al big data. Los autores explican las ideas fundamentales detrás del sector, los problemas y las soluciones más comunes y el potencial que existe detrás de todos estos datos para las organizaciones. Como indica su título, es un libro de iniciación al big data, y profesionales con experiencia no podrán sacar todo el partido de este libro.
Streaming Systems
Tyler Akidau, Slava Chernyak, Reuven Lax
Este libro explica en profundidad los conceptos alrededor de los sistemas de streaming para big data. Es una guía práctica para entender las características de estos sistemas, aplicarlos a nuestros proyectos y sacar partido a las tecnologías desarrolladas en torno al procesamiento de flujos de datos. Repasa conceptos como tiempos de eventos, marcas de agua o garantías de entrega en sistemas distribuidos.
Big Data: Principles and best practices of scalable realtime data systems
Nathan Marz, James Warren
Este libro enseña cómo construir sistemas big data a través de ejemplos y explicando las buenas prácticas y métodos de escalabilidad. Tiene varias secciones para cada una de las 3 capas en los sistemas lambda: batch, streaming y serving layer. No se hace pesado de leer y los conceptos se explican de una manera clara.
Kafka – The Definitive Guide
Neha Narkhede, Gwen Shapira, Todd Palino
Guía completa para aprender Apache Kafka. Mediante teoría y ejemplos da una visión completa de la tecnología y sus casos de uso, tanto para administradores, arquitectos y desarrolladores de software que quieran integrar Apache Kafka en sus sistemas. Escrito por ingenieros de Confluent, la empresa detrás de su desarrollo.
Mejores libros de programación y desarrollo de software
The Pragmatic Programmer
Andrew Hunt y Dave Thomas
Los autores de este libro se centran en dar toda una serie de consejos para convertirte en mejor programador de software y obtener mejores resultados.
Todo el libro tiene un componente práctico y se podría resumir como una colección de buenas prácticas que deberás ir adoptando con el tiempo. Es un libro de referencia que debería leer cualquier persona que trabaje con código.
The Art of Computer Programming: Fundamental Algorithms
Donald E. Knuth
Este libro es un clásico del desarrollo de software. Aporta una visión fundamental y en profundidad de los algoritmos y estructuras de datos. Es complicado de leer y tiene bastantes explicaciones matemáticas con detalle, aun así, merece la pena por toda la información que concentra.
Cracking the Coding Interview
Gayle Laakmann McDowell
El libro está centrado en el aspecto práctico de algoritmos y estructuras de datos. Además, como el título indica, incluye multitud de problemas con varios niveles de dificultad para aplicar lo explicado anteriormente y llegar a las soluciones.
Ayuda a pensar de forma práctica y a tener recursos para resolver gran parte de los problemas del desarrollo de software.
Clean code: A Handbook of Agile Software Craftsmanship
Robert C. Martin
Este es un libro que explica las técnicas y metodologías para escribir un buen código mantenible. De esta forma aumentará la productividad, disminuirá la deuda técnica y conseguiremos productos de software con mayor calidad. Incluye ejemplos y ejercicios para poner en práctica los consejos y patrones que se explican. Es uno de estos libros que se deberían leer periódicamente para refrescar todos los conceptos.
Head First Design Patterns
Bert Bates, Kathy Sierra, Eric Freeman, Elisabeth Robson
Libro de patrones de diseño orientado a objetos centrado en Java. Es una referencia para todo tipo de programadores, que encontrarán multitud de ejemplos que se repiten en cada proyecto en el que participan. Permite reforzar tus conocimientos de Java y, con la práctica convertirse en referencia para las soluciones más comunes ante determinados problemas en el desarrollo de software.
Programming in Scala
Martin Odersky
Con este libro aprenderás a programar en Scala, muy usado en proyectos big data. El autor es el diseñador de este lenguaje de programación, que te enseñará paso a paso las ideas detrás de Scala para poder convertirte en experto. El libro cubre todo el lenguaje e importantes librerías.
Java in a Nutshell
Ben Evans, David Flanagan
Edición actualizada de Java para ayudar a los programadores a mantenerse al día y aprovechar las nuevas versiones. También es un buen punto de partida para nuevos desarrolladores, que encontrarán numerosos ejemplos para aprovechar las APIS y mejores prácticas del lenguaje y su ecosistema.
Mejores libros de arquitectura de software
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Robert C. Martin
Del mismo autor que Clean code, este libro profundiza en cómo mejorar la arquitectura del software, a través de patrones y principios sólidos. Es un libro recomendado a todos los profesionales de la industria del software que deseen tener una visión más amplia y de alto nivel acerca del proceso de diseño de software.
Software Architecture in Practice
Len Bass, Rick Kazman, Paul Clements
El libro actúa de referencia para arquitectos de software que están comenzando en este rol. Guía al lector en sus responsabilidades más características y enseña cómo diseñar y documentar arquitecturas de software de forma concreta y con ejemplos prácticos. Es un libro muy recomendable para toda persona que quiera desarrollar sus habilidades en el diseño de software.
Designing Software Architectures
Humberto Cervantes
Con este libro, obtendrás una estructura para diseñar arquitecturas de software robustas y aplicables en el mundo real. Explica con detalle y a través de ejemplos prácticos y de metodologías específicas las formas de convertirse en un experto arquitecto de software.
Designing Object-Oriented Software
Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener
Este libro ha sido un éxito, explica cómo diseñar software orientado a objetos con principios y procesos de diseño aplicables a multitud de proyectos. Se trata de un libro útil aunque no se empleen lenguajes de programación orientados a objetos. Termina con ejemplos para combinar los conceptos y herramientas que se explican.
Building Evolutionary Architectures
Neal Ford, Rebecca Parsons, Patrick Kua
Esta guía presenta una nueva forma de pensar sobre la arquitectura. Los desarrollos incrementales y las nuevas prácticas de desarrollo de software se han centrado en cómo la arquitectura cambia con el tiempo, y la capacidad de adaptar el software a las nuevas características a medida que evoluciona. Proporciona una visión de las nuevas herramientas, frameworks y paradigmas.
Sustainable Software Architecture: Analyze and Reduce Technical Debt
Carola Lilienthal
El libro concentra la experiencia del autor desarrollando sistemas de software, arreglando y extendiendo las funcionalidades del software existente. Trata patrones arquitectónicos y de diseño, microservicios, sistemas monolíticos, Domain Driven Design, etc. Explica cómo reducir la deuda técnica mediante recomendaciones y sugerencias basadas en proyectos prácticos fácilmente aplicables en nuestros proyectos.
Fundamentals of Software Architecture: An Engineering Approach. A Comprehensive Guide to Patterns, Characteristics, and Best Practices
Mark Richards, Neal Ford
El libro proporciona una buena descripción de la arquitectura del software para ayudar a desarrolladores a convertirse en arquitectos. Para ello, examina patrones de arquitectura, diagramas, componentes, etc. Explora las innovaciones que han surgido en este sector, así como prácticas de ingeniería y soft skills necesarias para desempeñar un buen trabajo.
Otros posts de interés:
¡Echa un ojo a mi lista de reproducción de Big Data y suscríbete al canal de Youtube para no perderte ninguna píldora BIG DATA!
Si te ayuda el contenido del blog, ¡considera unirte a la lista de correo para reconocer el trabajo!