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? "
Statement = (True or False)
Sí.Respuestas:
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.
fuente
Disparates
Las personas que dicen cosas así solo están tratando de ser sensacionalistas, o de lo contrario están aprendiendo cosas equivocadas.
fuente
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.
fuente
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.
fuente
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:
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 .
fuente
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.
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:
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:
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 :)
fuente
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.
fuente
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).
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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 ...
fuente
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.
fuente
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.
fuente
Aquí hay una pepita de verdad o relevancia, pero creo que se presenta de manera inexacta.
Una mejor manera de presentar esto sería
o
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.
fuente
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.
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.
fuente
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.
fuente
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.
fuente