"La mitad de todo lo que sabes quedará obsoleto en 18-24 meses" = (¿Verdadero o Falso?) [Cerrado]

33

Me encontré con esto y me pregunté si alguien tiene una manera de probar o refutar esta afirmación:

Algo a tener en cuenta ... ¿cuál es la vida media del conocimiento en alta tecnología? Sigue la ley de Moore: la mitad de todo lo que sabes quedará obsoleto en 18-24 meses.

FUENTE: En respuesta de Craig Trader a esta pregunta " ¿Cuál es la cosa más efectiva que hiciste para mejorar tus habilidades de programación? "

errores
fuente
2
No veo cómo se puede probar esto.
Oded
50
Statement = (True or False)Sí.
Brillante
3
Creo que eso depende de lo que sepas.
LennyProgrammers
3
@glasnt: en ese caso siempre es cierto: /
Simon
2
La mitad de todo lo que sé está obsoleto ahora.
JD Isaacks

Respuestas:

131

Esta declaración se aplica solo a tecnologías efímeras, que de todos modos solo debe aprender según sea necesario. Dicho esto, aprenderás muchos de ellos a lo largo de tu carrera.

Los principios y técnicas fundamentales de programación son eternos.

Robert Harvey
fuente
55
Deliciosamente lacónico. +1
Tim Post
27
@Steven A. Lowe +1 por admitir que buscaste "efímero"
Tim Post
2
Es sorprendente cuán efímera puede ser una tecnología que pasó 7 años aprendiendo y utilizando cuando pierde ante Oracle (o Linux). Es cierto que lo que aprendí sobre la construcción e implementación de aplicaciones no desapareció, pero a nadie le importa Pick, Ultrix o cualquier cantidad de tecnologías perdedoras.
Craig Trader
71

Disparates

Las personas que dicen cosas así solo están tratando de ser sensacionalistas, o de lo contrario están aprendiendo cosas equivocadas.

Steven A. Lowe
fuente
8
+1 para "Están aprendiendo las cosas equivocadas"
Martin
44
Sabes, realmente creo que deberías dejar eso por completo y ... espera ... ¡ARDILLA!
Tim Post
+1 por señalar el sensacionalismo que prevalece en esta industria.
Rei Miyasaka
@Tim Post: ¿ Seguramente no?
Piskvor
17

La mejor prueba (¿la peor?) En la que puedo pensar es pensar en un año. ¿Cuánto del conocimiento de programación que usa cada día se aprendió en los últimos 18 a 24 meses? Además, ¿cuánto se inventó en los últimos 18-24 meses? El principio me parece muy sospechoso, ya que la mayoría de los conocimientos técnicos y de programación que uso a diario se adquirieron durante 5-10 años.

Ahora, si está desarrollando algo como una plataforma de teléfono móvil, quizás sea un juego de pelota diferente.

Miguel
fuente
2
No, el móvil no es diferente a nada más. Todas las habilidades vitales que utiliza en el día a día duran años. Supongo que es fácil olvidar las habilidades del día a día porque son semiautomáticas.
Jim
1
Los fundamentos no cambian, pero las API y las técnicas sí cambian. Si programa una aplicación móvil mientras piensa en una computadora de escritorio, es probable que no tenga algo utilizable.
jmort253
Según Apple, el 85% de MacOS X e iOS son idénticos.
gnasher729
15

En mi experiencia, hay una gran desconexión entre los medios / imagen pública de qué tecnología es la Nueva Nueva Cosa, y lo que realmente se está utilizando en el mundo real.

Tome algo como Visual C ++ / MFC en el espacio de la aplicación de escritorio. Si bien puede parecer viejo y anticuado, y probablemente no es algo que un nuevo programador debería estar aprendiendo en este momento para el desarrollo de escritorio, todavía hay muchos proyectos y trabajos del mundo real escritos en él que se mantienen, y probablemente se mantendrá durante años y décadas por venir. Iba a dar COBOL como ejemplo, pero eso sería hablar en teoría: en realidad, conozco muy bien el ejemplo de VC ++ / MFC.

Esencialmente, no es que las tecnologías se vuelvan inútiles y sin usar cuando se vuelven "obsoletas", es más que ya no se las ve como la forma más actualizada de hacer las cosas y comenzar nuevos proyectos. Pero el desmantelamiento de grandes sistemas de software del mundo real que no está roto y que no necesita reparaciones ocurre mucho más lentamente. Muchos de los proyectos de Visual C ++ / MFC en los que he trabajado (que comenzaron a principios de la década de 1990) todavía están muy vivos y emplean a muchos programadores (tanto en mantenimiento como en nuevos desarrollos), y no parecen ir a ninguna parte en cualquier momento. De hecho, estoy seguro de que la mayoría de los que estoy pensando seguirán existiendo en 2020 y más.

Por supuesto, este ni siquiera es el problema principal. El problema principal es que muchos de los conceptos son similares o relacionados, y no estás "comenzando desde cero" cuando aprendes alguna nueva tecnología. Por ejemplo: una vez que comprende los lenguajes de marcado y de qué se tratan, es muy fácil aprender nuevos. Por lo tanto, no importa tanto que JSON sea la nueva novedad y todo lo que ha usado durante años es XML. Es solo cuestión de aprender una nueva sintaxis, en lugar de ser un no programador que no sabe nada sobre qué son los lenguajes de marcado, o los conceptos internos detrás de los datos que representan, etc.

TL; DR: 1) Hay una gran cantidad de tecnología "obsoleta" en uso, pero como no es algo nuevo y atractivo, no se escucha mucho al respecto, pero está lejos de ser inútil para aquellos empleados con ella. . 2) Los conceptos de programación se construyen uno encima del otro y evolucionan. Pocas cosas son realmente algo que tienes que aprender completamente desde cero y olvidar lo viejo.

Mesas Bobby
fuente
44
MFC: ¡qué dolor!
Trabajo
@ Job - Oh sí.
Bobby Tables
Lol, no es todo un dolor: P
crosenblum
¡Hola, también estoy trabajando en VC ++ / MFC!
David Thornley
2
+1 Predominantemente por señalar cosas que no dejan de usarse, solo deja de ser parte del espíritu de la época.
Orbling
12

Todo depende de lo que se concentre en aprender, memorizar y, en general, llenar su cerebro. Los detalles pueden volverse obsoletos rápidamente, pero los principios deberían durar mucho más.

Ejemplos de cosas en las que he estado profundamente involucrado recientemente:

  • Sintaxis genérica de Java frente a contenedores tipificados
  • Tipos de datos MySQL, límites de almacenamiento, etc. vs. principios de escalabilidad de la base de datos
  • Capa ligera de abstracción de base de datos que ayudé a crear vs. Principios de rigidez / flexibilidad de abstracción de base de datos

Esas cosas que he aprendido en negrita durarán mucho más que las del lado izquierdo. Si desea evitar las trampas de la obsolescencia en la programación, concéntrese en los principios .

Nicole
fuente
11

Robert Harvey clavó esto , pero después de pensarlo, me veo obligado a lanzar la brevedad al viento y responder.

Tengo que agregar un descargo de responsabilidad, no fui a cavar en Perl On Rails en el momento en que se anunció. Tenía la sensación de que funcionaba bien para el uso muy localizado para el que estaba diseñado y lo anoté para futuras referencias.

Tampoco sucumbí a más de 50 permutaciones en la biblioteca C estándar en el transcurso de las últimas dos décadas, ojalá pudiera vincularme a ellas, pero ahora parecen estar desafiadas existencialmente.

Inserta aquí una larga perorata sobre creer todo lo que lees o escuchas.

Cuando salga algo nuevo, tómalo y échale un vistazo. Si dice 'ick', suéltelo. Si dices 'guau', mejóralo. Si no puede contemplar tal decisión, elija los cerebros de las personas que pueden.

Juzgue todo por mérito técnico solo . Vale la pena su tiempo, lo que le ahorra tiempo al tiempo que recibe el visto bueno de la mayoría de sus compañeros.

Ahora, abordaré su pregunta directamente:

La mitad de todo lo que sabe quedará obsoleto en 18 a 24 meses, ¿verdadero o falso?

Deberá informarnos dentro de 18 a 24 meses. Las empresas pagan sumas sustanciales para que la gente hable sobre lo bueno que es su producto. Tenemos que pasar no solo por empresas nuevas sino también por gigantes establecidos que desembolsan sumas considerables de efectivo para:

  • Que [sic] bloggers respetados regurgiten un argumento de venta para sus lectores
  • Envíe equipo gratuito de marca costosa para obtener una ubicación de marca donde pueda notarse a través de alardear o usar
  • Pague a las personas para asegurarse de que ve una 'solución de trabajo' en los 10 principales de Google al investigar un problema
  • Pague los 'premios' de los sitios del 'directorio de los diez principales' y pretenda que son autorizados
  • Una gran cantidad de otros medios para convencer a las personas de que dejen de pensar y simplemente sigan a la multitud

Por supuesto, podría tomar sus propias decisiones basadas en la experiencia previa y sus pruebas con algo nuevo. Mientras lo hace, evite a los empleadores que tienen gerentes que entregan mandamientos basados ​​en su lector RSS.

Sin embargo, tengo esta increíble nueva biblioteca de construcción de puentes que es lo suficientemente inteligente como para cambiar entre Brooklyn y Londres en función de su ubicación. Va a ser enorme, ¿quieres subir a la planta baja?

Mi respuesta es, de hecho, intencionalmente sardónica y quizás la anti booleana, ¿pero realmente? Para fines de manejo de excepciones, mi respuesta es un rotundo falso .

Si crees que algo es técnicamente sólido, acéptalo, de lo contrario es lo de siempre. C es mi idioma principal, funciona tan bien como lo hizo hace casi dos décadas, mientras que me pagan más del doble que hace casi dos décadas.

Admiro su forma concisa y citas, pero esto parece ser un experimento de incumplimiento .

Bien hecho :)

Tim Post
fuente
8

Depende de lo que pases tu tiempo aprendiendo. Aprendí programación Bourne shell y C en 1980. Todavía lo uso todos los días. Por otro lado, el tiempo que pasé aprendiendo las estructuras del menú de Compuserve es una pérdida completa, y no fue realmente muy útil, incluso en ese momento. Luego, hay cosas intermedias como pines de cable RS-232 y protocolos seriales: inútiles hoy, pero esenciales durante unos diez años de mi vida. Elija las tecnologías a las que dedica mucho tiempo con cuidado.

Charles E. Grant
fuente
Tenga en cuenta que la comunicación en serie todavía está con nosotros. Simplemente no los cables.
RS-232 está vivo y bien y vive en el espacio incrustado.
Tim Williscroft
7

El principio es verdad. El valor real es, que yo sepa, mucho más grande.

Recuerdo una presentación del Programador pragmático en la que dijeron unos siete años, pero no puedo localizarla ahora, por lo que el valor puede ser ligeramente diferente.

Solo piense cómo han cambiado las tecnologías: hace quince años, la web era completamente nueva y todos intentamos escribir páginas web, tal vez incluso con tablas, y un gif animado. Hace siete años, AJAX despegó. Hoy algunas personas escriben juegos similares a Doom para teléfonos celulares.

Su mejor opción es aprender cosas generales que pueden ser aplicables con la próxima tecnología que se presente en lugar de decir "¡Fuera! ¡ Solo conozco Visual Basic!" (o el equivalente en 15 años).

usuario1249
fuente
Traté de fizz buzz en VB, pero ... fallé ... :(
Tim Post
@Tim, espera 10 años y espero que no tengas que ...
5

No creo que sea exacto en absoluto.

Una vez estuvo más cerca de la verdad: hace mucho tiempo, no tenía más remedio que programar en un nivel relativamente bajo de abstracción, lo que significaba conocer una gran cantidad de detalles que ya no eran relevantes en una nueva plataforma.

Con el tiempo, sin embargo, cada vez más programación se realiza en niveles cada vez más altos de abstracción. Un mayor nivel de abstracción se traduce más o menos directamente en una menor preocupación por los detalles que probablemente cambien y se vuelvan obsoletos rápidamente.

Obviamente, hay personas que trabajan en cosas como controladores de dispositivos o pequeños sistemas integrados que todavía tienen que trabajar a un bajo nivel de abstracción. Fuera de áreas como esa, sin embargo, hay relativamente poca excusa para tales cosas. Sí, mucha gente hacer aprender un montón de curiosidades que nunca necesitan, pero si realmente estás usando tales cosas en su código mucho, es muy posible que simplemente no estás haciendo muy buenas decisiones. La mayoría de estas cosas pueden (y lo que es más importante, deberían) generalmente evitarse.

Jerry Coffin
fuente
Puedo recordar cuando GNU arrancó y se volvió viable, y todos los 'chicos geniales' lo estaban usando. Pero eso fue en el día cuando los "niños geniales" en realidad ni siquiera tenían un método, sino un cierto grado de pensamiento en su locura. Me alegra decir que, en estos tiempos, tienes razón.
Tim Post
4

Posiblemente cierto, posiblemente no; sin embargo, incluso si las cosas reales aprendidas se vuelven obsoletas poco después de aprenderlas, los conceptos e ideas detrás de ellas pueden ser útiles por mucho más tiempo.

Abbafei
fuente
Correcto, se convierten en un marco de referencia, o en el peor de los casos, en un antipatrón. :)
ideasman42
4

Si ese fuera el caso, solo 5.39x10 -6 de Mythical Man-Month serían relevantes hoy. Tal como está, hay muy pocos principios clave que Fred Brooks detalla que hayan fechado significativamente o que hayan demostrado ser fundamentalmente falsos.

AlexC
fuente
1
No estoy muy seguro. Algunas de las cosas están desactualizadas (¿alguien realmente usa el Equipo del Programador Jefe hoy en día?), Unas pocas están completamente equivocadas (su conclusión sobre la ocultación de información es la que viene a la mente), y se han establecido bastantes cosas en el cultura popular, y podría decirse que no son más relevantes que los argumentos de Sigmund Freud de que hay partes de nuestra mente de las que somos inconscientes. Todavía vale la pena leerlo y, por supuesto, hay más de cinco partes en un millón (¿dos letras?) Que son relevantes.
David Thornley
Buen comentario, (+1) para responder, diría que el Equipo del Programador Jefe no es un principio sino una respuesta. Es cierto que estaba muy equivocado acerca de ocultar información; pero también admite esto en la 20a edición de aniversario. Yo diría que gran parte de lo que Brooks ha dicho no se ha establecido en la cultura de desarrollo de software o que no tendríamos una tasa de falla tan extrema en el desarrollo de software.
AlexC
Creo que me estaba acercando desde la pregunta de cuánto del libro es relevante hoy. El capítulo de CPT no es relevante, por ejemplo, pero el capítulo sobre horarios está muerto y obviamente no forma parte de la cultura actual. La edición del 20 aniversario es la que se debe obtener, por supuesto, en parte debido a su ensayo "No Silver Bullet". (Eso salió hace 16 años, y por lo tanto, según el principio en el título, debería ser aproximadamente 0.4% relevante, y creo que podemos estar de acuerdo en que es más relevante que eso.)
David Thornley
Lo último que escuché es que IBM no usó equipos de Programadores en Jefe debido a una escasez de personas que podrían ser Programadores en Jefe que a una falla en el método. He sido programador jefe, funciona bastante bien.
Tim Williscroft
3

Gran parte de su conocimiento seguirá siendo relevante durante la prueba del tiempo (aunque puede necesitar alguna actualización con el tiempo), especialmente los fundamentos, como las estructuras de datos, etc.

Por supuesto, si conoce el lenguaje de programación X e Y, aprender el lenguaje Z será más fácil que si no supiera ni X ni Y, por lo que puede utilizar sus conocimientos previos para adaptar nuevos conocimientos.

También vale la pena mencionar que muchas habilidades que eran relevantes hace décadas todavía son relevantes hoy, incluso tecnologías específicas, como C (principios de 1970, todavía relevantes hoy).

Es posible que la mitad de lo que sabe sea obsoleto con el tiempo, y probablemente más de la mitad, pero cada 18-24 meses suena un poco extremo.

Anto
fuente
2

Los hechos individuales no tienen gran relevancia. Los tomas, los entiendes, los aplicas solo por el momento.

Pero hacerlo te enseña el proceso de manejar hechos o al menos manejar un cierto subconjunto de hechos. Aprendí muchas matemáticas en la escuela que en realidad nunca usé. Todavía aprendí y entrené el pensamiento matemático.

Trabajé como programador web con Ruby on Rails. Y aunque no escribo sitios web en este momento, influyó mucho en mi pensamiento sobre el código y me convirtió en un mejor codificador de C ++. (Usind más STL por ejemplo).

Similar va para aprender Racket. Nunca escribí ningún programa grande, pero me dio un nuevo punto de vista para aplicar en algún espacio problemático.

Se trata solo de entrenar tu mente ...

Thorsten Müller
fuente
2

Creo que se puede refutar fácilmente la declaración de jugar un poco con el objeto de que en 'la mitad de todo lo que sabes'.

Hay una distribución dada de conocimiento, algunos de los cuales se volverán obsoletos (independientemente de la tasa). Entonces, si una persona dada solo contiene conocimiento de la mitad de este espectro que permanecerá después de 18-24 meses, rompen la declaración.

Garet Claborn
fuente
2

Aquí hay una mejor versión de la oración: la mitad de todo lo que aprendió hoy (o esta semana, este mes o este año) será obsoleto en uno o dos años. Eso es cierto: aprende a hacer algo en la versión 5 de una herramienta, y cuando sale 6 lo hace automáticamente, o aprende a hacer algo en un idioma que no se aplica, por lo que nunca lo vuelve a usar. Pero la otra mitad de lo que aprende cada día permanece con usted y crece, y es lo que hace que un desarrollador de 20 años de experiencia sea mejor que uno de dos años de experiencia.

Kate Gregory
fuente
1

Aquí hay una pepita de verdad o relevancia, pero creo que se presenta de manera inexacta.

Una mejor manera de presentar esto sería

¿Cuánto de los conocimientos que usa hoy tenía hace 18-24 meses?

o

En 18-24 meses, ¿cuánto de los conocimientos a los que se postulará ya sabe? ¿Cuánto necesitará aprender hoy para completar esas tareas?

Puede depender del campo en el que esté trabajando, pero sé que estoy trabajando constantemente en nuevas tecnologías. Cada proyecto parece tener una gran cantidad de cosas nuevas que necesito aprender: nuevos marcos y patrones, nuevos enfoques para problemas ligeramente variados o simplemente nuevas herramientas que son (¡supuestamente!) Mejores que las que usamos anteriormente.

Si cada proyecto de seis meses solo requiere un 12,5% de conocimiento nuevo, entonces, en dos años, un 50% del conocimiento utilizado será 'nuevo'.

Dicho esto, esto no es muy significativo o preciso.

  • Las cosas 'viejas' no son obsoletas.
  • Las cosas 'nuevas' tienen una superposición masiva con las cosas viejas
  • Los principios son generalmente transferibles
Kirk Broadhurst
fuente
1

Oh Dios, tan maravillosa respuesta de sentido común es la anterior. Buen trabajo.

En pocas palabras, si es una moda o una tendencia de moda, si eres un buen programador, leerás sobre ello y luego volverás a lo que normalmente haces o trabajas.

A menos que haya algo vital para lo que haces, o nuevas prácticas que tengan sentido para ti.

El hecho de que algo sea nuevo, algo nuevo o algo viejo no lo convierte en la solución imprescindible para nada.

Tengo una frase simple, que cubre todo esto.

"Si funciona, úsalo"

Eso significa que si esta nueva tecnología es increíblemente genial, pero no es algo que haga que su trabajo sea más productivo, de mayor calidad o menos propenso a errores, o que resuelva problemas técnicos como soluciones móviles o de cliente / servidor. Lo mejor es leerlo, luego ignorarlo, hasta que tenga un uso práctico para ello.

He visto y leído a más personas que pierden el tiempo, tratando de encontrar lo nuevo y caliente, y luego lo uso. Lo que generalmente termina siendo una pérdida total de tiempo y dinero.

Es importante aprender y practicar siempre y mejorar su oficio y habilidades.

Sin embargo, debe aprender qué es útil o qué le da diferentes perspectivas para resolver los problemas que normalmente tiene.

Pero aparte de eso, debería volver a lo básico para ser un programador increíble.

  1. http://www.joelonsoftware.com/articles/fog0000000043.html
  2. Planificación
  3. Proceso de gestión de proyectos: para asegurarse de que no se inicie ningún código antes de que se elabore un plan claro y que lo aprueben las personas que le solicitaron trabajo.
  4. Mejore la legibilidad de su código: porque todos trabajamos en el código de otras personas
  5. Organícese, sea eficiente

Estoy haciendo las mejores prácticas de sentido común, que todos aprendemos de nuestras experiencias. No pierdas el tiempo en cosas que son geniales.

Porque honestamente, genial no es genial.

crosenblum
fuente
0

He escuchado esta frase atribuida a campos de ingeniería, no a programación. Más específicamente, he escuchado: "Para cuando reciba una Licenciatura en Ingeniería, sus primeros dos años de estudio se basarán en tecnología antigua". (O algo por el estilo.)

No creo que se aplique a la programación en absoluto. La única forma posible de verlo relacionado es cuando las características están en desuso o se eliminan de un lenguaje de programación / biblioteca / lo que sea.

jamesbtate
fuente
0

La plataforma de tecnología promedio se mantiene en algún lugar entre 10 y 25 años, por lo que esto me parece bastante improbable, incluso si se descarta por completo el hecho de que el conocimiento de los patrones persiste a través de las tecnologías. Si está en algún tipo de plataforma importante, puede contar con que esa pila sea popular durante AL MENOS 5 o 6 años antes de que incluso comience a desvanecerse. Conozco programadores que han estado codificando en RPG durante 30 años utilizando herramientas de hardware y software casi idénticas.

Morgan Herlocker
fuente