¿Seguridad profesional en el campo del desarrollo de software? [cerrado]

Pregunta central: ¿Qué tipo de seguridad profesional se puede esperar en el campo del software y cuánto tiempo se puede esperar dedicar para mantenerse relevante? ¿Y también son ciertos campos más vulnerables? (Diseño de juegos versus software financiero, etc.)

* Cuando digo seguridad profesional, quiero decir que no importa cuánto tiempo esté en un determinado trabajo, se trata más de si mantiene el mismo título/responsabilidades básicas del trabajo.

Motivo de la pregunta: Soy estudiante y durante un discurso de presentación un maestro mencionó que la vida profesional en el campo es corta. Su principal ejemplo fue que los empleadores ahora quieren contratar ingenieros de software en lugar de programadores y luego explicó algunas vagas diferencias entre los dos. Me preocupa lo corta que es la vida profesional.

Mi comprensión de la situación actual -

Seguridad profesional positiva:

  • Las diferencias en los lenguajes de programación son principalmente sintaxis y se pueden entender con bastante facilidad.
  • La mayoría de las empresas evitan el cambio como la peste.
  • Después de hablar con algunos graduados recientes de otras escuelas, escuché que debido a que las empresas no cambian, los idiomas más antiguos tienen una nueva demanda debido a la necesidad de mantener el soporte del software. (Mencionó algo sobre los bancos que necesitan personas para mantener el software de transacciones y cómo contrataron MUCHAS personas a la vez para hacer esto, pero ahora todos se están jubilando al mismo tiempo, lo que provoca una lucha para que las personas mantengan el software).

Seguridad profesional negativa:

  • El campo de la tecnología es el campo que cambia más rápidamente porque es responsable de los cambios en todos los demás campos. Cuando las cosas cambian tan rápido, las cosas que están cambiando se vuelven más y más obsoletas.
  • La variedad de empleadores puede crear una curva de aprendizaje más pronunciada de lo normal. (Cambiar de un trabajo que se ocupe de software médico a uno que se ocupe de finanzas o industria puede ser un gran salto).
  • Los cambios en la corriente principal pueden ahogarte. (Un ejemplo menos relacionado con el software sería alguien que diseñe CPU y luego las computadoras cuánticas se conviertan en la corriente principal)
@JoeStrazzere No es mi maestro y creo que es el presidente del departamento. El departamento está sobrecargado debido a la ausencia inesperada de algunos miembros del personal (algunos de mis maestros están enseñando el doble de clases). Ponerse en contacto con él no sería fácil. Además, no tiene la experiencia del mercado laboral actual que otros pueden tener aquí (ya que es un maestro).
@JoeStrazzere no solo un maestro. Hablando con otras personas, he oído que el campo puede ser una lucha a veces. Algo que no mencioné fue la vanguardia y la demanda de estar a la última es enorme y no es fácil de manejar. Puedo enviarle un correo electrónico, pero no estoy seguro del valor de lo que dice. Puedo ver un sesgo escolar como en "es malo para todos menos para nuestros estudiantes porque nosotros bla, bla, bla". Su falta de experiencia reciente junto con el incentivo para mantenerme en el programa hace que lo que dice valga la pena preguntarle a otros.
FWIW, encontrará que las personas generalmente dejan el desarrollo de software porque así lo desean. La seguridad laboral es un factor para las personas en situaciones específicas, pero no hay nada especial en el software en comparación con otras profesiones en lo que respecta a la seguridad: las personas trabajan felizmente en el software durante el tiempo que quieran, siempre que tengan la aptitud y , lo más importante, si les da satisfacción.
Para aumentar mi sospecha de que él tiene un sesgo, después de que dijo esto, habló sobre carreras largas y saludables en el campo para los estudiantes de la escuela y cómo todos los estudiantes calificados y dispuestos el año pasado fueron colocados en puestos de trabajo. Parecía un poco de marketing, pero al mismo tiempo, las cosas que escuché de otros que lo están viviendo en este momento respaldaron un poco lo que dijo.
@ teego1967 ¿Por lo que he presenciado? Y he oído historias de eso también. Las personas se quedan insatisfechas o se jubilan a medias como consultores porque pueden. Disculpe la imposibilidad de etiquetar. Me cambié al móvil.
@Griffin, la satisfacción profesional no es algo que surge simplemente de elegir el campo "correcto" mientras está en la universidad. Es algo que cada individuo debe perseguir activamente mientras trabaje. Del mismo modo, la seguridad profesional es lo que USTED hace de ella. Si comienza una carrera haciendo algo en lo que es relativamente bueno y que lo motiva a trabajar duro y desarrollar sus habilidades, eso es lo mejor que puede hacer.
Sin embargo, la satisfacción de @ teego1967 no es seguridad. A los trabajadores de la construcción les pueden gustar partes de su trabajo, pero eso no impidió que la excavadora los reemplazara. Tampoco muchos se certificaron para arreglar y mantener dicho bulldozer.
No, no es el caso en general que "Las diferencias en los lenguajes de programación son principalmente sintaxis y pueden entenderse con bastante facilidad". Para ciertos grupos de idiomas eso es cierto, pero otros tipos de idiomas son significativamente diferentes y usan conceptos que nunca se encuentran en algunos idiomas. Por ejemplo, Ruby y Python son muy similares y esperaría que un buen desarrollador con uno se hiciera cargo del otro con bastante rapidez. Pero Haskell es radicalmente diferente de esos dos lenguajes y requiere aprender algunos conceptos nuevos que no existen en Ruby o Python.

Respuestas (4)

¿Qué tipo de seguridad profesional se puede esperar en el campo del software?

Excelente. ¿Qué, crees que la gente va a dejar de usar las computadoras de repente? ¿O que los dispositivos electrónicos personales van a disminuir en uso en los próximos 50 años? ¿O que los diversos electrodomésticos del mundo no van a estar conectados a internet?

Alguien tiene que escribir el software para todos esos dispositivos, y los miles de millones más en los que la gente no piensa mucho (automóviles, audífonos, sistemas de seguridad, marcapasos, semáforos... y continúa).

¿Cuánto tiempo se puede esperar dedicar para mantenerse relevante?

Esto es más difícil de decir. Los buenos programadores pasan bastante tiempo aprendiendo y ampliando sus habilidades. Es muy cierto que tendrás que dedicar parte de tu tiempo libre a ser bueno en el oficio. La probabilidad depende de tu especialidad, cuánto te importa ser bueno y cuál quieres que sea tu nivel de vida. Conozco bastantes programadores que no dedican tiempo a mantenerse relevantes. No son buenos programadores, pero (generalmente) están empleados y ganan salarios decentes. ¿Eso se mantendrá en el futuro? Quién sabe.

Su principal ejemplo fue que los empleadores ahora quieren contratar ingenieros de software en lugar de programadores y luego explicó algunas vagas diferencias entre los dos.

En general, la distinción que se hace es entre alguien que puede escribir código y alguien que puede hacer software. El primero no es ningún tipo de gran habilidad. Dado que es una habilidad común, no es particularmente valiosa. Diseñar software robusto y de calidad es mucho más difícil, y la variedad de habilidades necesarias para hacerlo bien es mucho más rara. Lo convierten en un empleado más valioso y es mucho menos probable que se convierta en un producto básico. Hacerlo bien también requiere una buena coordinación con el resto de la empresa, lo que hace que sea menos probable que lo deslocalicen.

Las diferencias en los lenguajes de programación son principalmente sintaxis y se pueden entender con bastante facilidad.

Esto no es seguridad de carrera: si alguien puede hacerlo, la barrera de entrada para tomar su trabajo es menor.

La mayoría de las empresas evitan el cambio como la peste.

Esto no es específico del software, ni es particularmente cierto. Las empresas cambiarán a menudo, aunque solo sea para parecer que están "haciendo algo".

Los idiomas más antiguos tienen una nueva demanda debido a la necesidad de mantener el soporte de software.

Escribir COBOL para ganarse la vida no es una carrera . Es una ruta rápida hacia la obsolescencia; una excelente manera de estar desempleado dentro de 10 a 15 años. Aunque para ser justos, es probable que ganes un montón de dinero haciéndolo mientras tanto (ya que nadie quiere hacerlo).

La variedad de empleadores puede crear una curva de aprendizaje más pronunciada de lo normal.

En mi experiencia, esto no es cierto. De hecho, esto es generalmente una ventaja de seguridad de carrera. Realmente no importa si su empresa trabaja con widgets, orcos o marcapasos. Todavía son identificaciones que provienen de una base de datos, todavía usan html para presentar sus datos... siempre se aplican buenas prácticas de desarrollo de software.

En resumen, sí, deberá continuar aprendiendo para mantenerse actualizado sobre las cosas nuevas/buenas que se están inventando. Pero una vez que haga eso, puede trabajar en casi cualquier industria con negocios que están creciendo, evolucionando y son vitales para la duración de su carrera.

Esta es exactamente la respuesta que estaba buscando.

Pregunta central: ¿Qué tipo de seguridad profesional se puede esperar en el campo del software y cuánto tiempo se puede esperar dedicar para mantenerse relevante?

El "campo del software" es tan amplio que creo que uno puede predecir fácilmente que siempre habrá algo en ese campo que necesite hacerse y por lo que las empresas estén dispuestas a pagar. Es fácil imaginar una carrera larga y gratificante en software.

Si te dedicas al software, debes esperar pasar toda tu carrera tratando de mantenerte relevante.

La historia del software es tal que los cambios son rápidos e interminables. Lo que era importante (y lucrativo) hace unos años puede fácilmente no tener importancia mañana.

Dicho esto, la globalización tiende a mercantilizar prácticamente todo y a todos, en particular los trabajos que se pueden realizar de forma remota. Los trabajos que no requieren coordinación física cara a cara pueden trasladarse fácilmente a una fuente de mano de obra más barata. Y el impulso en los negocios en estos días es hacer que la mayor cantidad posible de gente de software sea fungible.

Si desea estar en el software, es posible que desee mantenerse lo más flexible posible, estar listo para pasar a diferentes aspectos del software según sea necesario y dedicar mucho tiempo a mantenerse al día con la tecnología.

Si tiene una educación sólida y experiencia en desarrollo de software, debería poder aprender un nuevo lenguaje, un nuevo marco o lo que sea necesario. Los principios de alto nivel para escribir un buen código: ser legible, fácil de mantener, etc., siempre se aplicarán, incluso si los métodos exactos que utiliza varían un poco.

Sin duda, debe esperar continuar aprendiendo nuevas tecnologías, técnicas, etc. con el tiempo. Por otro lado, probablemente también habrá un nicho para conocer los sistemas heredados que de otro modo ya no se usan porque los costos de revisión pueden ser altos.

Finalmente, otros factores obviamente afectarán mucho esto, y puede haber muchas diferencias regionales en términos de qué tipo de cosas están en demanda.

Bueno, si el profesor te dejó con una vaga impresión de la diferencia entre programador e ingeniero de software, uno de los dos está en un verdadero problema.

Breve diferencia: la habilidad de un codificador es escribir código. La habilidad de un ingeniero de software es usar el software para resolver problemas.

La mayoría de las empresas no necesitan contratar a alguien para escribir código. Necesitan a su gente para solucionar problemas, reducir gastos y producir y entregar productos vendibles. A veces, eso significa contratar a un camionero para que entregue productos horneados a los supermercados. A veces, eso significa contratar a un abogado para defender una marca registrada y, a veces, eso significa contratar a un ingeniero de software para automatizar las prácticas contables, optimizar los pedidos de la cadena de suministro o cualquier otra cosa que esté sucediendo.

El dueño de un negocio no ve, "Necesito un codificador de Java para extraer mis registros de inventario y hacer llamadas al servicio web para hacer pedidos a mis proveedores". Lo que ven es: "¡Siempre me estoy quedando sin levadura, y parte de mi harina se está enmoheciendo porque ha estado aquí demasiado tiempo! ¿No podemos conseguir una computadora para realizar un seguimiento de estas cosas?"

Sí, deberías aprender a escribir código. Al final del día, todos en el software deben ser funcionales en algunos idiomas diferentes. Sin embargo, prepárate para renunciar a esos idiomas y aprender otros nuevos. Últimamente no he visto mucha demanda de PASCAL en los comercios (y mira, acabo de despertar a 3 desarrolladores que lo usan).

El mejor consejo que puedo darte para la seguridad laboral: Aprende el negocio con tanto entusiasmo como aprendes las herramientas. El dueño de un negocio quiere decir 4 o 5 palabras al grupo de desarrollo: "Reparar mi {0} {1}" donde 0 es el insulto del día y 1 es una función comercial: {cadena de suministro, facturación, cuentas por cobrar, nómina}. El ingeniero/analista de negocios descubre cómo y lo soluciona.

El "codificador" es un elemento genérico en un diagrama de Gantt. Si su única habilidad es C#, y WhizBang Software presenta "Emeralds on Asphalt" como el próximo lenguaje "caliente", sus años de experiencia en C# no significan nada. Sin embargo, si puede comprender la NECESIDAD del desarrollo en primer lugar, y comprender lo que ya existe y se puede usar, y lo que se necesita construir, tiene una carrera larga y exitosa por delante.