sistemas que programadores programacion principiantes para mejores los libros leer ingeniero gratis español debe basica resources

resources - programadores - ¿Cuál es el libro más influyente que todo programador debería leer?



libros que todo ingeniero de sistemas debe leer (30)

"El mundo es plano" por Thomas Friedman.

La excelencia en la programación exige una inversión de energía mental y una dedicación al aprendizaje continuo comparable a las profesiones de medicina o derecho. Paga una fracción de lo que pagan esas profesiones, y mucho menos los salarios pagados a los matemáticamente expertos que se dirigen al sector financiero. Y los salarios para construir el código se están erosionando porque es una profesión que es relativamente fácil para los inteligentes y autodisciplinados en la mayoría de las economías para ingresar.

La programación ya se ha erosionado hasta el punto de pagar menos que, por ejemplo, la plomería. La plomería no puede ser "deslocalizada". No necesita pagar $ 2395 para asistir a la Conferencia de Plomeros Profesionales cada dos años por el privilegio de recibir un conjunto completamente nuevo de tecnologías de plomería que le llevará un año aprender.

Si vives en América del Norte o Europa, eres joven y eres inteligente, la programación no es una elección de carrera racional. Negocios que involucran programación, absolutamente. Estudie negocios, conozca lo suficiente sobre programación para refinar su detector BS: brillante. ¿Pero dedicar la mayor parte de su energía mental al dominio de bibliotecas, estructuras de datos y algoritmos? Eso solo tiene sentido si la programación es algo más para usted que una elección económica.

Si amas la programación y por esa razón tienes la intención de convertirla en tu carrera, entonces te corresponde desarrollar una comprensión fría de las fuerzas que son y seguirán siendo una profesión cada vez más difícil para ganarse la vida. . "El mundo es plano" no le enseñará a nombrar sus variables, pero lo sumergirá durante 6 u 8 horas en las realidades económicas que ya han llegado. Si puede leerlo y no asustarse, salga y compre "Código Completo".

Si pudieras retroceder en el tiempo y decirte que leas un libro específico al principio de tu carrera como desarrollador, ¿cuál sería?

Espero que esta lista sea variada y cubra una amplia gama de cosas.

Para buscar: use el cuadro de búsqueda en la esquina superior derecha. Para buscar las respuestas de la pregunta actual, use inquestion:this . Por ejemplo:

inquestion:this "Code Complete"


@Peter Coulton: no lees a Knuth, lo estudias.

Para mí y para mi trabajo ... Las estructuras de datos puramente funcionales son excelentes para pensar y desarrollar teniendo en cuenta los lenguajes funcionales.


Definitivamente la artesanía del software

texto alternativo http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg

Este libro explica muchas cosas sobre ingeniería de software, desarrollo de sistemas. También es extremadamente útil para entender la diferencia entre los diferentes tipos de desarrollo de productos: web VS shrinkwrap VS framework de IBM. ¿Qué personas tenían en mente cuando concibieron el modelo de cascada? Lee esto y todo quedará claro (con suerte)


El lenguaje Python fue muy influyente para mí, me gustaría haber leído estos libros hace años. La belleza y la simplicidad del lenguaje Python realmente afectaron la forma en que escribí el código en otros idiomas.


Este es un excelente libro que no es tan ampliamente aplaudido, pero está lleno de información profunda: Desarrollo ágil de software: El juego cooperativo , de Alistair Cockburn.

¿Qué tiene de especial? Bueno, claramente todos han escuchado el término "ágil", y parece que la mayoría de los creyentes son en estos días. Ya sea que creas o no, sin embargo, hay algunos principios profundos detrás de por qué existe el movimiento ágil. Este libro descubre y articula estos principios de una manera precisa y científica. Algunos de los principios son (por cierto, estas son mis palabras, no las de Alistair):

  1. Lo más difícil del desarrollo de software en equipo es lograr que los cerebros de todos tengan la misma comprensión. Estamos construyendo sistemas enormes, elaborados y complejos que son invisibles en el mundo tangible. Cuanto mejor sea para lograr que los cerebros de más personas compartan una comprensión más profunda, más eficaz será su equipo en el desarrollo de software. Esta es la razón subyacente por la que la programación de pares tiene sentido. La mayoría de la gente lo rechaza (y yo también lo hice inicialmente), pero con este principio en mente, le recomiendo que le dé otra oportunidad. Terminas con DOS personas que entienden profundamente el subsistema que acabas de construir ... no hay muchas otras formas de obtener una transferencia de información tan profunda tan rápido. Es como una fusión mental vulcana.
  2. No siempre se necesitan palabras para comunicar una comprensión profunda rápidamente. Y un corolario: demasiadas palabras, y usted excede la capacidad del oyente / lector, lo que significa que la transferencia de comprensión que está intentando no sucede. Considere que los niños aprenden a hablar el lenguaje estando "sumergidos" y "absorbiendo". Tampoco el lenguaje ... él da el ejemplo de algunos niños jugando con trenes en el piso. Luego viene otro niño que nunca ha visto un tren antes ... pero al observar a los otros niños, recoge la esencia del juego y sigue jugando. Esto sucede todo el tiempo entre los humanos. Esto, junto con el corolario acerca de demasiadas palabras, lo ayuda a ver cuán equivocados estaban en los viejos días de la "cascada" para tratar de escribir especificaciones detalladas de 700 páginas sobre requisitos.

Hay mucho más allí también. Me callaré ahora, ¡pero recomiendo ALTAMENTE este libro!


La práctica de la programación. Por Brian W. Kernighan, Rob Pike.

El estilo que se muestra aquí es excelente: el código habla por sí mismo y todo el libro sigue el principio KISS. Personalmente no es mi idioma de elección, pero sigue siendo influyente para mí.


Pienso que "The Art of Unix Programming" es un excelente libro, por un excelente hacker / mente brillante como Eric S. Raymond, quien trata de hacernos entender algunos principios del diseño de software (principalmente simplicidad). Este libro es una necesidad para todas las programaciones que están a punto de iniciar un proyecto bajo la plataforma Unix.


Si bien estoy de acuerdo en que muchos de los libros anteriores son obligatorios (el Programador Pragmático, el Mes-Mes Mítico, el Arte de la Programación de Computadoras y el SICP vienen a mi mente de inmediato), me gustaría ir en una dirección ligeramente diferente y recomendar Una disciplina de Programación por Edsger Dijkstra. A pesar de que tiene 32 años, el énfasis en el "diseño para verificabilidad" es altamente relevante (incluso si "verificabilidad" significa "prueba" en lugar de "pruebas unitarias").



Uno de mis favoritos personales es Hacker''s Delight , porque fue tan divertido de leer como educativo.

Espero que la segunda edición sea lanzada pronto!


hackers, por Steven Levy.

La personalidad y el modo de vida deben ser lo primero. Todo lo demás se puede aprender.


Este último año tomé varias clases. Yo leo

El dilema del innovador (tecnología disruptiva)
The Mythical Man Month (software de gestión)
Cruzando el Abismo (inicio)
Sistemas de gestión de bases de datos, El libro de VAC
Programación C #, El Libro de OSTRICH
Principios de desarrollo de iPhone, el libro GRAPEFRUIT

Cada libro fue increíble, pero el dilema del innovador de Clayton Christensen (1997 !!!) es realmente un libro fantástico, y me hizo pensar realmente en el mundo del software moderno. El desafío abordado es la tecnología disruptiva, y cómo las compañías de unidades de disco y las compañías no técnicas siempre se ven interrumpidas por la nueva tecnología que cambia los juegos. Le da una nueva perspectiva al pensar en Google, probablemente la mayor compañía "web". ¿Por qué tienen sus manos en TODO? Es porque no quieren que su posición sea interrumpida por algo nuevo. La vista previa en google es suficiente para tener la idea. Leerlo


Matemáticas discretas para científicos informáticos http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

Matemáticas discretas para científicos de la computación por JK Truss.

Si bien esto no te enseña la programación, te enseña matemáticas básicas que todo programador debe saber. Puede recordar estas cosas de la universidad, pero en realidad, hacer lógica de predicado mejorará sus habilidades de programación, debe aprender Set Theory si desea programar usando colecciones.

Realmente hay mucha información interesante aquí que puede hacerte pensar sobre los problemas de diferentes maneras. Es práctico tenerlo, solo recoger de vez en cuando para aprender algo nuevo.




Paradigmas de la Inteligencia Artificial Programación : Estudios de Caso en Common Lisp por Peter Norvig

Empecé a leerlo porque quería aprender Common Lisp. Cuando estaba a mitad de camino, me di cuenta de que este era el mejor libro sobre programación que había leído hasta ahora.




Database System Concepts es uno de los mejores libros que puede leer para comprender los buenos principios de diseño de bases de datos.


K&R

@Juan: Lo sé, lo sé, pero hay algunas cosas que solo se pueden aprender al realmente llegar a la tarea en cuestión. Hablar en ideales abstractos todo el día simplemente te convierte en un académico. Es en la aplicación del resumen que verdaderamente asimilamos la razón de su existencia. :PAG

@Keith: Gran mención de "Los reclusos están ejecutando el asilo" por Alan Cooper, una revelación para cierto, cualquier desarrollador que haya trabajado conmigo desde que leí ese libro me ha escuchado mencionar las ideas que propugna. +1


Explicación de la programación extrema: Abrazar el cambio por Kent Beck. Si bien no abogo por una versión hardcore de XP-o-the-highway en el desarrollo de software, me gustaría que me hubieran presentado los principios de este libro mucho antes en mi carrera. Pruebas de unidad, refactorización, simplicidad, integración continua, costo / tiempo / calidad / alcance - esto cambió la forma en que veía el desarrollo. Antes de Agile, se trataba del debugger y el miedo a las solicitudes de cambio. Después de Agile, esos demonios no aparecieron tan grandes.





Sistemática: cómo funcionan los sistemas y, especialmente, cómo fallan . Consíguelo usado barato. Pero es posible que no obtenga el humor hasta que haya trabajado en algunos proyectos fallidos.

La belleza del libro es el año del copyright.

Probablemente la "ley" más profunda que se presenta en el libro:

El teorema del modo de falla fundamental (FFT): los sistemas complejos generalmente operan en modo de falla.

La idea es que hay partes defectuosas en cualquier software dado que están enmascaradas por fallas en otras partes o por validaciones en otras partes. Vea un ejemplo del mundo real en la máquina de radiación Therac-25 , cuyas fallas de software fueron enmascaradas por fallos de hardware. Cuando se eliminaron los fallos de hardware, la condición de carrera del software que no había sido detectada todos esos años resultó en que la máquina matara a 3 personas.


Maestros de la fatalidad. En lo que respecta a la motivación y el amor por tu profesión: no mejorará lo que se describe en este libro, ¡una historia verdaderamente inspiradora!




Refactorización de Martin Fowler : ya se ha enumerado la mejora del diseño del código existente . Pero voy a detallar por qué me ha impactado.

La esencia de todo el libro consiste en estructurar el código para que sea más fácil de leer y entender por los humanos . Me enseña que el código que escribo está destinado a que mis colegas y sucesores lo consuman y, posiblemente, aprendan algo bueno de él. Me inspira a programar conscientemente de una manera que deja a las personas alabando mi nombre y no maldiciéndome para condenarme por toda la eternidad .


  • Código Completo (2ª edición) por Steve McConnell
  • El programador pragmático
  • Estructura e interpretación de programas informáticos.
  • El lenguaje de programación C por Kernighan y Ritchie
  • Introducción a los algoritmos por Cormen, Leiserson, Rivest y Stein
  • Patrones de diseño por la cuadrilla de cuatro
  • Refactorización: Mejora del diseño de código existente
  • El mes del hombre mítico
  • El arte de la programación de computadoras por Donald Knuth
  • Compiladores: Principios, Técnicas y Herramientas por Alfred V. Aho, Ravi Sethi y Jeffrey D. Ullman
  • Gödel, Escher, Bach por Douglas Hofstadter
  • Código limpio: Un manual de artesanía de software ágil por Robert C. Martin
  • C ++ eficaz
  • C ++ más eficaz
  • CÓDIGO por Charles Petzold
  • Perlas de programación de Jon Bentley
  • Trabajando eficazmente con el código legado por Michael C. Feathers
  • Peopleware por Demarco y Lister
  • Los codificadores en el trabajo por Peter Seibel
  • ¡Seguro que estás bromeando, señor Feynman!
  • 2a edición efectiva de Java
  • Patrones de arquitectura de aplicaciones empresariales por Martin Fowler
  • El pequeño intrigante
  • El intrigante sazonado
  • ¿Por qué (conmovedor) guía a Ruby
  • Los reclusos están ejecutando el asilo: por qué los productos de alta tecnología nos vuelven locos y cómo restaurar la cordura
  • La programación del arte de Unix
  • Desarrollo guiado por pruebas: por ejemplo, por Kent Beck
  • Prácticas de un desarrollador ágil
  • No me hagas pensar
  • Desarrollo ágil de software, principios, patrones y prácticas por Robert C. Martin
  • Diseños impulsados por el dominio por Eric Evans
  • El diseño de las cosas cotidianas de Donald Norman
  • Diseño moderno de C ++ por Andrei Alexandrescu
  • Mejor escritura de software I por Joel Spolsky
  • La práctica de la programación por Kernighan y Pike
  • Pensamiento y aprendizaje pragmático: refactoriza tu wetware por Andy Hunt
  • Estimación de software: desmitificando el arte negro por Steve McConnel
  • El programador apasionado (mi trabajo fue a la India) por Chad Fowler
  • Hackers: Heroes of the Computer Revolution
  • Algoritmos + Estructuras de datos = Programas
  • Escribir código sólido
  • JavaScript - Las partes buenas
  • Conseguir real por 37 señales
  • Fundamentos de la Programación por Karl Seguin
  • Gráficos por computadora: Principios y práctica en C (2ª edición)
  • Pensando en Java por Bruce Eckel
  • Los elementos de los sistemas informáticos
  • Refactoring to Patterns por Joshua Kerievsky
  • Sistemas operativos modernos por Andrew S. Tanenbaum
  • El Turing Anotado
  • Cosas que nos hacen inteligentes por Donald Norman
  • La manera atemporal de construir por Christopher Alexander
  • La fecha límite: una novela sobre la gestión de proyectos por Tom DeMarco
  • El lenguaje de programación C ++ (3ª edición) por Stroustrup
  • Patrones de arquitectura de aplicaciones empresariales
  • Sistemas informáticos: la perspectiva de un programador
  • Principios, patrones y prácticas ágiles en C # por Robert C. Martin
  • Software creciente orientado a objetos, guiado por pruebas
  • Directrices de diseño de marco por Brad Abrams
  • Pensamiento de objetos por el Dr. David West
  • Programación avanzada en el entorno UNIX por W. Richard Stevens
  • Hackers y pintores: grandes ideas de la era de la computación
  • El alma de una máquina nueva por Tracy Kidder
  • CLR via C # por Jeffrey Richter
  • La manera atemporal de construir por Christopher Alexander
  • Patrones de diseño en C # por Steve Metsker
  • Alicia en el país de las maravillas por Lewis Carol
  • Zen y el arte del mantenimiento de motocicletas por Robert M. Pirsig
  • About Face - Lo esencial del diseño de interacción
  • Here Comes Everybody: The Power of Organizing Without Organizations por Clay Shirky
  • El Tao de la Programación.
  • Belleza computacional de la naturaleza
  • Escribir código sólido por Steve Maguire
  • Guía de Philip y Alex para la publicación en la web
  • Análisis y diseño orientado a objetos con aplicaciones por Grady Booch
  • Java efectiva por Joshua Bloch
  • Computabilidad por NJ Cutland
  • Mentes maestras de la programación
  • El tao te ching
  • El programador productivo
  • El arte del engaño por Kevin Mitnick
  • El programador de carreras: tácticas de guerrilla para un mundo imperfecto por Christopher Duncan
  • Paradigmas de la Inteligencia Artificial Programación: Estudios de caso en Common Lisp
  • Maestros de la fatalidad
  • Pruebas de unidad pragmática en C # con NUnit por Andy Hunt y Dave Thomas con Matt Hargett
  • Cómo resolverlo por George Polya
  • El Alquimista de Paulo Coelho
  • Smalltalk-80: El lenguaje y su implementación
  • Escribir código seguro (2da edición) por Michael Howard
  • Introducción a la programación funcional por Philip Wadler y Richard Bird
  • No hay errores! por David Thielen
  • Redacción de Jason Freid y DHH
  • JUITOS EN ACCIÓN