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

Introducción a los algoritmos por CLRS

Introducción a los algoritmos es un libro de Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein. Se utiliza como libro de texto para cursos de algoritmos en muchas universidades y se cita comúnmente como referencia para algoritmos en artículos publicados, con más de 6200 citas documentadas en CiteSeerX. El libro vendió medio millón de copias durante sus primeros 20 años. Su fama ha llevado a la denominación de la abreviatura “CLRS” (Cormen, Leiserson, Rivest, Stein).

ps En la enseñanza, los siguientes libros se utilizan en el diseño de algoritmos:

  • Stanford utiliza diseño de algoritmo
  • Carnegie Mellon utiliza estructuras de datos y análisis de algoritmos en Java
  • MIT usa Introducción a Algoritmos

( Fuente: programmers.stackexchange.com)

El arte de la programación de computadoras de Donald Knuth


El arte de la programación de computadoras (a veces conocido por sus iniciales TAOCP ) es una monografía completa escrita por Donald Knuth que cubre muchos tipos de algoritmos de programación y su análisis.

Knuth comenzó el proyecto, originalmente concebido como un solo libro con doce capítulos, en 1962. Los primeros tres de lo que se esperaba que fuera un set de siete volúmenes fueron publicados en 1968, 1969 y 1973. La primera entrega del Volumen 4 ( un fascículo de bolsillo) se publicó en 2005. El volumen de tapa dura 4A se publicó en 2011. Se planean lanzamientos adicionales de fascículos para su lanzamiento aproximadamente cada dos años.
PPsI me topé con esta cita de Bill Gates: “Definitivamente deberías enviarme un currículum si puedes leer todo”. Estaba hablando de los libros de El arte de la programación .

La introducción a los algoritmos por CLRS es mucho más simple. Aún así, si quieres leer el libro de Knuth, primero debes ir a Concreto Matemático. Knuth quiere que sus alumnos sean conscientes de la parte matemática básica del análisis de algoritmos.
Asegúrese de leer toda la cita de Gates, incluida esta:

“Me tomó una disciplina increíble, y varios meses, para leerlo. Estudié 20 páginas, lo guardé durante una semana y volví por otras 20 páginas. Si alguien es tan descarado que cree que lo sabe todo, Knuth lo sabrá”. ayúdelos a comprender que el mundo es profundo y complicado “.

Writing and Difference de Derrida junto con Speech and Phenomena. Esas son, por supuesto, extensiones de Ser y Tiempo de Heidegger.

Después de estudiar filosofía en Inglaterra, regresé a los Estados Unidos para convertirme en ingeniero de software. Me llevó varios años darme cuenta de cómo la filosofía continental se relacionaba con la ingeniería de software, parte de la cual es la programación de computadoras, que es solo un eufemismo para piratear.

Escribí mi descubrimiento en Wild Software Meta-systems. Ver METÁ-SISTEMAS DE SOFTWARE SILVESTRE

El resultado de esto es que lo que Heidegger habla de las modalidades actuales de estar en el ser y el tiempo de Ser en el ser y el tiempo son los punteros y acumuladores en el hardware de las máquinas de Von Neumann en las que programamos. Máquina von Neumann

Pero Heidegger y Merleau-Ponty descubrieron por separado un tercer tipo de Ser que MP llama Hyper Hyper, Differance by Derrida y Being tachado por Heidegger.

El Código de programación es el único artefacto en nuestra cultura que encarna Hyper Being.

Entonces, básicamente, nadie comprende la naturaleza del Código que escribimos, y que en realidad es una manifestación dentro de un artefacto cultural de este meta-nivel más elevado y muy extraño del Ser que siempre es como Paul Simon dice que se desliza alejándose de nosotros y de sí mismo .

Si no comprende la naturaleza del código de programación que escribe y cómo transforma el mundo, en última instancia, nunca sabrá realmente lo que está haciendo. Y estos libros de programación mencionados no le dicen eso porque, en última instancia, les preocupa cómo hacerlo, y no cuál es realmente en su esencia.

Pero lo más interesante es que hay otros dos tipos más profundos de Ser llamados Ser Salvaje y Ser Ultra. Wild Being es el doble de Hyper Being, y donde el código objeto de Ingeniería de Software tiene la naturaleza de Hyper Being, el código objeto de Inteligencia Artificial, Vida Artificial y Sociedades Artificiales tiene esta naturaleza más profunda de Wild Being.

Existe la idea de que la singularidad va a ocurrir vendida como aceite de serpiente por Ray Kurzweil. Singularidad tecnológica. La verdad que subyace a lo que no se sabe es que hay un tipo de Ser llamado Ultra Ser que está en el núcleo del software que es una singularidad. El software es Hyper Being como escritura automatizada. Cuando se refiere a sí mismo, abre el Ser Salvaje y cuando apunta más allá de sí mismo indica Ultra Ser.

La programación se juega en el borde de este océano, que es la transformación del Ser en nuestra cultura, abriendo estos niveles más profundos y encarnándolos. En Filosofía Continental, Deleuze abre nuestra comprensión del Hyper Ser. Delluze va más allá de esto en el Ser Salvaje. Y ahora Zizek y Badiou están luchando con Ultra Being. Mientras los filósofos continentales están explorando estas profundidades abiertas por Husserl, Heidegger y Merleau-Ponty, los filósofos analíticos están jugando Legos en la esquina por sí mismos sin saber lo que realmente está sucediendo a medida que la cultura se transforma globalmente al entrar en la era de software.

El punto clave es que la singularidad ya ha ocurrido. Dar una visión apocalíptica es simplemente una tontería. No es que las computadoras se vuelvan más inteligentes que nosotros y se apoderen del mundo como en las viejas películas de ciencia ficción. Más bien, los tipos de Ser que siempre han estado latentes en la cultura se están realizando en artefactos culturales en la era tecnológica en la que vivimos. El software es simplemente un código que creemos que podemos controlar. Pero los piratas informáticos y los investigadores de inteligencia artificial saben que el código puede tener una vida propia que no podemos controlar y luego vemos cómo Hyper Being se transforma rápidamente en Wild Being. Todas las técnicas de IA son oscuras, no las entendemos y cómo funcionan. Cuando los entendemos, se convierten en otras técnicas de Ingeniería de Software. Mientras no los comprendamos y den resultados inesperados, entonces son técnicas de IA y lo que hacen expresa Wild Ser.

Pero ocasionalmente podemos vislumbrar las singularidades conceptuales y cognitivas indicadas por los sistemas de IA que no solo son oscuros sino imposibles de entender, y son el advenimiento de lo que Badiou llama el Ultra Uno en el que el Múltiple aparece como un Evento. Esas singularidades que Cantor fue el primero en encontrar de manera precisa y que utilizamos alegremente en nuestros cálculos como números trascendentales que son significativos como PI, siempre han estado allí y son las representaciones del Múltiple, es decir, la verdadera heterogeneidad. Ahora sabemos que hay más números trascendentales que cualquier otro tipo. Pero solo sabemos el significado de algunos de ellos. Descubrir el significado de estos límites que indican nuestros cálculos es el siguiente paso en la evolución de nuestra comprensión del Código y su impacto en nuestro mundo a medida que se vuelve omnipresente. El Múltiple, que es la fuente de todas las singularidades, ahora está comenzando a amanecer sobre nosotros, y ahora está comenzando a tener un impacto a medida que creamos sistemas globales de redes de hardware / software y entramos en un mundo virtual, o un mundo espejo como Gelertner. Fue el primero en entender. Una forma de entender las cosas es a través de las interpretaciones de De Landa de Deleuze.

Las siguientes referencias son buenas para proporcionar un marco para convertirse en mejores desarrolladores de software. Si bien no enfatizan ningún aspecto particular de la ingeniería / desarrollo de software, ni los procesos / metodologías particulares de desarrollo de software o los lenguajes de programación, son buenos para ayudarlo a ver la ingeniería / desarrollo de software desde una perspectiva holística. Además, enfatizan los pasos y procesos involucrados en convertirse en un desarrollador de rockstar.

Los libros [1] y [2] son ​​lo mismo. Son de diferentes ediciones.

[1] C. Fowler. Mi trabajo fue a la India: y todo lo que obtuve fue este pésimo libro . Estantería pragmática, Raleigh, NC, 2005.

[2] C. Fowler. El programador apasionado: crear una carrera notable en el desarrollo de software . La vida pragmática. Estantería pragmática, Raleigh, Carolina del Norte, segunda edición, 2010.

[3] P. Graham. Hackers y pintores: grandes ideas de la era de la informática . O’Reilly Media, Sebastopol, CA, 2004.

[4] A. Hunt y D. Thomas. El programador pragmático: de oficial a maestro . Addison Wesley, Reading, MA, 1999.

Voy a sonar como un pony de un solo truco diciendo esto, ya que he mencionado este libro varias veces, pero creo que los programadores necesitan leer (y hacer los ejercicios en) Estructura e interpretación de programas de computadora (referido como “SICP”) por Abelson y Sussman. Es casi como obtener una educación universitaria completa en informática en un libro. Eso va a sonar como si lo estuviera desproporcionando, pero a medida que lo revisaba, descubrí que cubría mucho de lo que aprendí en un programa universitario de 4 años, y algo más (pero sin complicaciones). Bastante sorprendente de esa manera. Alan Kay lo llamó el mejor libro de texto de informática que ha visto. Eso es un gran elogio de parte de él.

Supongo que si tuviera otra oportunidad para responder esta pregunta, suponiendo que no se necesita desarrollar más habilidades técnicas, recomendaría “Mito de la máquina: técnicas y desarrollo humano”, de Lewis Mumford.

  • El pequeño intrigante
    http://www.amazon.com/The-Little
    Absolutamente increíble, especialmente si se trata de lenguajes funcionales … y podría serlo incluso si no se da cuenta: ¡digamos que si está en Javascript o Python, debería leer este libro!
  • El manual de diseño de algoritmos
    http://www.amazon.com/Algorithm-…
    Una lectura obligada, es más conciso que el Corman-Rivest, y también menos exhaustivo, pero tiene un enfoque práctico que te ayuda a desarrollar una mente orientada a algoritmos: en otras palabras, te enseña a pensar en la estructura de datos correcta / algoritmo cada vez que enfrenta un nuevo problema.
  • Introducción a los algoritmos
    http://www.amazon.com/Introducti
    Algoritmos 101, en cierta profundidad.
  • Crockford en JavaScript
    http://yuiblog.com/crockford/
    OK, técnicamente no es un libro; eso sería http://www.amazon.com/JavaScript
    Deberías comprar el libro también si alguna vez vas a probar la programación javascript, pero en los videos hay muchísimo más que javascript … No me perdería una de sus charlas por … bueno, por casi cualquier otra cosa.

The Mythical Man Month es un clásico interesante y entretenido que analiza algunos de los elementos más humanos de la programación. Si bien hay mucho que ha cambiado en la industria desde que se publicó el libro, la naturaleza general del trabajo colaborativo en grandes proyectos de software no es tan diferente de cuando Fred Brooks originalmente concibió sus pensamientos sobre la ingeniería de sistemas de software en los años 70/80.

El libro no es bueno para la sintaxis o la gramática en ningún lenguaje de programación específico, pero contiene muchas referencias que los programadores y los informáticos aportan a la industria: 9 mujeres no pueden producir un bebé en un mes, no hay bala de plata, etc.

También proporciona un contexto práctico: a modo de ejemplo, un artículo reciente en TechCrunch ( http://techcrunch.com/2011/08/03 …) analiza cuánto tiempo pueden llevar los ingenieros de Google reconstruir Facebook. En el artículo, el autor cita que Facebook podría ser construido en 2 años por 250 ingenieros de Google, pero se pregunta por qué el tiempo no se puede reducir a la mitad o dividir en cuartos mientras los recursos se duplican o cuadruplican. No necesita una comprensión experta de programación o ciencias de la computación para ver dónde podría romperse esta última lógica (vea el primer comentario en el hilo), pero un marco de referencia común facilita la comunicación de las realidades técnicas y las economías de escala no lineales involucradas ( nuevamente, vea el primer comentario en el hilo de comentarios).

A menos que lea un libro completo sobre cuán grandes se deben construir las cosas, también puede leer publicaciones sobre Quora sobre eso de personas que han administrado tales proyectos: ¿Cuánto tiempo tomaría construir Facebook desde cero a partir de julio de 2012? y estoy seguro de que hay otros ensayos similares en línea. Independientemente de dónde provenga la información, es la sabiduría práctica subyacente de cómo las cosas pequeñas encajan en el mundo real, a menudo no tan bien, contenidas en The Mythical Man Month (escrito hace tanto tiempo) lo que lo convierte en una excelente lectura para cualquiera en las complejidades cotidianas del código.

Mi top 3.

  1. Code Complete: A Practical Handbook of Software Construction, Second Edition: Steve McConnell: 0790145196705: Amazon.com: Books

    Cobertura integral, independiente del lenguaje, del panorama bastante vasto que debe dominarse para convertirse en un ingeniero de software competente.

  2. Patrones de arquitectura de aplicaciones empresariales: Martin Fowler: 9780321127426: Amazon.com: Libros

    Fowler piensa mucho en sus libros y tiene la habilidad de explicar conceptos difíciles. Aunque Fowler usa Java, los conceptos y patrones son universales.

  3. El Programador Pragmático: De Journeyman a Master: 9780201616224: Computer Science Books @ Amazon.com

    Este es un buen complemento para Code Complete. Andy Hunt reúne un conjunto de recomendaciones que puede llevar años a un programador seguir y dominar lo suficiente. De nuevo, no es específico de ningún idioma.

¡Hola!
Si tiene curiosidad acerca de la vida como programador, “Coders at Work” es el libro para usted. Está repleto de entrevistas interesantes de 15 programadores consumados y científicos informáticos, incluidos Joshua Bloch, Peter Norvig, Donald Knuth, Ken Thomson y Jamie Zawinski. Los codificadores en el trabajo dan un vistazo a lo que hace que algunos de los mejores programadores funcionen y cómo piensan. Definitivamente una lectura obligada!
Compre este libro en nuestro sitio web MyPustak gratis. También tenemos más libros sobre programación, también puedes comprarlos gratis. ¡¡Feliz lectura!!
¡¡Gracias!!

El programador pragmático por Andrew Hunt y David Thomas es un libro fantástico que analiza el proceso central detrás del desarrollo de software sin tratar de vender ninguna metodología en particular que explique la mecánica de la programación que lo ayuda a escribir código flexible y adaptable. Proporciona pautas para usar herramientas y códigos de prueba de manera efectiva. Además, proporciona muchos conceptos para desarrollar código de alta calidad y utiliza el enfoque pragmático hacia la programación. Debe leer para cada programador .

《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áticos: refactorice su Wetware》 por Andy Hunt
《Estimación de software: desmitificando el arte negro》 por Steve McConnel
《El programador apasionado | 我 编程, 我 快乐: 程序员 职业 规划 之 道》 por Chad Fowler
《Hackers: héroes de la revolución informática | 黑客: 计算机 革命 的 英雄》
《Algoritmos + Estructuras de datos = Programas》
《Escribir código sólido》
《JaveScript: las partes buenas | JavaScript 语言 精粹》
《Getting Real》 by 37 Signals
《Fundamentos de programación》 por Karl Seguin
《Gráficos por computadora: principios y práctica en C (2ª edición) | 计算机 图形学 原理 及 实践: C 语言 描述》
《Pensar en Java | 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
《The Deadline: A Novel About Project Management》 por Tom DeMarco
《El lenguaje de programación C ++ | C ++ 程序 设计 语言》 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 | .NET 设计 规范: 约定 、 惯用法 与 模式》 por Brad Abrams
《Objeto de pensamiento》 por el Dr. David West
《Programación avanzada en el entorno UNIX | UNIX 环境 高级 编程》 por W. Richard Stevens
《Hackers y pintores: grandes ideas de la era de la informática | 黑客 与 画家》
《El alma de una nueva máquina | 新 机器 的 灵魂》 por Tracy Kidder
《CLR a través de C # | 框架 设计》 por Jeffrey Richter
《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
《Acerca de la cara: los elementos esenciales del diseño de interacción | Sobre Face3 交互 设计 精髓》
《Aquí viene todo el mundo: el poder de organizar sin organizaciones | 未来 是 湿 的: 无 组织 的 组织 力量》 por Clay Shirky
《El Tao de la programación》
《La belleza computacional de la naturaleza》
《Philip and Alex’s Guide to Web Publishing Web
《Análisis y diseño orientado a objetos con aplicaciones | 面向 对象 分析 与 设计》 por Grady Booch
《Java efectivo | Java efectivo 中文 版》 por Joshua Bloch
《Computabilidad: una introducción a la teoría de la función recursiva》 por NJ Cutland
《Mentes maestras de programación | 编程 大师 智慧 / 编程 之 魂》
《Tao Te Ching | 道德 经》
《El programador productivo | 卓有成效 的 程序员》
《El arte del engaño》 por Kevin Mitnick
《The Career Programmer: Guerilla Tactics for a Imperfect World》 por Christopher Duncan
《Paradigmas de programación de inteligencia artificial: estudios de casos en Common Lisp》
《Maestros de la fatalidad | Doom 启示 录》
《Prueba de unidad pragmática en C # con NUnit》 por Andy Hunt y Dave Thomas con Matt Hargett
《Cómo resolverlo: un nuevo aspecto del método matemático | 怎样 解题: 数学 思维 的 新 方法》 por George Polya
《El alquimista | 牧羊 少年 奇幻 之 旅》 por Paulo Coelho
《Smalltalk-80: El lenguaje y su implementación》
《Escribir código seguro (2a edición)》 por Michael Howard
《Introducción a la programación funcional》 por Philip Wadler y Richard Bird
《No Bugs !: Entrega de código libre de errores en C y C ++》 por David Thielen
《Retrabajo | 重 来: 更为 简单 有效 的 商业 思维》 por Jason Freid y DHH
《JUnit en acción | JUnit 实战》

Influencial es un término muy relativo y lo que influye en una persona también cambia durante un período de tiempo. A continuación se enumeran seis libros que considero bastante influyentes en mi carrera como desarrollador de software y ahora como administrador de programas de software. También he dado breves razones para el “por qué”. Y, por supuesto, tengo estos libros en mi biblioteca y me refiero a ellos una y otra vez.

La práctica de programación de Kernighan y Pike, porque los programadores necesitan escribir código que sea efectivo y productivo

Code Complete por Steve McConnel – Code Complete: A Practical Handbook of Software Construction – porque necesita una guía de programación y esta es la mejor.

The Psychology of Computer Programming por Gerald Weinberg, porque este libro es tan relevante hoy como lo fue en 1971 y comenzó la charla sobre el enfoque orientado a las personas a la programación.

Peopleware: Proyectos y equipos productivos de Tom DeMarco, porque este libro le enseña que los Proyectos son sobre personas (siempre) y que este libro tiene muchas lecciones atemporales.

Cómo resolverlo: un nuevo aspecto del método matemático : porque necesita comprender cómo resolver problemas y este libro enseña una forma sistemática de hacerlo.

The Mythical Man-month de Frederick Brooks, porque esto tiene lecciones intemporales de la administración de un proyecto de software muy complejo, que un programador o alguien que maneja programadores no debe perderse.
——————————————————————————
Cuando miré las publicaciones en mi blog, me di cuenta de que los libros mencionados en mi respuesta anterior y los autores, han figurado de manera prominente en muchas publicaciones. Es como un hilo que recorre la mayoría de las publicaciones en mi blog. La publicación se puede encontrar aquí en http://mysticmundane.blogspot.in

Estoy realmente sorprendido de que nadie haya mencionado a Godel Escher Bach (GEB ). Debería haber estado en el primero de la lista.

Solo para dar un vistazo: los libros se centran esencialmente en la evolución del “yo” (o “yo”). Cuando dices algo como: “Soy “, ¿qué quieres decir con ” yo “? ¿Cómo se forma el “yo”? ¿Cómo evoluciona el “yo” a partir de materias inanimadas como los electrones y los protones? El libro es la respuesta a esta pregunta. ¿Y por qué cada programador “DEBE” leerlo? Porque en el proceso, explica la recursividad (Tu mente pensando en tu mente), Clases e Instancias (Muy razón que nos diferencia de los animales), Cómo funciona nuestra mente (Un programa en ejecución), etc.

Mis tres favoritos de todos los tiempos:

1. Biblia – Arte de la programación de computadoras
Nunca he podido terminar un libro también por completo (me salté el primero), pero cada vez que leo un nuevo capítulo, el libro continúa sorprendiéndome de lo hermosas que son las pequeñas cosas. Para mí, es más como una Belleza de Algoritmos suggest (Sugeriría esto si ya tiene un fondo de algoritmos y una lectura durante el tiempo libre, no solo antes de los exámenes, etc.).

2. Rompecabezas de algoritmos: Anany Levitin y Marie
No tan conocido Pero me encanta resolver preguntas de este libro. ¡Resuelve rompecabezas usando un paradigma de programación! Totalmente impresionante.

3. Libro divertido: Head First Series:
Lea un libro de la primera serie principal, muestra cuán bellamente puede asociar la programación a objetos de la vida diaria, escenarios 🙂 Hace que aprender sea mucho más divertido. ¡Me encantó Head First C, Java, Networking!

PD: Amazon te regaló un cupón por publicar esta pregunta, terminé ordenando ocho libros después de recordar algunos de los libros que estaban en la lista “PARA LEER” 😛

Recomendaría CUALQUIERA de los libros que establecieron mi Big Nerds Ranch. He leído la mayoría de ellos y REALMENTE me ayudaron a convertirme en un excelente programador. Son un poco caros en las librerías minoristas, por lo que recomiendo comprarlos en Amazon. Aquí hay una lista parcial de sus mejores títulos:

Programación Objective-C: la guía Big Nerd Ranch (2a edición)

Programación de iOS: la guía Big Nerd Ranch (4a edición)

Programación de iPhone: la guía Big Nerd Ranch (guías Big Nerd Ranch)

Programación avanzada de Mac OS X (3a edición)

Programación de Cocoa para Mac OS X (4a edición)

Programación de Android: la guía Big Nerd Ranch

Además, todos los programadores deben leer:

The C Programming Language, 2.a edición Paperback – 1 de abril de 1988

por Brian W. Kernighan (Autor), Dennis M. Ritchie (Autor)

En mi opinión, es como la biblia del lenguaje de programación C. El lenguaje de programación C fue el primer idioma que aprendí en la universidad y proporcionó los fundamentos que necesitaba para pasar a los lenguajes de programación orientados a objetos como C ++ y Objective C y C # (Microsoft). ¡Definitivamente compre y lea este libro!

Cerca de Big Nerd Ranch

El Big Nerd Ranch que todos amamos tiene sus orígenes en 1979, cuando las corbatas eran anchas y los zapatos eran altos. Mientras el resto del mundo bailaba bajo una bola de discoteca, Aaron Hillegass, de 10 años, estaba profundizando en la programación de computadoras. En las próximas décadas, su viaje lo llevaría a convertirse en entrenador y desarrollador en NEXT.
Pero su visión más grande todavía estaba a la vuelta de la esquina. El 28 de febrero de 2001, Aaron y su socio comercial Emily Herman comenzaron Big Nerd Ranch.
Cuando comenzó Big Nerd Ranch, enseñamos lenguajes de programación, y lo hicimos muy bien. Pero a pesar de lo que haya escuchado en la escuela primaria, los maestros no lo saben todo. Entonces nunca dejamos de aprender. Nuestros instructores se convirtieron en consultores y autores (con suficientes libros para llenar la biblioteca Big Nerd y la lista de los más vendidos de Amazon).
Lo que aprendemos se remonta al aula y a la consultoría. Entonces, una mano de Ranch lava la otra, como una manera de hablar. Y el aprendizaje sigue siendo el núcleo de todo lo que hacemos. Después de todo, en una industria donde todo cambia rápidamente *, es crucial mantenerse a la vanguardia.

Espero que mi respuesta sea útil. Además, recuerde que la mejor manera de ser realmente bueno en la codificación es SOLO HACERLO. ¡Práctica práctica práctica!

Todo lo mejor y buena suerte,

James

En la actualidad, como programador, puede encontrar conocimientos sobre cómo escribir código en cualquier lugar. Sin embargo, nuestro comportamiento como programadores / desarrolladores de software, nuestras expectativas y mantenernos firmes en una industria que siempre está cambiando.

Un libro nunca es suficiente. Estos libros te ayudarán a ser un programador independientemente del idioma que uses.

The Clean Coder Por Robert Martin hace un buen trabajo en general. Habla sobre algunas de sus experiencias (fallidas y exitosas) y ofrece algunos consejos útiles. Lo mejor que puede aprender de estos libros es que debe asumir la responsabilidad de cada línea de código que escriba.

Pensamiento y aprendizaje pragmáticos Por Andy Hunt habla sobre cómo pensar como desarrollador.

El programador pragmático Por Andrew Hunt y Dave Thomas. Esto nos recuerda que convertirse en un buen / gran programador es un proceso y requiere práctica deliberada y acciones deliberadas.

Probablemente no sea el libro más influyente, pero dado que esto no se mencionó en las respuestas anteriores y es una lectura excelente para los programadores:


Hacker’s Delight: http://www.amazon.com/Hackers-De

Hay una segunda edición ahora, aunque no sé cómo se compara con el original: http://www.amazon.com/Hackers-De

He votado a favor 2 respuestas que mencionaron los libros de Donald Knuth. Solo tienes que tenerlos. No los leerá ni hará referencia a ellos regularmente, pero los necesita para encontrar los algoritmos mejores / adecuados y (lo más importante) para comprender por qué es una mejor opción que otros algoritmos que hacen lo mismo.

Y para el mundo ágil moderno, me encantaría recomendar este libro. Se enfoca en la mentalidad correcta al desarrollar y liberar código. No puedo enfatizar lo suficiente lo importante que es escribir código no para las condiciones ideales de “oasis like” del cuadro de desarrollo sino para el mundo real, donde pueden ocurrir muchas situaciones inesperadas (para un desarrollador).

¡Suéltelo !: Diseñe e implemente software listo para producción (programadores pragmáticos): Michael T. Nygard: 0852766001315: Amazon.com: Libros

Fig. Forth 83 . Si bien Forth está bastante muerto (durante mucho tiempo), la forma en que Forth funcionaba y la forma en que se escribió el libro cambiarán drásticamente la forma en que pensamos sobre lo que se puede hacer con un procesador simple y algunas instrucciones. El núcleo del intérprete / compilador Forth tenía alrededor de 16 instrucciones de máquina en Z80. ¡El lenguaje en sí produce un código más rápido y compacto que el lenguaje ensamblador en la misma máquina! Forth no tenía palabras clave, instrucciones, procedimientos, objetos, eventos, archivos, ¡ni siquiera estaba usando un sistema operativo host!

Sobre el libro en sí, es el mejor libro escrito que he disfrutado: cubre todos los detalles del producto con gran humor y muy fácil de leer y aprender. Un libro que debe ver:

Iniciando FORTH por Leo Brodiehttp: //www.forth.com/starting-forth/sf1/sf1.html

“La incapacidad de Leo Brodie para expresar incluso los conceptos técnicos más complejos sin agregar un toque de humor proviene de un temprano amor por la comedia …”
(de la Introducción de la primera edición)

Simplemente siga cómo el Compilador, el Intérprete y el Ejecutante están imprimiendo una estrella:

No estoy seguro de por qué me pidieron que respondiera ya que nunca he sido programador. Sin embargo, mi madre ha sido programadora desde las tarjetas perforadas y Fortran. A lo largo de su carrera, estuvo constantemente aprendiendo nuevos lenguajes de programación. Sus estanterías siempre cambiaban en ese departamento.

Recuerdo que ella siempre decía que el libro más importante de un programador es el que escriben ellos mismos. Mantenga una carpeta y escriba cómo trabajó cada trabajo, qué código especial encontró para que un programa hiciera algo, cómo se solucionó un problema técnico, etc.

Mi madre la llamó su Biblia.

Depende de tu experiencia actual. +1 para “La práctica de la programación” de Kernighan et. Alabama. a nivel escolar. Después de leer eso, recomiendo encarecidamente el “Código completo” de Steve McConnell, que lleva eso y más material a mucha mayor profundidad, al tiempo que destaca las prácticas esenciales que le permiten tomar buenas decisiones en una amplia variedad de situaciones.