¿Cuál es el libro más influyente que todo programador debería leer? [cerrado]
1439
Si pudieras retroceder en el tiempo y decirte a ti mismo que leas un libro específico al comienzo de tu carrera como desarrollador, ¿qué libro 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:
Navegar por este hilo me hace darme cuenta de lo fea que son la mayoría de los libros relacionados con la programación. Muy buen hilo sin embargo!
Carl Bergquist
23
Esto es interesante, mientras el título dice "¿Cuál es el libro más influyente que todo programador debería leer?", Se sugieren algunos libros que tratan temas específicos del idioma. Por definición, y por pregunta tal como se expresó, los libros sugeridos aquí deberían tratar temas agnósticos de lenguaje, lo que demuestra que la mayoría de los programadores aún no han aprendido a leer.
Rook
19
Si pudiera retroceder en el tiempo y decirme que lea algo, será mejor que sea un periódico o un libro de datos deportivos que lleve conmigo. Cualquier otra cosa es una pérdida de buen viaje en el tiempo. :-)
jmucchiello
32
Sabes, si no me preocupara que me bajaran a votar TODO, iría y sugeriría Twilight. "¡TAMBIÉN se trata de personas pálidas y que evitan el sol!"
Jacob Bellamy
3
¿Alguien puede limpiar las respuestas eliminando entradas repetidas en los libros? La mayoría de ellos ya votaron.
rao
Respuestas:
1746
Código completo (2a edición) por Steve McConnell
El programador pragmático
Estructura e interpretación de programas de computadora
El lenguaje de programación C de Kernighan y Ritchie
Introducción a los algoritmos de Cormen, Leiserson, Rivest y Stein
Patrones de diseño de la banda de los cuatro
Refactorización: mejora del diseño del 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 ++ efectivo
C ++ más efectivo
CÓDIGO por Charles Petzold
Perlas de programación por Jon Bentley
Trabajando efectivamente con código heredado por Michael C. Feathers
Peopleware de Demarco y Lister
Codificadores en el trabajo por Peter Seibel
¡Seguramente estás bromeando, señor Feynman!
Efectiva Java 2da edición
Patrones de arquitectura de aplicaciones empresariales por Martin Fowler
El pequeño intrigante
El maquinista experimentado
¿Por qué la guía (conmovedora) de Ruby?
Los internos manejan el asilo: por qué los productos de alta tecnología nos vuelven locos y cómo restaurar la cordura
El arte de la programación de Unix
Desarrollo guiado por pruebas: por ejemplo, por Kent Beck
Prácticas de un desarrollador ágil
No me hagas pensar
Desarrollo de software ágil, principios, patrones y prácticas por Robert C. Martin
Diseños impulsados por dominio de Eric Evans
El diseño de las cosas cotidianas por Donald Norman
Diseño moderno de C ++ por Andrei Alexandrescu
Mejor escritura de software I de Joel Spolsky
La práctica de la programación por Kernighan y Pike
Pensamiento y aprendizaje pragmáticos: refactorice su 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: héroes de la revolución informática
Algoritmos + Estructuras de datos = Programas
Escribir código sólido
JavaScript: las partes buenas
Conseguir real por 37 señales
Fundamentos de 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
Refactorización a patrones por Joshua Kerievsky
Sistemas operativos modernos por Andrew S. Tanenbaum
El Turing anotado
Cosas que nos hacen inteligentes por Donald Norman
La forma intemporal de construir por Christopher Alexander
La fecha límite: una novela sobre gestión de proyectos por Tom DeMarco
El lenguaje de programación C ++ (3a 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
Creciente software orientado a objetos, guiado por pruebas
Pautas de diseño del marco por Brad Abrams
Objeto de pensamiento 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 informática
El alma de una nueva máquina de Tracy Kidder
CLR a través de C # por Jeffrey Richter
La forma intemporal de construir por Christopher Alexander
Patrones de diseño en C # por Steve Metsker
Alicia en el país de las maravillas de Lewis Carol
Zen y el arte del mantenimiento de motocicletas por Robert M. Pirsig
Acerca de la cara: los elementos esenciales del diseño de interacción
Aquí viene todo el mundo: el poder de organizar sin organizaciones por Clay Shirky
El tao de la programación
Belleza computacional de la naturaleza
Redacción de código sólido por Steve Maguire
La guía de Philip y Alex para la publicación web
Análisis y diseño orientado a objetos con aplicaciones de Grady Booch
Java efectivo por Joshua Bloch
Computabilidad por NJ Cutland
Autores intelectuales de la programación
El Tao Te Ching
El programador productivo
El arte del engaño por Kevin Mitnick
El programador de carrera: tácticas de guerrilla para un mundo imperfecto por Christopher Duncan
Paradigmas de programación de inteligencia artificial: estudios de caso en Common Lisp
Masters of Doom
Prueba 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
Redacción de código seguro (2a edición) por Michael Howard
Introducción a la programación funcional por Philip Wadler y Richard Bird
Code Complete es un buen libro si estás en la universidad, tal vez. Si tiene al menos 1 año de experiencia en programación, es un aburrimiento total.
Bogdan Gavril MSFT
19
Code Complete tiene mucha información útil, pero está oculto en hipérbole, waffle y repetición, lo que lo hace difícil de leer.
Jeff Yates
76
Leí Code Complete 3 años en mi carrera. No había tomado un curso de ingeniería de software ni un curso de construcción de lenguaje de programación, pero había tomado algunos cursos introductorios de CS. Es, con mucho, el mejor libro individual que he leído para convertirme en un mejor programador. No lo convertirá en un especialista, pero lo hará mucho más que un ingeniero.
Shea
119
El problema con este libro es que para un principiante, realmente no tiene sentido ya que los conceptos están un poco avanzados. Para cuando esté listo para poder leerlo, ya debe conocer y practicar el 99% de los conceptos del libro.
esac
57
Ese es el trato con las sugerencias de sentido común, como las que se encuentran en este libro. De vez en cuando necesita que se les recuerde que deben volver a la cola.
@Juan: Conozco a Juan, lo sé, pero hay algunas cosas que solo se pueden aprender si realmente se enfoca en 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 realmente entendemos la razón de su existencia. :PAGS
@Keith: Gran mención de "Los presos están ejecutando el asilo" por Alan Cooper, una revelación segura, cualquier desarrollador que haya trabajado conmigo desde que leí ese libro me escuchó mencionar las ideas que propugna. +1
Si bien esto no te enseña a programar, te enseña matemáticas fundamentales que todo programador debe saber. Puede recordar estas cosas de la universidad, pero en realidad, hacer lógica de predicados mejorará sus habilidades de programación, debe aprender la teoría de conjuntos si desea programar usando colecciones.
Realmente hay mucha información interesante aquí que puede hacer que pienses en los problemas de diferentes maneras. Es útil tenerlo, solo aprender de vez en cuando para aprender algo nuevo.
Probablemente la "ley" para llevar más profunda presentada en el libro:
El teorema fundamental del modo de falla (FFT): los sistemas complejos generalmente operan en modo de falla.
La idea es que hay partes defectuosas en cualquier pieza de software 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 fallas de hardware. Cuando se eliminaron las cajas de seguridad del hardware, la condición de carrera del software que no se había detectado durante todos esos años provocó que la máquina matara a 3 personas.
También revise The Systems Bible por el mismo autor (John Gall). Es la tercera edición de Systemantics, él acaba de cambiar el título. Este es el libro que robarías de la escuela. Es el libro que los adultos adultos leen debajo de una manta con una linterna.
Chris Wenham el
9
Uno de mis favoritos personales es Hacker's Delight , porque fue tan divertido de leer como educativo.
+1 para "Hacker's Delight" de Henry S. Warren Jr: no se trata de hackear en el sentido popular, sino de hackear como en twiddling de bajo nivel y otros "hacks" en el sentido verdadero y original de la palabra. No es para todos, pero si usted está involucrado en la optimización de código, compiladores, etc., o simplemente es un nerd general que está interesado en cosas de bajo nivel, entonces este es un gran libro.
Brillante, la portada del libro muestra "La Sagrada Familia", una gran basílica católica romana en construcción en Barcelona, Cataluña, España. Se completará en 2026 (solo quedan 17 años). Como la mayoría de los programas, incluso con los mejores libros, que nunca terminó ...
PeterMmm
9
Programación extrema explicada: Abrace el cambio por Kent Beck. Si bien no abogo por una versión hardcore de XP o la carretera en el desarrollo de software, desearía que me hubieran presentado los principios de este libro mucho antes en mi carrera. Pruebas unitarias, 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 depurador y el miedo a las solicitudes de cambio. Después de Agile, esos demonios no aparecían tan grandes.
La práctica de la programación. Por Brian W. Kernighan, Rob Pike.
El estilo que se muestra aquí es excelente: el código solo 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í.
Empecé a leerlo porque quería aprender Common Lisp. Cuando estaba a medio camino, me di cuenta de que este era el mejor libro sobre programación que había leído hasta ahora.
Este libro explica muchas cosas sobre ingeniería de software, desarrollo de sistemas. También es extremadamente útil comprender la diferencia entre los diferentes tipos de desarrollo de productos: web VS shrinkwrap VS IBM framework. ¿Qué tenían en mente las personas cuando concebían el modelo de cascada? Lea esto y todo quedará claro (con suerte)
Este libro necesita ser reescrito desde cero. El tema es muy interesante, pero el libro es bastante loco.
Chris Mountford
Chris, es difícil entender tu comentario ... ¿Puedes explicar más? ¿Por qué 'loco'?
dario minonne
En primer lugar está lleno de errores tipográficos. La mano editorial generalmente de primera categoría de Addison Wesley está extrañamente ausente en este volumen.
Chris Mountford
... continuando, y no hay suficiente espacio aquí, pero: 2. nunca está claro en el texto dónde el autor cambia entre hechos y opiniones, anécdotas y principios fundamentales, etc. 3. la artesanía del software es una metáfora y una estrategia para tratar con varios aspectos difíciles del desarrollo de software. Tiene ventajas específicas sobre alternativas y presumiblemente desventajas. Creo que ese es el enfoque sensato. No tiene sentido decir que el software es inherentemente un oficio. Lectura muy molesta, pero para ser justos, fue hace un tiempo y muchos detalles que he olvidado. Sin embargo, mi disgusto permanece.
Chris Mountford
8
@ Peter Coulton: no lees a Knuth, lo estudias.
Para mí y mi trabajo ... Las estructuras de datos puramente funcionales son excelentes para pensar y desarrollar teniendo en cuenta los lenguajes funcionales.
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, mucho menos los salarios pagados a los expertos en matemática que se dirigen al sector financiero. Y salarios por construcción del código se están erosionando porque es una profesión relativamente fácil de ingresar para los inteligentes y autodisciplinados en la mayoría de las economías.
La programación ya se ha erosionado hasta el punto de pagar menos que, digamos, plomería. La fontanería no puede ser "deslocalizada". No necesita pagar $ 2395 para asistir a la Conferencia Profesional de Plomeros cada dos años por el privilegio de recibir un conjunto completamente nuevo de tecnologías de plomería que le tomará un año aprender.
Si vives en Norteamérica o Europa, eres joven y eres inteligente, la programación no es una elección de carrera racional. Empresas que implican programación, absolutamente. Estudie negocios, sepa lo suficiente sobre programación para refinar su detector de 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 que una opción económica.
Si amas la programación y por esa razón tienes la intención de hacerla tu carrera, entonces te corresponde desarrollar una comprensión fría de las fuerzas que son, y continuarán, para que sea una profesión cada vez más difícil para ganarse la vida. . "El mundo es plano" no le enseñará cómo nombrar sus variables, pero lo sumergirá durante 6 u 8 horas en realidades económicas que ya han llegado. Si usted puede leerlo, y no se asuste, a continuación, salir y comprar "código completo."
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 empresas de unidades de disco y las empresas no técnicas siempre se ven afectadas por la nueva tecnología que cambia el juego. Le da a uno una nueva perspectiva cuando piensa en Google, probablemente la mayor empresa '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. Léelo!
El lenguaje Python fue muy influyente para mí, desearía haber leído este libro hace años. La belleza y la simplicidad del lenguaje Python realmente afectaron la forma en que escribí el código en otros idiomas.
Creo que comenzar nuevos programadores con Python reduciría la cantidad de código feo en el mundo. Trabajo con alguien que sangra las líneas al azar; esa persona no lo haría si hubiera trabajado con Python durante unos meses.
xnine
66
Creo que comenzar nuevos programadores con Python reduciría la cantidad de otros lenguajes.
Muy buen libro. Tiene un gusto de alto nivel de las áreas más importantes de la informática. Sí, CS! = Programación, pero esto sigue siendo útil para todos los programadores.
Creo que "The Art of Unix Programming" es un libro excelente, escrito por un excelente pirata informático / mente brillante como Eric S. Raymond, que intenta hacernos entender algunos principios del diseño de software (principalmente la simplicidad). Este libro es imprescindible para cada programación que está a punto de comenzar un proyecto en la plataforma Unix.
Si bien estoy de acuerdo en que muchos de los libros anteriores son de lectura obligatoria (el Programador pragmático, el Mes mítico del hombre, el Arte de la programación de computadoras y el SICP me vienen a la mente de inmediato), me gustaría ir en una dirección ligeramente diferente y recomendar Una disciplina. de Programación por Edsger Dijkstra. Aunque tiene 32 años, el énfasis en el "diseño para la verificabilidad" es muy relevante (incluso si "verificabilidad" significa "prueba" en lugar de "pruebas unitarias").
Estoy totalmente de acuerdo. El enfoque de Deitel para aprender un lenguaje de programación es sorprendente. ¡Considero Java How to Program como mi biblia de programación!
¿Qué tiene de especial? Bueno, claramente todos han escuchado el término "Ágil", y parece que la mayoría son creyentes en estos días. Aunque creas o no, hay algunos principios profundos detrás de por qué existe el movimiento ágil. Este libro descubre y articula estos principios de manera precisa y científica. Algunos de los principios son (por cierto, estas son mis palabras, no las de Alistair):
Lo más difícil del desarrollo de software en equipo es lograr que todos los cerebros tengan la misma comprensión. Estamos construyendo sistemas enormes, elaborados y complejos que son invisibles en el mundo tangible. Cuanto mejor consiga que los cerebros de las personas compartan una comprensión más profunda, más efectivo 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 las personas lo descartan (y yo también lo hice inicialmente), pero con este principio en mente, recomiendo que le des 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ápidamente. Es como una fusión mental vulcana.
No siempre se necesitan palabras para comunicar una comprensión profunda rápidamente. Y un corolario: demasiadas palabras y excedes la capacidad del oyente / lector, lo que significa que la transferencia de comprensión que estás intentando no ocurre. Considere que los niños aprenden a hablar el lenguaje al estar "inmersos" y "absorbentes". No solo el lenguaje tampoco ... da el ejemplo de algunos niños jugando con trenes en el piso. A lo largo viene otro niño que nunca antes había VISTO un tren ... pero al observar a los otros niños, él capta la esencia del juego y juega de inmediato. Esto sucede todo el tiempo entre humanos. Esto, junto con el corolario sobre demasiadas palabras, lo ayuda a ver cuán equivocado era en los viejos días de la "cascada" para intentar escribir especificaciones detalladas de requisitos de 700 páginas.
Hay mucho más allí también. Me callaré ahora, ¡pero recomiendo encarecidamente este libro!
Una contribución única, y te tomaste el tiempo para explicar claramente por qué valía la pena leerlo. ¡+1 por originalidad y esfuerzo! Esperaré leer esto pronto ...
Avery Payne
Bueno. No creo que te decepciones.
Charlie Flowers
7
Maestros de la fatalidad. En cuanto a la motivación y el amor por su profesión: no mejorará más de lo que se describe en este libro, ¡una historia verdaderamente inspiradora!
Respuestas:
fuente
K&R
@Juan: Conozco a Juan, lo sé, pero hay algunas cosas que solo se pueden aprender si realmente se enfoca en 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 realmente entendemos la razón de su existencia. :PAGS
@Keith: Gran mención de "Los presos están ejecutando el asilo" por Alan Cooper, una revelación segura, cualquier desarrollador que haya trabajado conmigo desde que leí ese libro me escuchó mencionar las ideas que propugna. +1
fuente
Matemáticas discretas para 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ática discreta para informáticos por JK Truss.
Si bien esto no te enseña a programar, te enseña matemáticas fundamentales que todo programador debe saber. Puede recordar estas cosas de la universidad, pero en realidad, hacer lógica de predicados mejorará sus habilidades de programación, debe aprender la teoría de conjuntos si desea programar usando colecciones.
Realmente hay mucha información interesante aquí que puede hacer que pienses en los problemas de diferentes maneras. Es útil tenerlo, solo aprender de vez en cuando para aprender algo nuevo.
fuente
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 de copyright.
Probablemente la "ley" para llevar más profunda presentada en el libro:
El teorema fundamental del modo de falla (FFT): los sistemas complejos generalmente operan en modo de falla.
La idea es que hay partes defectuosas en cualquier pieza de software 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 fallas de hardware. Cuando se eliminaron las cajas de seguridad del hardware, la condición de carrera del software que no se había detectado durante todos esos años provocó que la máquina matara a 3 personas.
fuente
Uno de mis favoritos personales es Hacker's Delight , porque fue tan divertido de leer como educativo.
¡Espero que la segunda edición se lance pronto!
fuente
Conceptos, técnicas y modelos de programación informática.
texto alternativo http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg
fuente
Programación extrema explicada: Abrace el cambio por Kent Beck. Si bien no abogo por una versión hardcore de XP o la carretera en el desarrollo de software, desearía que me hubieran presentado los principios de este libro mucho antes en mi carrera. Pruebas unitarias, 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 depurador y el miedo a las solicitudes de cambio. Después de Agile, esos demonios no aparecían tan grandes.
fuente
Tipos y lenguajes de programación por Benjamin C Pierce para una comprensión profunda de los fundamentos de los lenguajes de programación.
fuente
texto alternativo http://ecx.images-amazon.com/images/I/51E0Ojkz8iL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
fuente
Conceptos del sistema de base de datos es uno de los mejores libros que puede leer para comprender los buenos principios de diseño de bases de datos.
fuente
La práctica de la programación. Por Brian W. Kernighan, Rob Pike.
El estilo que se muestra aquí es excelente: el código solo 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í.
fuente
Programación desde cero. Es gratis en internet. Este libro me enseñó AT&T asm. Es muy facil de leer.
fuente
Paradigmas de programación de inteligencia artificial : estudios de caso en Common Lisp por Peter Norvig
Empecé a leerlo porque quería aprender Common Lisp. Cuando estaba a medio camino, me di cuenta de que este era el mejor libro sobre programación que había leído hasta ahora.
fuente
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 comprender la diferencia entre los diferentes tipos de desarrollo de productos: web VS shrinkwrap VS IBM framework. ¿Qué tenían en mente las personas cuando concebían el modelo de cascada? Lea esto y todo quedará claro (con suerte)
fuente
@ Peter Coulton: no lees a Knuth, lo estudias.
Para mí y mi trabajo ... Las estructuras de datos puramente funcionales son excelentes para pensar y desarrollar teniendo en cuenta los lenguajes funcionales.
fuente
"El mundo es plano" de 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, mucho menos los salarios pagados a los expertos en matemática que se dirigen al sector financiero. Y salarios por construcción del código se están erosionando porque es una profesión relativamente fácil de ingresar para los inteligentes y autodisciplinados en la mayoría de las economías.
La programación ya se ha erosionado hasta el punto de pagar menos que, digamos, plomería. La fontanería no puede ser "deslocalizada". No necesita pagar $ 2395 para asistir a la Conferencia Profesional de Plomeros cada dos años por el privilegio de recibir un conjunto completamente nuevo de tecnologías de plomería que le tomará un año aprender.
Si vives en Norteamérica o Europa, eres joven y eres inteligente, la programación no es una elección de carrera racional. Empresas que implican programación, absolutamente. Estudie negocios, sepa lo suficiente sobre programación para refinar su detector de 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 que una opción económica.
Si amas la programación y por esa razón tienes la intención de hacerla tu carrera, entonces te corresponde desarrollar una comprensión fría de las fuerzas que son, y continuarán, para que sea una profesión cada vez más difícil para ganarse la vida. . "El mundo es plano" no le enseñará cómo nombrar sus variables, pero lo sumergirá durante 6 u 8 horas en realidades económicas que ya han llegado. Si usted puede leerlo, y no se asuste, a continuación, salir y comprar "código completo."
fuente
Este último año tomé varias clases. Yo leo
El dilema del innovador (tecnología disruptiva)
El mes del hombre mítico (software de gestión)
Crossing the Chasm (inicio)
Sistemas de gestión de bases de datos, The COW Book
Programming C #, The OSTRICH Book
Beginning iPhone Developmen, The GRAPEFRUIT Book
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 empresas de unidades de disco y las empresas no técnicas siempre se ven afectadas por la nueva tecnología que cambia el juego. Le da a uno una nueva perspectiva cuando piensa en Google, probablemente la mayor empresa '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. Léelo!
fuente
piratas informáticos, por Steven Levy.
La personalidad y la forma de vida deben ser lo primero. Todo lo demás se puede aprender.
fuente
La práctica de la programación
y
Cómo resolverlo por computadora
texto alternativo http://img.infibeam.com/img/7101e0ee/496b1/05/629/PMB-9788131705629.jpg?hei=200&wid=160&op_sharpen=1
fuente
El lenguaje Python fue muy influyente para mí, desearía haber leído este libro hace años. La belleza y la simplicidad del lenguaje Python realmente afectaron la forma en que escribí el código en otros idiomas.
fuente
El nuevo omnibus de Turing http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
Muy buen libro. Tiene un gusto de alto nivel de las áreas más importantes de la informática. Sí, CS! = Programación, pero esto sigue siendo útil para todos los programadores.
fuente
Análisis y diseño orientado a objetos con aplicaciones de Brady Booch
fuente
The Mythical Man-Month por Fred Brooks http://en.wikipedia.org/wiki/The_Mythical_Man-Month
fuente
Creo que "The Art of Unix Programming" es un libro excelente, escrito por un excelente pirata informático / mente brillante como Eric S. Raymond, que intenta hacernos entender algunos principios del diseño de software (principalmente la simplicidad). Este libro es imprescindible para cada programación que está a punto de comenzar un proyecto en la plataforma Unix.
fuente
Si bien estoy de acuerdo en que muchos de los libros anteriores son de lectura obligatoria (el Programador pragmático, el Mes mítico del hombre, el Arte de la programación de computadoras y el SICP me vienen a la mente de inmediato), me gustaría ir en una dirección ligeramente diferente y recomendar Una disciplina. de Programación por Edsger Dijkstra. Aunque tiene 32 años, el énfasis en el "diseño para la verificabilidad" es muy relevante (incluso si "verificabilidad" significa "prueba" en lugar de "pruebas unitarias").
fuente
¡Code Craft de Pete Goodliffe es una buena lectura!
Code Craft http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg
fuente
Refactorización de Martin Fowler : Mejorar el diseño del código existente ya se ha enumerado. Pero detallaré por qué me ha impactado.
La esencia de todo el libro se trata de estructurar el código para que sea más fácil de leer y comprender por los humanos . Me enseña firmemente 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 sin maldecirme a la condenación por toda la eternidad .
fuente
texto alternativo http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C ++ Cómo programar Es bueno para principiantes. Este es un libro excelente que se completa con 1500 páginas.
fuente
Aquí hay un excelente libro que no es tan aplaudido, pero está lleno de información profunda: Desarrollo de software ágil: 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 son creyentes en estos días. Aunque creas o no, hay algunos principios profundos detrás de por qué existe el movimiento ágil. Este libro descubre y articula estos principios de manera precisa y científica. Algunos de los principios son (por cierto, estas son mis palabras, no las de Alistair):
Hay mucho más allí también. Me callaré ahora, ¡pero recomiendo encarecidamente este libro!
fuente
Maestros de la fatalidad. En cuanto a la motivación y el amor por su profesión: no mejorará más de lo que se describe en este libro, ¡una historia verdaderamente inspiradora!
fuente