¿Existe una fecha de vencimiento para los libros de programación bien considerados pero antiguos? [cerrado]

51

Después de leer una pregunta sobre libros que todo programador debería leer , me pregunto si lo siguiente debería considerarse obsoleto:

Todos estos libros parecen muy viejos. ¿No hay una diferencia entre la informática moderna y lo que era actual cuando se escribieron esos libros?

Por ejemplo, mi maestra de 61 años explica muy bien las cosas, pero olvida tener en cuenta todo lo que se hizo entre cuando comenzó a enseñar hace 25 años y ahora.

¿No es lo mismo cierto para esos libros? ¿No hay más libros modernos que enseñen principios y tecnologías que estén más cerca de la práctica actual? ¿O los considera útiles y relevantes incluso hoy?

Olivier Pons
fuente
99
Merecería la pena considerar por qué todos los títulos enumerados se publicaron por primera vez hace al menos 12 años, pero aún hoy son valiosos. Cuatro de los cinco han sido actualizados desde su primera edición, pero el tiempo promedio entre las ediciones es de 10.4 años.
Caleb
83
Los principios fundamentales de programación no cambian solo porque hay un nuevo lenguaje o marco de "sabor de la semana".
Robert Harvey
26
Esperar que un graduado en ciencias de la computación en bruto construya un sistema de software complejo es como esperar que un graduado en ingeniería civil en bruto diseñe un puente colgante, simplemente no debería suceder. La escuela no te enseña todo lo que necesitas saber de una manera remota, debería enseñarte cómo aprender a ser un gran ingeniero de software, y estos viejos libros tienen tanto que decir ahora como lo hicieron hace décadas: se acabó 16 años desde que se publicó la edición del vigésimo aniversario de The Mythical Man-Month, y es tan relevante hoy como el original en 1975.
Mark Booth
10
estos libros son eternos; pero el programador que se limitaría solo a estos libros y que ignoraría cosas más nuevas, sería obsoleto de hecho
mosquito
44
Estás haciendo la pregunta: si los libros son buenos, entonces no son obsoletos.
quant_dev

Respuestas:

92

Estos libros tratan sobre los principios del desarrollo. Estos principios son, por naturaleza, independientes del lenguaje, y para algunos incluso independientes del paradigma (POO, programación funcional, lenguajes imperativos).

Explican la teoría y las buenas formas del desarrollo porque, al final, el software siempre se trata de obtener datos, procesarlos y luego enviarlos de vuelta. Facebook, Twitter, 3D, proceso de contabilidad por lotes, gestión del tráfico ferroviario, lanzamiento de cohetes, etc.

Libros que tratan sobre un idioma, como "How to learn XXXXX in YY days", donde XXXXX es un idioma y YY es un número que eventualmente (y a veces muy rápidamente) se volverá obsoleto, porque, por naturaleza, se trata de cosas que evolucionan, o son reemplazadas y se vuelven anticuado.

Code Complete , del increíble Steve McConnell, es quizás el libro que me hizo darme cuenta de esto. Y el Programador pragmático cambió totalmente la visión que tenía del desarrollo de software. Al leer tales libros, te das cuenta de que el 95% del problema que enfrentas todos los días ya se ha resuelto, y que el 95% de nosotros todavía estamos reinventando la rueda.

La llamada "Nube" no es el futuro del desarrollo de software, es una forma de usar software desarrollado.

No caiga en la trampa de las palabras de moda exageradas / tonterías, concéntrese en cómo puede mejorar sus habilidades de artesano de software.

Concéntrese en aprender de lo que otros espíritus brillantes han inventado y aprendido antes que nosotros, porque es la única forma de convertirse en un desarrollador consumado.

Clement Herreman
fuente
66
Los buenos artistas copian los grandes artistas roban
Hafichuk
16
... los verdaderos artistas se envían. :-)
poco
99
Y, sin embargo, no importa cuántas veces lo digamos, las personas todavía creen que solo necesitan JavaScript en 12 días.
Spencer Rathbun
2
¡Los buenos artistas copian, los grandes artistas copian Y mantienen el código limpio! (He tenido tantos dolores de cabeza en la escuela trabajando con otros niños que hicieron un desastre del proyecto porque copiarían de todo y de todos ...)
HTDutchy
Además, @SpencerRathbun (en mi humilde opinión), Javascript consume mucho más salvado que otros lenguajes, como PHP. Sin embargo, hay un bazillion "Learn Javascript in 15 seconds"y solo medio bazillion de"Learn PHP on 17 secsonds"
Clement Herreman el
80

Todos esos libros parecen muy, muy, muy viejos ".

Psychology-Computer-Programming (1971) - Con un millón de veces más programadores que en 1970, la psicología de cómo diseñan programas y qué errores cometen y cómo evitarlos es más importante que nunca.

Software Tools (1976): como la web es una colección de marcos, utilidades, scripts y complementos, las ideas de Software Tools nunca han sido tan relevantes.

EDITAR: Para abordar la cuestión general de: ¿son relevantes los viejos libros de programación?

Los principios generales de la ingeniería de software no han cambiado tanto, hay nuevas tecnologías OO, TDD, etc. Pero, en general, los usuarios y los problemas no han cambiado, y pensar en cómo dividir un problema es lo mismo ahora. Siempre fue.

Estos libros antiguos generalmente fueron escritos por expertos en el campo. Muchos libros de programación modernos tienen como objetivo apresurar una puerta de entrada de 2000 páginas para la última palabra de moda mientras aún está vigente.

Los libros sobre idiomas y tecnologías que ya no se usan probablemente no sean relevantes: no hay ningún manual de ensamblador Vax en la lista. Pero 'C' todavía se usa mucho y 'El lenguaje de programación C' no es solo el mejor libro sobre 'C', es un modelo de cómo escribir un tutorial conciso y una referencia a su lenguaje.

¿Hay nuevos algoritmos? Si. Pero todos los algoritmos antiguos siguen siendo relevantes y la mayoría de los nuevos están en áreas oscuras que es poco probable que se encuentren. Nadie ha encontrado un mejor tipo o FFT recientemente. Aunque otras personas han intentado explicarlos mejor, no hay razón para que los libros de Algoritmos de este año sean mejores que CLRS.

PD. Su nuevo y genial iWhatsit ejecuta BSD, desarrollado en 1977. ¡Ahora ustedes, niños, salgan de mi césped!

Martin Beckett
fuente
28

Todos esos libros parecen muy, muy, muy viejos. ¿No crees que hay una diferencia entre hoy en día y cuando se escribieron esos libros?

En mi humilde opinión, no es una sorpresa que muy buenos libros sigan siendo populares durante décadas, lo que demuestra lo buenos que son. Pero creo que puedo decirte algo para cada uno de los candidatos que enumeraste:

Code complete: 2nd edition = may, 2004

En realidad, la primera edición de "Code complete" fue de 1993, por lo que esta es realmente un "clásico". Se trata de un estilo de codificación básico, utilizando ejemplos que se aplican a casi todos los lenguajes de programación de la familia C, que contiene los lenguajes más populares en la actualidad (C / C ++ / Java / C # / Objective-C / D / ...). Entonces sí, este libro está actualizado.

Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)

Bueno, en realidad no leí ese libro (mi libro de texto de algoritmos era de "Sedgewick"), pero el aprendizaje de algoritmos y construcción de algoritmos es realmente independiente del lenguaje. Por supuesto, este oficio se está subestimando en los últimos años, ya que hoy en día se encuentran muchos algoritmos básicos en bibliotecas estándar, pero en mi humilde opinión, cada programador profesional debería tener algunos conocimientos básicos en este campo.

The Pragmatic Programmer

Este es un libro muy bueno sobre la programación como un trabajo artesanal. Lenguaje agnóstico y muy, muy actualizado, siempre que los programadores realicen la programación como una tarea manual, utilizando editores de texto, IDE, control de versiones, etc.

Structure and Interpretation of Computer Programs: = September 1, 1996

Este es mi favorito personal, aunque (o quizás porque) el libro usa Scheme para enseñarle las diferencias entre los diferentes paradigmas de programación. No conozco ningún otro libro que tenga un enfoque tan fuerte en construir abstracciones. Y construir abstracciones es una habilidad clave que marca la diferencia entre un programador mediocre y un programador superior, que no ha cambiado en las últimas décadas, así que realmente, este libro es atemporal. Además, los lenguajes funcionales y los elementos del lenguaje se han vuelto más populares recientemente, por lo que en mi humilde opinión, las ideas presentadas en este libro tuvieron un renacimiento.

The C Programming Language

Bueno, este libro puede no ser tan atemporal como los otros cuatro. Pero dado que C es algo así como la "madre" de todos los lenguajes populares que mencioné anteriormente, puede ser una buena idea leer este libro, no creo que haya algunos libros modernos de "C" que sean realmente mejores. Y si tiene que hacer una programación de mantenimiento del código C ++ que fue escrita por alguien que conocía mejor a C que a C ++, entonces este libro es imprescindible.

Finalmente, estaba pidiendo libros que tengan más en cuenta la "realidad actual", sin ser demasiado específicos de la tecnología. Entonces, ¿cuál es la "realidad actual" y qué ha cambiado en el lado "no tecnológico"? Aquí hay algunos puntos de la última década, sin decir que esta lista está completa o que tiene las prioridades correctas.

  1. Existe más código heredado (especialmente más código heredado no solo en Fortran y Cobol, sino también en C ++ y Java).
  2. Las pruebas unitarias y TDD se han vuelto más favoritas.
  3. Hay mucho más código fuente abierto disponible.
  4. OO ha recibido más y más críticas

(No enumero aquí nada sobre desarrollo web o de aplicaciones, porque creo que esta tecnología es específica).

Existen buenos libros para los temas 1 y 2, especialmente "Código limpio" , que es de 2008, y "Trabajo eficaz con código heredado" de 2004. ¿Quizás esos son algunos de los libros "más nuevos" que está buscando?

Doc Brown
fuente
55
El lenguaje de programación C es atemporal. Tal libro destilado es raro. Lo volví a leer por ... No lo sé, perdí la cuenta (lo leí por primera vez cuando tenía 13 años) y todavía lo aprecio. Más bien, lo aprecio mucho más ahora.
Francesco
3
Agregaré # 5 a su lista: computación paralela. No es exactamente una nueva idea, pero hoy en día se está haciendo en una escala sin precedentes, que trae algunos problemas nuevos. Pero todo esto todavía se basa en los mismos fundamentos que las cosas antiguas, y tengo la sensación de que el OP todavía no comprende realmente esos fundamentos.
Mike Baranczak
2
@ Mike: Estoy de acuerdo, la computación paralela está recibiendo cada vez más atención en la última década, me perdí eso cuando escribí mi respuesta.
Doc Brown
2
@ Doc Brown ¿Son sus puntos de vista sobre la atemporalidad de la literatura debido a que visitó 1885, 1955, 1985 y 2015 dentro de unos pocos 'días' desde su propia perspectiva?
Kalamane
13

De los que mencionó "Código completo", "El programador pragmático" y "SICP" han estado en mi lista de lecturas recomendadas para todos los nuevos desarrolladores que comienzan aquí en mi empresa y quieren llegar a un nivel superior.

No son obsoletos ni mucho menos porque la ciencia fundamental en informática no ha cambiado.

Joris Timmermans
fuente
10

No he leído todos esos libros, pero tengo Code Complete y The Pragmatic Programmer. Estos libros están lejos de ser obsoletos. Es posible que tengan un par de párrafos que están un poco oxidados, pero la mayor parte del contenido sigue siendo relevante hoy en día.

El avance en Informática y Programación es un proceso evolutivo . Se están introduciendo nuevas abstracciones sobre las viejas, pero estas cosas nuevas no necesariamente hacen que las viejas sean obsoletas.

Una analogía ... Ya sea que esté estudiando para ser un cirujano de trauma o un cirujano especializado en trasplante de corazón, aún necesita saber cómo funciona el cuerpo humano, la química celular, los sistemas de órganos, cómo abrir el cofre y cómo abrirlo rápidamente. deje de sangrar si ocurre, etc. Solo porque inventaron equipos endoscópicos y técnicas menos invasivas, no significa que esté fuera del gancho para aprender lo básico. Solo significa que tienes que aprender más.

revs c_maker
fuente
Sí, la anatomía de Gray (el libro real, no el programa de televisión) fue escrita en 1918 y los estudiantes de medicina todavía la usan.
HLGEM
7

La "nube" no es un factor. La "nube" es en realidad mucho más antigua que la mayoría de los libros que enumeró. la mayoría de esos libros son sobre principios básicos, realmente nunca cambian a menudo. Los marcos y las bibliotecas cambian todo el tiempo, pero la forma en que debe estructurar su código no cambia mucho. Del mismo modo, un puntero sigue siendo un puntero, no comienza a hacer cosas diferentes solo porque sí. El único libro específico de lenguaje que mencionó es sobre C, en cuyo caso ese libro viejo es mucho más útil que cualquier cosa nueva, porque probablemente fue escrito más cerca del período de tiempo en que se desarrolló cualquier código C con el que estaría trabajando.

Ryathal
fuente
6

La lista que citó, no, no son obsoletas. Un libro solo es obsoleto cuando el tema ha cambiado lo suficiente como para que no sean útiles. La naturaleza de la programación y el lenguaje C han cambiado muy poco desde su publicación.

Tom Squires
fuente
6

Una de las cosas que debe tener en cuenta es que existen principios subyacentes que son esencialmente atemporales y implementaciones que tienden a ir y venir.

Los principios subyacentes son esencialmente toda la teoría aburrida en la que la informática tiende a pasar mucho tiempo, y que sigue siendo válida incluso si el mundo cambia a su alrededor. Esto en oposición a cosas como "Cómo usar Win32s en Windows 3.11", que es muy antiguo y obsoleto.

Para poner las cosas en perspectiva, el texto canónico sobre geometría tiene dos mil años. La mayoría de las matemáticas que se enseñan hasta el nivel universitario tienen al menos 300 años. La única razón por la que los libros de CS no son más antiguos es porque el campo aún es nuevo.

usuario1249
fuente
La proposición 1 de Euclides del libro 1 no puede probarse a partir de las definiciones, axiomas y postulados suministrados. No es una buena opción aprender de hoy en día, y después de milenios puede considerarse obsoleto.
David Thornley
1
@DavidThornley si Euclids Elements no es el texto canónico sobre geometría, ¿qué es?
6

Algunos libros son atemporales porque discuten ideas que son tan fundamentales para la práctica del desarrollo de software que siempre se aplicarán.

Tomemos, por ejemplo, el Mes del Hombre Mítico , cuando estaba leyendo este libro, me olvidaba que estaba escrito en 1975. Cuando espolvorea alguna referencia ocasional sobre IBM System 360, siempre me molesta porque ese es el único contenido que data del libro. Todo lo demás se aplica aquí y ahora. Todavía conservo mi copia de los Patrones de arquitectura de aplicaciones empresariales de Martin Fowler , ahora de 9 años pero nuevamente intemporal y aún aplicable al trabajo que hago hoy.

Mi libro favorito en este momento es Java Modeling en color de Peter Coad con UML (1999) a pesar de que soy un desarrollador de C # y evito UML, porque las técnicas y conceptos me hacen un mejor codificador.

Haríamos bien en aprender de la primera generación de desarrolladores porque han pisado el terreno por el que estamos caminando en este momento y su sabiduría duramente ganada puede ayudarnos a comenzar rápidamente lo que estamos haciendo / aprendiendo hoy.

Michael Brown
fuente
MMM - Me gusta la parte del equipo que constantemente corrige errores, pero el número de errores se mantuvo constante :)
JoelFan
5

Los principios básicos del software no han cambiado en los últimos 20 años. Una pila, un árbol y una lista vinculada siguen funcionando igual que en aquel entonces. "XOR" todavía significa lo mismo. Un byte todavía tiene 8 bits.

¿Estás sugiriendo seriamente que el "desarrollo multiplataforma" es una idea nueva? ¿Por qué crees que C fue inventado?

"Cloud" es una palabra de moda de marketing. Solía ​​significar algo específico, pero ha sido degradado por el uso excesivo. Hoy en día, cada vez que tiene algo que le habla a un servidor remoto a través de una red, los vendedores le pegan la etiqueta de "nube". Entonces, realmente no tiene sentido hablar de eso, porque es una palabra sin sentido.

No conozco a tu profesor de 61 años, así que no puedo responder por él. Usted, por otro lado, claramente no es tan inteligente como cree que es. Escucha al profesor, es posible que aprendas algo.


"No puedes ser viejo sin ser tonto. Muchos jóvenes sabios, murieron como un hijo de puta". - Richard Pryor

Mike Baranczak
fuente
2
"Tú, por otro lado, claramente no eres tan inteligente como crees que eres". Si pensara que soy tan inteligente, nunca habría hecho una pregunta así.
Olivier Pons
4

Aquí hay algunos libros más antiguos y desactualizados:

  • El arte de la programación de computadoras, vol. 1-3 por D. Knuth. ¡Estos fueron publicados entre 1968 y 1981! ¡Ya no usamos tubos de vacío, gente! Todo en estos libros es cojo. ¿Dónde está la discusión sobre Python y Ruby?

  • Computadoras e Intractabilidad: una guía para la teoría de la completitud NP por MR Garey y DS Johnson, 1979. ¡Súper cojo! Todos estos problemas ya se han resuelto, probablemente.

Si un libro no fue escrito en los últimos tres años con enfoque en Python, entonces no vale la pena leerlo.

stackoverflowuser2010
fuente
Para ser justos, hay al menos un caso para hacer que el uso de TAoCP de un ensamblador para su pseudocódigo signifique que los libros de algoritmos más modernos que usan pseudocódigo más cercanos a lenguajes más modernos son más útiles para el 90% de nosotros que no escribimos para incrustar sistemas.
Peter Taylor
-1: cada semana o dos veo a alguien pidiendo un algoritmo para manejar algo u otro que Knuth ha descrito con increíble detalle. Solo por diversión: nombra un algoritmo de clasificación que sea más nuevo que 1981. ¿Quieres responder una clasificación paralela? Knuth tiene páginas sobre cómo ordenar datos en paralelo. Puede que tengas razón sobre los libros de Python, pero hay una gran diferencia entre los libros "El sabor de la semana" y los libros de manualidades de ingeniería.
sarnold
55
Aparentemente, algunos detectores de sarcasmo están rotos ...
DaveE
1
<Sarcasm> "Comentario" </Sarcasm>
NWS
1
¡Creo que esta respuesta mejoraría aún más si incluyera la mención de El arte de la programación informática, Volumen 4A, que se publicó en 2011 y el Volumen 5, planeado para 2020!
Mark Booth
3

Esos libros no son obsoletos, esos libros son clásicos.

Para citar a Kaplansky , " pase algún tiempo todos los días aprendiendo algo nuevo que no esté relacionado con el problema en el que está trabajando actualmente (recuerde que la desunión puede ser temporal) y lea los maestros " .

Francesco
fuente
3

Sé lo que quieres decir, cuando tenemos avances (viene a la mente LINQ) que cambian la legibilidad y el uso del código, pero simplemente porque estos libros son viejos, no significa que no ofrezcan grandes lecciones para el lector.

Si bien los lenguajes de programación que usan pueden haber quedado fuera de moda, la teoría detrás de los lenguajes de programación todavía suena cierta hoy en día. La mayoría de estos libros tratan de cubrir muy bien lo básico, y lo básico no ha cambiado tanto.

Caballero Cebolla
fuente
2
Los lenguajes de programación que usan son en su mayoría 'C'; pueden haber quedado fuera de moda, pero su uso ha aumentado enormemente.
Martin Beckett
3
Debería leer SICP, podría abrirle los ojos sobre el origen de LINQ :)
Joris Timmermans
1

La industria informática todavía es muy joven. Considero que los libros escritos hace 30 años siguen siendo valiosos y necesarios para una comprensión completa. Los conceptos abstractos a veces tardan en digerirse.

SoftwareCarpenter
fuente
1

Algunas partes menores son obsoletas en todos esos libros, pero el 99% sigue siendo excelente.

Los libros de algoritmos envejecerán lentamente. Los algoritmos son matemáticas, y las matemáticas no están cambiando rápidamente. Claro, todavía hay investigaciones sobre nuevos algoritmos que son superiores en ciertas circunstancias (por ejemplo, el algoritmo de Furer (2007) Schonhage-Strassen para multiplicar números largos de más de 40000 dígitos juntos), pero la introducción que necesita para aprender los conceptos básicos (divide y vencerás) / Programación dinámica / Programación lineal / etc.) para que pueda aprender a pensar con sensatez sobre los algoritmos.

Aprender el estándar C de K&R sigue siendo la mejor fuente; aunque no estoy seguro si confiaría en sus secciones sobre cómo configurar su entorno.

SICP es un libro maravilloso y enseña los fundamentos de la CS moderna a través de la enseñanza de lisp, que es un lenguaje maravilloso. Sin embargo, lisp posiblemente no sea el lenguaje más útil hoy en día; aunque otros argumentarán que lisp es su arma secreta y que aprender idiomas como java o python primero hace que los programadores sean muy malos y que nunca necesiten aprender cómo implementar listas o matrices enlazadas o notación big-O y terminen haciendo cosas muy ineficientes.

Algunos de Code Complete o Pragmatic Programmer son menos relevantes, especialmente si está programando en lenguajes más nuevos (por ejemplo, python / ruby ​​/ C ++ 11), ya que a menudo se enfoca en cómo hacer algo en C o brinda las soluciones recomendadas utilizando los mejores herramientas disponibles en ese momento (como CVS / RCS para control de versiones en lugar de una herramienta moderna como git / bzr / hg / svn). Pero sigue siendo bueno estar pensando en cómo el control de versiones es imprescindible y cómo debe ser transparente y autodocumentado y pasar por la lógica de por qué es un deber absoluto.

O las recomendaciones de PP contra IDEs para un editor básico de Unix + herramientas de Unix, por no decir que no debería aprender a usar find / awk / localizar / grep / sed, pero un buen IDE a menudo puede ahorrar mucho tiempo. Por ejemplo, emacs puede resaltar la sintaxis o completar código simple; pero digamos que un buen IDE dirá consejos sobre herramientas con declaraciones de funciones cuando las escriba, o analice el código y marque las variables no utilizadas, facilite el colapso de secciones de código, etc.

dr jimbob
fuente
1

¿No hay una diferencia entre la informática moderna y lo que era actual cuando se escribieron esos libros? ¿Crees que cambia lo que deberíamos aprender? ¿No deberíamos tener en cuenta la evolución de los últimos 20 años?

Si, si y si.

Eso no hace que esos libros sean obsoletos. "Computación moderna" es un término increíblemente amplio. Sin embargo, incluye programación en C, por lo que "El lenguaje de programación C" sigue siendo un libro relevante. Se incluye algoritmos, por lo que "Introducción a los algoritmos" sigue siendo un libro relevante. Y así sucesivamente.

¿Debería el énfasis actual en el desarrollo multiplataforma, el desarrollo multiplataforma (ver gaga telefónica) cambiar lo que aprendemos hoy?

La mayoría de las aplicaciones en App Store (para usar la plataforma móvil más popular como ejemplo) están escritas en Objective C, un lenguaje de principios de los 80 que es un superconjunto de C. Entonces, nuevamente, C sigue siendo relevante.

¿Crees que la "nube" es una moda o el futuro?

Es nuestro presente.

Cuando los estudiantes salen de la universidad, se supone que son verdaderos desarrolladores y pueden trabajar de inmediato.

Pero ¿qué significa eso?

Hay demasiados idiomas, API, marcos, plataformas, herramientas, estrategias de colaboración, etc. para que la escuela te prepare para un trabajo específico . La escuela solo puede sentar las bases, ofreciéndole un modelo de trabajo básico de cómo funciona la máquina, sobre algoritmos, estructuras de datos, construcción de códigos, estrategias de descomposición, algunas herramientas, etc.

Un "desarrollador real" no es alguien que lo sabe todo, es alguien con la capacidad para este tipo de trabajo, que tiene una base en teoría y práctica, y que sabe cómo aprender , porque su educación nunca termina.

barro
fuente
1
+1 para el comentario de "cómo aprender": para eso está la universidad, no para la capacitación laboral de memoria.
DaveE
1

Ok, entonces voy a ofrecer una respuesta que es mucho más teórica. Estoy de acuerdo con todos ustedes que respondieron, bastante obvio en mi opinión, que estos libros son la base de lo que hacemos nosotros como programadores y todos estos nuevos marcos están construidos sobre la misma línea de los viejos pilares.

Aquí están mis dos centavos, en realidad no los míos, lo aprendí de San Aquino y de Aristóteles antes que él.

An abstraction is useless to someone who doesn't understand the particulars.

La mecánica de una computadora no ha cambiado desde von-neumann. Del mismo modo, los detalles que necesita para aprender a ser un gran programador serán los mismos hasta que el modelo von-Neumann sea obsoleto. Asamblea, es el lenguaje de las computadoras ... aprende, no hay excusas.

C es el idioma nativo de Windows y Unix. Aprende o encuentra un nuevo comercio. Si usted es uno de esos tipos que fueron directamente a JAVA o C #, puede ser un buen programador, pero sería un mejor programador si aprendiera el período C--.

Los algoritmos y las estructuras de datos son la base de los programas informáticos, apréndalos.

Todo lo demás es una abstracción de estas disciplinas centrales. Las abstracciones son maravillosas cuando se usan correctamente; en serio, uso C # para el 75% de todos mis proyectos. Sin embargo, te vuelven estúpido si no te tomas el tiempo para entender cómo funcionan y cómo funcionar sin ellos. Pasará un tiempo interminable haciendo que el software se adapte al agujero cuadrado proverbial cuando haya enfoques mucho mejores y tenga errores que podrían haberse evitado. El desarrollo de software es un oficio que debe dominarse y, al final del día, las herramientas rara vez cambian. Es por eso que estos libros son tan importantes.

Todos estos programadores de JAVA y C # solo, tsk, ¡apuesto a que la mayoría de ellos nunca ha visto un episodio de Star Trek!

Jonathan Henson
fuente
1

Escuché un dicho de un mentor:

"Un buen consejo viene con una razón por qué para que sepa cuando ya no es un buen consejo." Entonces, en los términos del libro, un libro que explica por qué hacer X sobre Y le permitirá saber cuándo ese consejo ya no es válido. Un libro "siempre haz esto, solo hazlo", como algunos de los cursos intensivos en el lenguaje X, no es tan bueno.

Vi uno llamado "aprender Unix en 24 horas", bueno, el libro tenía unos 8 cm de grosor, dudo que muchas personas puedan leer cada página en 24 horas :)

Recuerde que lo que está de moda hoy podría burlarse de mañana. Todos los siguientes fueron considerados una vez mainstream (en boga ayer) pero ahora no lo son:

  • Ir
  • Entrada única salida única
  • Notación húngara
  • Enfoque de la cascada

Y hay algunas cosas que alguna vez fueron completamente anatema pero que ahora se aceptan:

  • La recursión como herramienta para resolver problemas (radical en los primeros días BÁSICOS)
  • Asignación de memoria en tiempo de ejecución con malloc / new
  • Uso de C ++ STL
  • Idiomas recolectados de basura para sistemas en tiempo real

Sepa por qué, y sabrá cuándo los viejos supuestos han sido reemplazados por una nueva realidad, y también el consejo.

anon
fuente