TL; DR: Olvídate de tecnología específica, debes aprender a aprender.
Miremos hacia atrás 20 años. Es 1996. El escritorio promedio, que comienza a popularizarse en casa, ejecuta Windows 3.1 de 16 bits. Amazon tiene 2 años. Google tiene 2 años en el futuro. Linux es un sistema operativo semi-aficionado distribuido en más de 20 imágenes de disquete *. Java tiene 1 año y Python tiene solo 5. Docker (una tecnología actualmente de moda en el espacio de desarrollo) todavía tiene 17 años en el futuro y, de hecho, la tecnología en la que se construyó Docker aún tiene 12 años en el futuro.
Estaba usando OS / 2 Warp y Solaris 2 como mis sistemas operativos principales y tuve que recordar la IP del servidor FTP primario de Free Software Foundation para poder asegurarme de poder descargar y compilar (no solo instalar, compilar desde la fuente cada vez) emacs y gcc.
- ¿Puedes trabajar en proyectos relacionados con big data que no tengan habilidades de ciencia de datos?
- ¿Por qué los desarrolladores de software no escriben para cada código, un 'Documento de diseño'?
- ¿Las entrevistas de trabajo fallidas (desarrollador de software) afectan negativamente a su marca personal como candidato para las oportunidades futuras?
- ¿Los desarrolladores de software depuran su propio código?
- ¿Por qué los desarrolladores comprarían el código fuente?
Si el pasado es una guía, habrá un cambio aún más rápido en los próximos 20 años.
Cualquier respuesta tecnológica específica que alguien dé a esta pregunta será incorrecta. Cada vez que pronostique 2 generaciones más adelante, recibirá impactos de “consecuencias no deseadas”. 20 años … ¿son 10 generaciones más adelante?
Entonces te daré un proceso. Estira tu mente. Aprende cosas nuevas e interesantes … para ti. No te preocupes tanto por competir como por poder resolver algunos problemas que existen actualmente. Haz esto todos los años.
Aprende temas generales. Concéntrese en el diseño y la estructura del lenguaje en lugar de los idiomas individuales. Aprenda a pensar en los lenguajes de computadora como algo así como “Es un lenguaje interpretado sin tipo con funciones de primera clase, poco sesgo entre el procedimiento y el OO” y entienda el compromiso con “Un lenguaje compilado y mecanografiado con enlace de función en tiempo de compilación, carga dinámica y un duro sesgo hacia la herencia única OO “. Trabajé en 4 idiomas diferentes en la última semana. Vaya, haz eso 5.
Aprenda la pila completa, y con eso no me refiero a “LAMP”, me refiero a bytes en el disco. Ayer estaba evaluando el rendimiento y la velocidad de la red era el cuello de botella, no el rendimiento del código.
El idioma no importa. La tecnología específica realmente no importa. Resolver problemas es importante, pero las cosas que resolví esta semana serán viejas en un año y “Duh, todos lo hacen” en 5 años.
Podrías saber * todo * sobre todos los aspectos de la programación / informática en 2016 y para 2026 serías un programador “heredado” que trabaja en sistemas demasiado grandes para sofocar. Para 2036, es probable que algunos de esos sistemas sigan existiendo (si lo busca todavía puede encontrar COBOL hoy) y puede ser empleable para algunas grandes empresas, pero estará muy, muy lejos de ser “competitivo”.
Entonces, lo más importante es: no dejes de aprender y crecer.