Bibliografía básica para un desarrollador

Una vez comienzas a trabajar en el sector de la programación te preguntas cómo continuar tu formación, o simplemente quieres saber cómo ser más eficiente en tu trabajo. Para ello, decides que lo mejor es leer distintos libros que te ayuden a crecer como profesional, y voila descubres que hay bibliografía y mucha y no sabes por dónde empezar. Pues bien, este post a través de un top 10, intenta recomendarte aquellos libros que en distintos foros se considera que son básicos para ser un buen programador.

 

1. Clean Code/ Código Limpio

 

 

(Autor: Robert C.Martín)

¿Alguna vez te has preguntado, como escribir tu código mejor? ¿Qué reglas o convenios se siguen a nivel de industria que se pueden aplicar independientemente del framework o lenguaje de programación con el que estés?. Bien aunque existen múltiples libros sobre Ingeniería del Software, casi todos tratan aspectos de proceso y gestión, o bien de diseño de OOP, pero pocos tratan sobre cómo escribir código de calidad y aún menos aquellos que lo hacen de una forma clara, sencilla y amena.

Dentro de ese pequeño conjunto, se encuentra este libro.

Escrito por Robert C.Martin, llamado cariñosamente en la industria como Uncle Bob, este libro recoge en unas 300 páginas temas tan interesantes sobre como nombras las variables, cómo se han de escribir comentarios, cómo diseñar funciones y métodos, o cómo crear tests unitarios de calidad que realmente aporten valor a tu proyecto.

Comentar, que este libro es la primera parte de una trilogía, escrita por el mismo autor, cuyas segunda y tercera parte son: El Limpiador de Código, y Arquitectura Límpia, que tratan sobre otros temas como son, la ética en la profesión, paradigmas de programación y diseño a alto nivel.

En resumen, Código limpio, debería ser un libro obligado en las estanterías de todo gran programador.

Puedes comprar el libro en Amazon

2. 99 Bottles of OOP

 

99 bottles Of OOP

 

(Autor: Sandi Metz, Katrina Owen)

¿Has escuchado la canción inglesa 99 botellas de cerveza? Es una popular canción infantil cuya letra es como sigue:

 

"99 bottles of beer on the wall,

99 bottles of beer.

Take one down, pass it around,

98 bottles of beer on the wall.

 

98 bottles of beer on the wall,

98 bottles of beer.

Take one down, pass it around,

97 bottles of beer on the wall."

Y continua, hasta llegar a cero cervezas, donde el verso cambia a “Go to the store, buy some more” y la canción finaliza. Ahora imagínate que tu manager te dice de codificar esta canción, de tal forma que cuando introduzca un número de cervezas tu programa debe imprimir el resto de versos desde N hasta cero. ¿Cómo resolverías este problema? ¿Guardarías cada una de las estrofas? ¿Qué pasaría si tu manager te dice que quiere una versión no alcohólica del programa, donde en lugar de cervezas sea leche? ¿Podría tu programa modificarse para ello?.

Bajo esta premisa de resolver el problema de las 99 botellas, este libro escrito por Sandi Metz y Katrina Owen, dos desarrolladoras de Ruby, intentan enseñarte como escribir buen código, cómo refactorizar y sobre todo como deberías testear.

En su propuesta, han escrito este libro con sabor a Ruby, en donde tratan numerosos tópicos algunos citados ya como ejemplo:

- Como simplificar tú código.

- Como refactorizar legacy-code

- Desarrollo bajo Tests Unitarios (TDD)

- Como hacer tu código cerrado para la modificación, pero abierto a la extensión (ej: Cambiar la cerveza por leche).

Citar, que este fantástico libro, se encuentra solo disponible online, en dos versiones, una de Cerveza y otra de Leche.

Puedes comprar este libro en su página web

3. Head First Design Patterns (A Brain Friendly Guide)

 

 

(Autores: Eric Freeman, Elisabeth Robson)

Si has estudiado informática, o bien tienes nociones de Ingeniería del Software, seguro que palabras como Observador, Comando, o Singleton tienen un significado especial para ti, además estas convencido de que el único libro que trata sobre este tema es el famoso Design Patterns de la banda de los cuatro. Bien pues existe este otro libro.

Dentro de la rama de O’Really, Head First, mediante dibujos y chistes nos intentan explicar en esta “Brain-Friendly Guide”, los distintos patrones de diseño, como identificar los roles, y como implementarlos de forma sencilla. Tanto si llevas años en la programación, como si acabas de entrar y desconoces de qué son estos patrones de los que estamos hablando, este es tu libro.

Puedes comprar el libro en Amazon

4. Eloquent JavaScript: A Modern Introduction to Programming

 

 

(Autor: Marijn Haverbeke)

Marijn Haverbeke, un desarrollador web especializado en tecnologías front, ha escrito este libro gratuito, para dar a la comunidad de software un buen libro de JavaScript que cubre los principales aspectos del lenguaje, como JS interactua con el navegador y finalmente unas pinceladas de NodeJS.

El hecho es que, aunque existen numerosos libros de JavasScript que cubren exactamente los mismos tópicos, en esta lectura es donde realmente hay una distinción clara entre el lenguaje, y los entornos donde se ejecuta o corre (típicamente el navegador).

A mayores, el libro propone a modo de ejercicio, pequeños y divertidos proyectos como son programar un robot, crear un videojuego de plataformas para ver en el navegador o crear tu propio lenguaje de programación.

Este y el próximo libro, son los mejores libros que tanto principiantes como “ninjas” de JavaScript pueden pedir.

Puedes acceder al libro de forma gratuita aquí o comprarlo en Amazon

5. JavaScript: The Good Parts

 

 

(Autor: Douglas Crockford)

Sobre JavaScript, libros hay muchos, pero casi todos se especializan en explicarte como interactuar con el DOM, o sobre las ventajas de usar el Wrapper jQuery sobre cualquier otra librería o sobre JavaScript Vainilla. The Good Parts, toma un enfoque completamente radical, su premisa comienza por olvidarse todo aquello que esté relacionado con la web, centrándose únicamente en explicar JavaScript a nivel de lenguaje, cómo funciona, que ventajas y características le hacen único frente a otros lenguajes de programación más tradicionales como Java o C.

En The Good Parts, es cuando encuentras una explicación de las ventajas de usar Closures versus el scope tradicional, que ventajas te ofrece la función “map” de array, o porque el añadir métodos en tiempo dinámico via prototype a un objeto, añaden características muy interesantes a tu programa que otros lenguajes OOP como Java no pueden hacer de por sí.

Realmente, este es el primer y último libro que deberías leer si quieres programar en JavaScript.

Puedes comprar el libro en Amazon

6. Effective Java (Third Edition)

 

 

(Autor: Kniberg Henrik)

Joshua Bloch, autor del libro que nos ocupa, es un doctor en ciencias de la computación por la universidad de Carnegie Mellon y un desarrollador de software que ha trabajado tanto para Google como para Sun Microsystems, donde ha tenido un rol muy importante en el desarrollo de Java, llegando a ser el responsable de las colecciones, del desarrollo del paquete matemático, o del mecanismo de aserciones para tests unitarios.

Inspirado por el libro de Effective C++ (un libro de menos de 400 páginas que recogía todo lo que había que saber sobre el lenguaje de Bjarne Stroustrup) , Joshua se puso como meta escribir un libro pequeño sobre Java con todas las increíbles características que hay en él. Sin embargo mantener un libro pequeño de un lenguaje que crece de forma muy rápida no es una tarea fácil.

Lanzado inicialmente en 2001 este es un libro que lleva 18 años en activo, siendo esta su tercera edición (escrita en 2017) la cual cubre Java 9 y añade todos los aspectos de programación funcional que Java ha incorporado.

A diferencia de otros libros que se dividen en capítulos este al igual que su hermano en C++, se divide en “Items” donde cada uno intenta resolver un pequeño problema en Java que aborda un concepto del lenguaje mismo. Con lo cual el aprendizaje se hace más ameno y didáctico.

Puedes comprar el libro en Amazon

7. Spring In Action

 

 

(Autor: Craig Walls)

Si estás en everis, seguramente estés o vayas a trabajar con Spring, el framework de desarrollo web en Java por excelencia. A lo mejor estas con alguno de sus sabores (spring-boot) o bien desarrollas scripts de procesamiento en lote (spring-batch), sea como sea o incluso si vas a empezar en el mundo Spring, y te interesa indagar en su profundidad de manera sencilla, entiendo sus principios de inversión de dependencias (DIP), o sus multiples anotaciones y módulos, este es tu libro.

En sus numerosas páginas, Craig Walls nos explica conceptos como:

  • El ecosistema Spring.
  • Beans y Java POJOs.
  • Crear API RESTs o WebServices
  • Integración con diferentes servicios de persistencia
  • Generación de plantillas con Thymeleaf.

Por esas y otras razones Spring in Action es el libro recomendado para aprender Spring.

Puedes comprar el libro en Amazon

8. The Phoenix Project: A Novel about IT, devops and Helping your business win

 

 

(Autores: Kim Gene, Behr Kevin, Spafford George)

Original. Si tuviera que describir con una palabra este libro, sería esa original.

Hasta ahora hemos hablado de diferentes libros con diferentes enfoques para tratar temas técnicos, pero este lleva la narrativa a otro nivel, en lugar de explicarnos los tejemanejes del mundo de “devops” con un manual, lo hace a nivel de novela dialogada de suspense, si has leído bien, una novela, protagonizada por Bill un manager de IT de la empresa Parts Unlimited, el cual recibe un encargo de un importante proyecto llamado “Phoenix”, un proyecto que Bill se encuentra fuera de presupuesto y de tiempo. Lo peor es que el CEO de Parts Unlimited, demanda a Bill arreglar el desastre del proyecto Phoenix en 90 días, o todo su departamento será externalizado. Con la ayuda de un miembro de la dirección Erik y su método “Three Ways”, los autores Gene Kim (fundador de Tripwire), Kevin Behr (fundador del ITPI) y George Spafford (research director en Gatner) nos embarcan en una aventura en la que te sentirás identificado por tus proyectos de everis y en la que desearas volver a leer el libro una y otra vez.

Puedes comprar el libro en Amazon

9. SCRUM y XP desde las trincheras.

 

 

(Autor: Kniberg Henrik)

Si estás en everis, seguro que has oído hablar en tus proyectos de SCRUM y metodologías ágiles, quizás XP (Xtreme Programming) te suene de menos, pues bien, este libro intenta a partir de lo que el autor llama “historias de guerra”, esto es proyectos y situaciones donde te toca aplicar como puedas los principios de ingeniería, explicarte como llevar un proyecto en SCRUM, y como desarrollar ágilmente en parejas mediante programación extrema.

En resumen, este libro trata entre otros sobre los siguientes temas:

  • Sprints, descansos entre ellos y reuniones de equipo.
  • Pruebas y testing en parejas.
  • Como gestionar equipos separados geográficamente.

Henrik Kniberg, autor del libro, es un coach de metodologías agiles que ayuda a distintas empresas a implementar en sus procesos principios lean y agiles. Henrik ha trabajado para compañías conocidas como Lego o Spotify entre otras.

El libro, al igual que otros de este artículo está disponible gratuitamente en la siguiente web

10. Cracking the Coding Interview

 

 

(Autor: McDowell Laakmann Gayle)

Escrito por Gayle Laakmann una ingeniera de la universidad de Pensilvania, que además ha trabajado para Microsoft, Google o Apple entre todos. Aunque es una gran desarrolladora capaz de ser contratada por cualquier empresa, su trabajo consiste en ayudar a las compañías a diseñar las entrevistas y pruebas, para obtener el mejor candidato posible para el rol.

En ese aspecto, Goyle ha escrito este fantástico libro para ayudarte a pasar las entrevistas técnicas que como Microsoft o Google hacen.

Dividido en 17 capítulos, este libro trata diferentes tópicos, como el proceso de entrevistas, como resolver problemas genéricos o una parte más técnica, de modo de repaso, de las estructuras de datos más típicas y como y cuando aplicarlas en los problemas planteados en la entrevista.

Con el conocimiento escrito en este libro, la próxima vez que te enfrentes a una entrevista para asignación de proyecto en everis triunfarás.

Si aún no te ha convencido, la necesidad de este libro sobre tu repisa, decir que existen múltiples videos en YouTube de lectores realizando reviews y críticas sobre este libro.

Puedes comprar el libro en Amazon

 

Guía de Posibilidades Profesionales en el Ecosistema de Java