¿Cuáles son algunos libros que debe leer un programador?

Esta es una pregunta que recibo mucho, especialmente de compañeros de trabajo o amigos que recién comienzan su viaje como artesanos de software.

¿Qué libro debo leer para ser un mejor desarrollador? ¿Necesito leer libros?

Creo que es una gran pregunta y es una que le pregunté a muchos de mis mentores cuando me convertía en ingeniero de software.

El problema era que muchas personas sugirieron diferentes libros sobre diferentes temas. Todos los libros que sugirieron eran geniales por derecho propio, pero nadie fue capaz de darme una lista que sería los libros ESENCIALES , los DEBE LEER , que cualquier ingeniero con la esperanza de ser grandioso debería leer.

Bueno, he aprendido mucho de mis mentores y me di cuenta de que todavía tenía mucho que aprender con los diferentes libros que me sugirieron. Decidí desarrollar una rutina para leer un libro al mes en mi campo profesional (ingeniería de software).

A lo largo de los años, he agregado una lista que, creo, DEBE SER LEIDA para cualquiera que quiera ser un desarrollador de primer nivel.
Ahora déjame decirte lo obvio: solo leer todos estos libros en la lista no te hará un gran desarrollador. Eso vendrá con años de experiencia y aplicando los principios de estos libros en prácticas reales y desarrollando sus habilidades para resolver problemas en el mundo real.

Sin embargo, leer estos libros lo ayudará a evitar los principales escollos y errores que muchos desarrolladores hacen temprano en sus carreras. Desearía que alguien me hubiera contado sobre estos libros recién comenzando, pero tuve la suerte de haberlos encontrado y leído a lo largo de los años. Es posible que haya leído algunos de estos libros en la universidad para sus clases de ciencias de la computación o ingeniería. Quizás en ese momento no creías que fueran importantes, pero puedo decir de primera mano que he usado y aplicado muchos principios de todos y cada uno de estos libros.

Permítanme señalar también que esta no es una lista agotada … Muchos libros excelentes salen todos los años. Estos son solo los que han tenido el mayor impacto en mí y en mi carrera. Además, estos son principalmente independientes del idioma y pueden aplicarse utilizando cualquiera de los muchos idiomas de software. (Haré otra publicación con los mejores libros dirigidos a ciertas plataformas y pilas de tecnología)
Bueno, vamos a hacerlo entonces! (redoble de tambores por favor)

LA LISTA
(Todos estos son esenciales, pero los puse en orden descendente de cuáles tuvieron el mayor impacto en mí).

12. Trabajando efectivamente con código heredado
Me encanta este libro porque casi todos los desarrolladores de software, en algún momento de su carrera, tienen que apoyar y trabajar con un sistema heredado. En este libro, Michael Feathers ofrece estrategias de principio a fin para trabajar de manera más efectiva con bases de código heredadas grandes y no probadas. Este libro se basa en el material que Michael creó para sus reconocidos seminarios de Object Mentor: técnicas que Michael ha utilizado en la tutoría para ayudar a cientos de desarrolladores, gerentes técnicos y evaluadores a controlar sus sistemas heredados.

11. El mítico hombre-mes
Este libro es un clásico, pero recientemente revisado y corregido. Lo sorprendente es cuán relevante es el libro para el desarrollo de productos de software. Si está involucrado en software, este libro es de lectura obligatoria. La parte más valiosa del libro, creo, es el capítulo prototipo “plan para tirar”. Si bien el objetivo siempre es hacer lo que sea más grande, mejor y más rápido, es casi un axioma que usted construirá algo que debe descartarse y reelaborarse. Esto sucede absolutamente cada vez, puedo decirte por experiencia de primera mano. Por lo tanto, es vital planear descartar para que pueda migrar a sus usuarios a lo que siga. Si sueña que el primer producto es EL UNO, corre el riesgo de abandonarlos en un producto que inevitablemente evolucionará. La planificación del desecho también ayuda a cumplir los objetivos del cronograma al establecer hitos razonables que se pueden cumplir.

10. Patrones de diseño
Si planea ser arquitecto o diseñador de un sistema, lo más probable es que deba leer este libro. Aclamado como uno de los mejores libros de desarrollo de software jamás escrito, este libro entra en gran detalle sobre los diferentes patrones de diseño que se han desarrollado a lo largo de los años para ayudar a los ingenieros de software a evitar y manejar los problemas comunes que enfrenta la industria. Seguir las estrategias de este libro le permitirá crear software de mayor calidad, flexible y fácil de mantener. Este libro también se conoce con el nombre de “Gang of Four” en los grupos de software debido a sus famosos 4 autores que compilaron este libro.

9. Programación de Perls (2da Edición)
Este libro es ligeramente diferente de los otros libros en la lista. Yo diría que este libro ayuda a una persona a “pensar como un programador”. Programming Pearls es un compendio de 15 columnas previamente publicado en Comunicaciones de la ACM. Las columnas cubren una amplia gama de temas relacionados con la programación: desde la recopilación de requisitos hasta el ajuste del rendimiento. La atención se centra principalmente en las técnicas y algoritmos de codificación.
Cada columna ha sido reorganizada como un capítulo. Los capítulos generalmente comienzan con la presentación de un problema práctico. Luego se presentan varias soluciones y se utilizan como lecciones para aprender. El estilo de escritura es claro y divertido.
Programming Pearls no es un libro habitual que enseñe nuevos conceptos de programación. Aunque contiene ideas buenas y, a veces, bastante novedosas, el objetivo del libro no es enseñar algo nuevo, sino ayudarlo a convertirse en un mejor solucionador de problemas.
.
8. CÓDIGO: El lenguaje oculto del hardware y software de la computadora
Este libro realmente aclaró mucho de la “Magia” que se usa para crear y desarrollar sistemas complejos. Hay tantas abstracciones en estos días que los detalles de bajo nivel a veces son desconocidos para el desarrollador. Aunque es posible que no se encuentre utilizando este libro las 24 horas del día, los 7 días de la semana en la práctica … Creo que es una buena idea tener una idea de lo que está construyendo y cómo funciona toda la orquestación. Puede ser útil cuando necesita abrir esa “caja negra” y profundizar en el software o hardware para corregir un error molesto. “CÓDIGO: El lenguaje oculto del hardware y software de la computadora” de Charles Petzold trata con una serie de conceptos de programación que comienzan desde sistemas numéricos: decimal, octal, binario a lenguajes de alto nivel. El libro explica los protocolos de comunicación basados ​​en paquetes y TCP. Muchos capítulos tratan sobre conceptos de hardware y cinco capítulos están dedicados al software y explican sobre el sistema operativo, la aritmética de coma flotante y las GUI.
7. Arte de la programación de computadoras
Este es otro clásico. Esto fue escrito por el famoso autor Donald Kenuth y es muy elogiado por muchos de los mejores programadores de la industria. Incluso se cita a Bill Gates diciendo ”
Si crees que eres un muy buen programador … lee [El arte de la programación informática de [Knuth] … Definitivamente deberías enviarme un currículum si puedes leerlo todo.
-Bill Gates

El libro comienza con conceptos y técnicas básicas de programación, luego se centra más particularmente en las estructuras de información: la representación de la información dentro de una computadora, las relaciones estructurales entre los elementos de datos y cómo tratarlos de manera eficiente. Las aplicaciones elementales se dan a la simulación, métodos numéricos, computación simbólica, software y diseño de sistemas.

6. Refactorización
La “refactorización” de Martin Fowler se trata de mejorar el diseño del código existente. Es el proceso de cambiar un sistema de software de tal manera que no altera el comportamiento externo del código, pero mejora su estructura interna. Con la refactorización, incluso puede tomar un mal diseño y volver a trabajar en uno bueno. Este libro ofrece una discusión exhaustiva de los principios de refactorización, incluido dónde encontrar oportunidades para la refactorización y cómo configurar las pruebas requeridas. También hay un catálogo de más de 40 refactorizaciones comprobadas con detalles sobre cuándo y por qué usar la refactorización, instrucciones paso a paso para implementarla y un ejemplo que ilustra cómo funciona. El libro está escrito usando Java como su lenguaje principal, pero Las ideas son aplicables a cualquier lenguaje OO.

5. Código limpio
El “Código limpio”, escrito por Robert C. Martin, se divide en tres partes. El primero describe los principios, patrones y prácticas de escribir código limpio. La segunda parte consiste en varios estudios de caso de complejidad creciente. Cada estudio de caso es un ejercicio de limpieza de código, de transformar una base de código que tiene algunos problemas en una que sea sólida y eficiente. La tercera parte es la recompensa: un solo capítulo que contiene una lista de heurísticas y “olores” reunidos al crear los estudios de caso. El resultado es una base de conocimiento que describe la forma en que pensamos cuando escribimos, leemos y limpiamos el código.

4. Introducción a los algoritmos.
Este tiene que ser el mejor libro para comprender y desarrollar algoritmos (que harás mucho en el desarrollo de software). Algunos libros sobre algoritmos son rigurosos pero incompletos; otros cubren masas de material pero carecen de rigor. Introducción a los algoritmos combina de forma exclusiva el rigor y la exhaustividad. El libro cubre una amplia gama de algoritmos en profundidad, pero hace que su diseño y análisis sean accesibles para todos los niveles de lectores. Cada capítulo es relativamente autónomo y puede usarse como una unidad de estudio. Los algoritmos se describen en inglés y en un pseudocódigo diseñado para que cualquiera que haya realizado una pequeña programación pueda leerlo. Las explicaciones se han mantenido elementales sin sacrificar la profundidad de la cobertura o el rigor matemático. La primera edición se convirtió en un texto ampliamente utilizado en universidades de todo el mundo, así como en la referencia estándar para profesionales. La segunda edición presentó nuevos capítulos sobre el papel de los algoritmos, el análisis probabilístico y los algoritmos aleatorios y la programación lineal.

3. Estructura e interpretación de los programas informáticos.
Con un enfoque analítico y riguroso para resolver problemas y técnicas de programación, este libro está orientado a la ingeniería. La estructura e interpretación de los programas informáticos enfatiza el papel central que desempeñan los diferentes enfoques para tratar el tiempo en los modelos computacionales. Su enfoque único lo hace apropiado para una introducción a los cursos de informática, así como a los lenguajes de programación y el diseño de programas. El libro explica además las cuatro tendencias de los lenguajes de programación: programación imperativa, orientada a objetos, basada en lógica y aplicativa.

2. Programador pragmático
Este fue uno de los primeros libros de programación que leí. Un amigo me lo recomendó en mi primer trabajo profesional. Me alegra que lo haya hecho. Aunque el libro fue escrito en 1999 (creo), los conceptos son la base de cómo desarrollamos un sistema complejo en una mansión práctica. Los programadores son artesanos capacitados para usar un cierto conjunto de herramientas (editores, administradores de objetos, rastreadores de versiones) para generar un cierto tipo de producto (programas) que operará en algún entorno (sistemas operativos en ensambles de hardware). Como cualquier otro oficio, la programación de computadoras ha generado un cuerpo de sabiduría, la mayoría de los cuales no se enseña en las universidades o en las clases de certificación. La mayoría de los programadores llegan a los llamados trucos del oficio con el tiempo, a través de la experimentación independiente. En The Pragmatic Programmer , Andrew Hunt y David Thomas codifican muchas de las verdades que han descubierto durante sus respectivas carreras como diseñadores de software y escritores de código.
Algunas de las pepitas de pragmatismo de los autores son concretas, y el camino hacia su implementación es claro. Aconsejan a los lectores que aprendan un editor de texto, por ejemplo, y lo usen para todo. También recomiendan el uso de software de seguimiento de versiones incluso para los proyectos más pequeños, y promueven los méritos de aprender la sintaxis de expresiones regulares y un lenguaje de manipulación de texto. Otro consejo (quizás más valioso) es más alegre. En la sección de depuración, se observa que “si ve huellas de pezuñas piense en caballos, no en cebras”. Es decir, sospeche todo, pero comience a buscar problemas en los lugares más obvios. Hay recomendaciones para hacer estimaciones de tiempo y gastos, y para integrar las pruebas en el proceso de desarrollo. Querrá una copia de The Pragmatic Programmer por dos razones: muestra su propia sabiduría acumulada de manera más limpia de lo que alguna vez se molestó en decirlo, y le presenta métodos de trabajo que quizás aún no haya considerado.

1. Código completo 2
Y esto es todo! El libro número uno (en mi humilde opinión) para leer si vas a ser un gran ingeniero de software. Ampliamente considerada una de las mejores guías prácticas de programación, el CÓDIGO COMPLETO original de Steve McConnell ha ayudado a los desarrolladores a escribir un mejor software durante más de una década. Ahora este libro clásico se ha actualizado y revisado completamente con prácticas de vanguardia y cientos de nuevos ejemplos de código, que ilustran el arte y la ciencia de la construcción de software. Capturando el cuerpo de conocimiento disponible de la investigación, la academia y la práctica comercial cotidiana, McConnell sintetiza las técnicas más efectivas y los principios imprescindibles en una guía clara y pragmática. No importa cuál sea su nivel de experiencia, entorno de desarrollo o tamaño del proyecto, este libro informará y estimulará su pensamiento, y lo ayudará a construir el código de la más alta calidad.
Descubre las técnicas y estrategias atemporales que te ayudan a:

  • Diseño para mínima complejidad y máxima creatividad.
  • Aproveche los beneficios del desarrollo colaborativo
  • Aplique técnicas de programación defensiva para reducir y eliminar errores
  • Aproveche las oportunidades para refactorizar (o evolucionar) el código y hacerlo de manera segura
  • Use prácticas de construcción que sean adecuadas para su proyecto
  • Depurar problemas de forma rápida y efectiva
  • Resolver problemas críticos de construcción de manera temprana y correcta
  • Cree calidad en el comienzo, el medio y el final de su proyecto

¡Bueno eso es todo por ahora!
¡Avísame en los comentarios si has leído alguno de estos o tienes otros que debes leer para desarrolladores de software!
PD: si te gustan las publicaciones como esta, suscríbete a mi blog en JasonRoell.com

Creo que el arte de la programación es importante. Puedes escribir algoritmos increíbles que funcionen, pero nadie podría entenderlo fácilmente. O Crear aplicaciones a gran escala que podrían ser imposibles de mantener o ampliar para otros.

Aquí hay un libro:

Código completo por Steve McConnell por Victor Liew Jia Hao sobre fragmentos y pensamientos de Geeky IT

¡Hola!

Si está interesado en la programación, los siguientes libros seguramente lo ayudarán a sobresalir en este campo.

  1. Efectiva segunda edición de Java La serie Java de The Source por Joshua Bloch

2. Dirige primero los patrones de diseño de Eric Freeman

3. EL ARTE DE LA PROGRAMACIÓN INFORMÁTICA DE ALGORITMOS FUNDAMENTALES (VOLUMEN 1) por DONALD E. KNUTH

4. El lenguaje de programación C (versión Ansi C) (inglés) 2da edición por Brian W Kernighan

5. INTRODUCCIÓN A LOS ALGORITMOS (inglés) 3ra Edición por Thomas H Cormen

Simplemente inicie sesión en MyPustak y obtendrá sus libros deseados y eso también GRATIS . MyPustak es la primera plataforma en línea de la India que trabaja para que la educación esté disponible para todos.

¡Feliz aprendizaje!
¡Gracias!

Tuve la misma pregunta hace unos años. Mi búsqueda de una respuesta continuó en Google y mantuve conversaciones interesantes con los mejores programadores que conozco. Sugirieron muchos libros, de los cuales estos 4 libros siguientes resultaron ser joyas:

  1. El programador pragmático – Andrew Hunt, David Thomas
  2. Código limpio – Robert C. Martin
  3. Perlas de programación – Jon Bentley
  4. Java efectivo – Joshua Bloch

Estos son algunos libros que todo programador debe leer para mejorar su estilo de trabajo. Estos libros ayudan a descubrir qué pequeño error cometes y cómo evitar ese tipo de errores.

Clean Code – Compre Clean Code en línea a los mejores precios en India

Soft Skills: el manual de vida del desarrollador de software – Comprar Soft Skills

El programador pragmático

Mythical Man-month ANV SUB 2nd Edition

Sugeriría estos libros

Código limpio

Codificadores en el trabajo: reflexiones sobre el arte de la programación

Habilidades blandas: el manual de vida del desarrollador de software

Concurrencia de Java en la práctica

Para más libros Libros de programación más populares para comprar | Digitzbyte

Creo que este libro ayudará a todos los programadores a resolver problemas generales de una manera más limpia y flexible

Amazon.com: Head First Design Patterns (9780596007126): Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson: Libros

1- Codificadores en el trabajo: Codificadores en el trabajo: Reflexiones sobre el arte de la programación: Peter Seibel: 9781430219484: Amazon.com: Libros

2- Código limpio: Código limpio: Un manual de artesanía de software ágil: Robert C. Martin: 9780132350884: Amazon.com: Libros

3- Comenzando con JAVA: Comenzando con Java: desde estructuras de control a través de objetos (6ta edición): Tony Gaddis: 9780133957051: Amazon.com: Libros

4- Perlas de programación: Perlas de programación (2a edición): Jon Bentley: 0785342657883: Amazon.com: Libros

¿Quieres crear un juego?

Game Development Essentials: Game Development Essentials: An Introduction: 9781111307653: Computer Science Books @ Amazon.com

Comienza a aprender con estos libros.

Escribí una publicación de blog al respecto hace unos días. Echa un vistazo 🙂

http://pauloortins.com/most-infl

El alma de una nueva máquina da una idea de la cultura más amplia. Sobre un desarrollo tardío en el mundo de las Mini Computadoras, pronto desplazado por las Micro Computadoras.

Los siguientes son los sitios web que debe visitar un programador.
TechCrunch
Desbordamiento de pila
The Hacker News – Comunidad de noticias sobre ciberseguridad y piratería