Nuevo ingeniero de software: ¿Debo buscar nuevos proyectos/empleo si estoy trabajando con tecnología obsoleta?

Me gradué de la universidad hace un año y medio y desde entonces trabajo como ingeniero en una empresa de software. Ha sido un buen ambiente para adquirir experiencia.

Sin embargo, una preocupación que he tenido recientemente es que si perdiera mi trabajo inesperadamente, mi única experiencia profesional sería con el lenguaje obsoleto que es el que uso principalmente. Si bien sé que cualquier experiencia con una gran base de código es buena, he notado que muchas publicaciones de trabajo de desarrollo de juegos/ingeniería de software solicitan "x años de experiencia profesional con tecnología y", lo que parece implicar que la experiencia de codificación genérica puede no ser suficiente para encontrar otro puesto en el futuro. La parte "profesional" de esa oración también parece descartar proyectos personales con tecnologías más relevantes.

¿Es esta paranoia razonable? ¿Las herramientas específicas que usa al principio de su carrera de software tienen implicaciones duraderas para las oportunidades que tiene disponibles en el futuro?

En primer lugar, asegúrese de que su nombre de usuario no sea el mismo que su nombre real. No querrás que tu empleador se entere de que estás pensando esto. En segundo lugar, la tecnología cambia muy, muy rápidamente. En mi opinión, podría recomendar nuevos lenguajes de software y tecnología, pero no espere que se adopten rápidamente, y asegúrese de no decir que la razón principal de esto es porque le preocupa que sus habilidades queden obsoletas en el mercado laboral. Investigue si/cómo beneficiaría a su empresa.
No importa los "x años con tecnología Y". He visto requisitos para 5 años de experiencia en tecnología de dos años.
Si bien estoy de acuerdo con los votos cerrados al pie de la letra de la redacción, no estoy de acuerdo con que esta pregunta deba cerrarse. OP está tocando una parte importante del desarrollo profesional: el estancamiento. La pregunta se puede reformular para que no sea "¿qué debo hacer?" y más hacia "es el estancamiento peligroso para el desarrollo profesional" sin cambiar la pregunta central.

Respuestas (4)

He notado que muchas ofertas de trabajo de desarrollo de juegos/ingeniería de software solicitan "x años de experiencia profesional con tecnología y"

Me he encontrado con vacantes donde piden más de 5 años de experiencia con Visual Studio 2019. Piénsalo por un segundo.

Los requisitos del trabajo a menudo no son tan precisos como parece. Tal vez sea un error de copiar/pegar (solo se referían a Visual Studio), tal vez sea una táctica de deshierbe para evitar tener que entrevistar sin éxito a los desarrolladores de nivel de entrada. Cualquiera que sea la razón, la mayoría de los empleadores en realidad lo juzgarán en función del valor que pueda aportar en lugar de las casillas que marque.

Por supuesto, existen excepciones, pero creo que de todos modos no querrías trabajar para esos empleadores, así que no estás perdiendo.


lo que parece implicar que la experiencia de codificación genérica puede no ser suficiente para encontrar otro puesto en el futuro

La capacidad general de pensar analítica y algorítmicamente supera al conocimiento de un marco específico cada vez . Un buen desarrollador general puede seleccionar cualquier biblioteca y generar conocimientos prácticos en un período de tiempo breve. Un asistente de marco podría perderse por completo en un marco totalmente diferente durante una cantidad significativa de tiempo.

Sin embargo, es mucho más fácil evaluar el conocimiento del marco (por ejemplo, pedirles a los solicitantes que respondan preguntas de sintaxis sencillas) que medir la habilidad general de codificación. Muchos entrevistadores caen en la trampa de hacer preguntas directas. Doblemente para los desarrolladores junior, ya que generalmente solo se les hacen preguntas simples, lo que tiende a significar que obtiene preguntas de sintaxis / marco específico en lugar de ejercicios de pensamiento abstracto.

Es perfectamente comprensible que un entrevistador que no sea codificador no pueda medir la habilidad general de codificación utilizando nada más que respuestas cortas y secas; pero debería verlo por lo que es: una muestra rápida de su conocimiento.

Personalmente, no recuerdo muy bien la sintaxis. Parte de eso es tener mi propio repositorio de fragmentos y StackOverflow disponibles. Lo que sí tengo es la capacidad de juzgar lo que es razonablemente posible en un marco/situación determinado y evaluar rápidamente cómo desglosar un problema en sus pasos constituyentes (cada uno de los cuales busco en SO o en un repositorio de fragmentos).
Cuando los entrevistadores hacen preguntas de sintaxis específicas, redirijo para decir algo como:

"No sé cómo escribir un documento XSD de memoria, pero sé que permite una validación fácilmente configurable de un archivo XML, tanto en presencia de ciertos elementos como de los valores específicos que contiene. Tendría que buscar el sintaxis específica, pero sé que puedo configurar [X, Y y Z] para lograr la validación que necesita".

En términos generales, esto pasa la prueba, ya que muestra la habilidad central de desglosar un problema, aislar las incógnitas y tener expectativas precisas para resolverlas.

Su millaje puede variar con diferentes empresas, pero vuelvo a mi punto anterior de que una empresa que no puede ver la madera de los árboles no es una buena empresa para trabajar (a largo plazo). Si la empresa tiene las anteojeras puestas, lo más probable es que también las tengan en lo que respecta a su trabajo diario y su entorno de trabajo.


Una preocupación que he tenido recientemente es que si perdiera mi trabajo inesperadamente, mi única experiencia profesional sería con el lenguaje/motor en desuso que es lo que uso principalmente.

Esta es la principal razón para evitar el estancamiento.

No solo los estándares laborales y las tecnologías están evolucionando a un ritmo mucho mayor que hace unas décadas (cuádruple para la ingeniería de software), sino que las personas tienden a cambiar de trabajo más que en el pasado. Atrás quedaron los días de esperar trabajar para el mismo empleador durante toda su vida. Nuevamente, cuatro veces más para la ingeniería de software.

Se puede hacer un contraargumento, aunque es situacional: a medida que la tecnología envejece, habrá menos desarrolladores dispuestos a trabajar con ella, lo que aumenta su influencia tanto para la disponibilidad laboral como para el salario. Conozco a un desarrollador de COBOL a quien se le paga muy bien específicamente porque es una de las pocas personas que puede mantener operativa la infraestructura obsoleta de las empresas.

Dicho esto, generalmente es más recomendable moverse con el mercado que pescar las oportunidades tecnológicas obsoletas, pero estoy razonablemente seguro de que existen excepciones marginales.


¿Es esta paranoia razonable?

También quiero advertirle que no se convierta en un pionero perpetuo, es decir, alguien que siempre busca la tecnología más nueva para trabajar. Las empresas, especialmente las grandes, tienden a moverse más lentamente y nunca están a la vanguardia del avance tecnológico porque esperan específicamente que se pruebe una tecnología antes de comprometerse con ella.

Hace unos años, hubo una tormenta virtual de nuevas bibliotecas JS de interfaz que desaparecerían tan rápido como se hicieran populares. Andecdotally, mi propia empresa pasó de las presentaciones sobre "¡Tech X es el futuro!" a presentaciones sobre "X está desactualizado, Y es el futuro!" en el lapso de 1-2 meses (te estoy mirando, knockoutJS...). Era simplemente imposible mantenerse al tanto de las nuevas tecnologías cuando entran y salen de la escena tan rápidamente.

Soy un desarrollador de .NET, y .NET generalmente se considera un marco de trabajo lento que permite la innovación pero a un ritmo razonable para que las empresas puedan mantenerse al día sin hacer grandes apuestas en nuevos marcos y si vivirían para ver el próximo mes.
Me quedo con .NET específicamente porque hay mucha seguridad laboral en la pila de tecnología, ya que las empresas que trabajan con .NET tienden a quedarse con .NET.

Así que quiero instarles a que encuentren un equilibrio aquí. No se apegue a la tecnología obsoleta, pero tampoco se vuelva demasiado restrictivo en lo que etiqueta como tecnología "moderna". Vea qué tecnologías son las más comunes en el mercado laboral que le interesa.


¿Es esta paranoia razonable y, de ser así, sería prudente tener una conversación con la gerencia sobre esta preocupación?

Algunos empleadores son razonables y definitivamente puedes hablar con ellos. Es posible que estén de acuerdo en que, para mantenerlo, también tendrán que permitirle mantenerse al día con la tecnología moderna, ya sea dedicándole medio tiempo a proyectos con tecnología moderna o permitiéndole capacitar recursos para mantenerse actualizado.

A menos que la compañía esté decidida a usar solo la tecnología obsoleta (y eventualmente se hunda con el barco), tendrán que innovar, y tener empleados que sean capaces de innovar es un gran beneficio. Utilícelo a su favor para convencer a su empleador de que mantener sus habilidades perfeccionadas y actualizadas también beneficia a la empresa .

Algunos empleadores no son razonables, pero dada la pregunta que está haciendo, no estaría contento de trabajar para ellos a largo plazo de todos modos, por lo que, de nuevo, no pierde realmente al hablar con su empleador para evaluar si son razonables. Si responden desfavorablemente, puede volver a evaluar su empleo en cualquier momento.

He notado que muchas ofertas de trabajo de desarrollo de juegos/ingeniería de software solicitan "x años de experiencia profesional con tecnología y", lo que parece implicar que la experiencia de codificación genérica puede no ser suficiente para encontrar otro puesto en el futuro. La parte "profesional" de esa oración también parece descartar proyectos personales con tecnologías más relevantes.

No se obsesione demasiado con la redacción de los requisitos. Y no dejes que eso te disuada de experimentar con otros motores/lenguajes de juegos.

Me gradué de la universidad hace un año y medio.

Un año y medio no es mucho. Trate de esperar al menos dos años antes de intentar pasar a un nuevo empleador.

¿Es esta paranoia razonable y, de ser así, sería prudente tener una conversación con la gerencia sobre esta preocupación?

¿Quiere decirle a su jefe actual que tiene miedo de no ser atractivo para otros empleadores? no creo que sea una buena idea...

O, si me gustaría poder trabajar con empresas que utilicen tecnología más moderna en el futuro, ¿sería mejor mantener mi nariz en la piedra de afilar?

Creo que deberías seguir probando nuevas tecnologías en tu tiempo libre.

Elija un pequeño proyecto de pasatiempo para trabajar una o dos noches a la semana, utilizando una plataforma o lenguaje de programación diferente. Siéntase libre de abandonar proyectos o guardarlos para probar otra cosa más. El objetivo no es dominar un segundo idioma en particular, sino seguir probando cosas nuevas cada dos meses más o menos.

Otra opción es buscar eventos en Meetup en tu área. Al menos en mi área, hay bastantes grupos que promocionan su nuevo idioma/plataforma favorito y ofrecen demostraciones a las personas que quieren probarlo. (Probablemente también sea una buena manera de permanecer visible casualmente para posibles nuevos empleadores).

Sin embargo, existe la posibilidad de que afecte sus futuras ofertas de trabajo, solo después de aproximadamente 3 años. - Las habilidades deben ser transferibles, lo sabes, lo sé, a un futuro empleador no le importa y quiere a alguien con las habilidades ya disponibles. Esto se aplica a los niveles medio/superior, a menudo se hacen excepciones para los juniors.

Los jóvenes están empleados con la expectativa de que aprenderán. El nivel medio/superior se contrata con la expectativa de poder hacer el trabajo.

Estuve atrapado en un lugar haciendo VB durante varios años. Conseguir un trabajo en una empresa de C# después fue casi imposible. Aunque conocía la sintaxis de C#, mi experiencia profesional de 7+ en VB no sirvió de nada.

Sin embargo, no plantearía esto como una preocupación para la gerencia, buscaría las nuevas tecnologías en su propio tiempo. Tome notas sobre los pros y los contras y luego hable con su gerencia y sugiera que pruebe esta nueva tecnología explicando por qué sería una buena medida para la empresa.