Guía final para convertirse en ingeniero de software

La ingeniería de software también es un área de alta demanda, con una investigación de la Confederación de Reclutamiento y Empleo que muestra que los ingenieros y programadores de software se encuentran entre los profesionales más buscados en el Reino Unido, junto con abogados y abogados, y contadores públicos.

Entonces, ¿cómo se llega a la ingeniería de software, qué habilidades y capacidades necesita y qué tipo de carrera podría estar por delante?

¿Cómo entro?

La ruta habitual para convertirse en ingeniero de software es un título en informática, ingeniería eléctrica o tecnología de la información, ya que aprenderá codificación y diseño de aplicaciones de software antes de un papel en la industria. Otros grados que comúnmente vemos y que son adecuados son las matemáticas y la física debido a la naturaleza altamente analítica de los sujetos.

Sin embargo, los tiempos están cambiando, y hay muchas rutas alternativas junto con el camino tradicional dirigido por el grado. De hecho, esto es parte de una tendencia más amplia en toda la industria de la tecnología. El Informe y Salario de Talento y Tecnología Global de Harvey Nash 2024 encontró que solo la mitad de los profesionales de la tecnología tenían una calificación de grado o a nivel universitario, y el resto se rompió en la industria a través de una mezcla de rutas que incluyen aprendizajes, capacitación en la industria y otros esquemas. Por ejemplo, los bootcamps se están volviendo cada vez más populares. Estos son cursos breves e intensivos que generalmente duran 8-16 semanas y condensan el aprendizaje de las habilidades que necesita para obtener un trabajo de ingeniería de software en una línea de tiempo acelerada. Sin embargo, tenga en cuenta que los cursos tienen un costo, que generalmente se topan con miles. Busque los que incluyan la promesa de ayudarlo a encontrar un trabajo.

Mientras tanto, algunas personas son autodidactas, tal vez superadas al tomar un curso relativamente económico disponible en plataformas como Udemy. Sin embargo, esta es, con mucho, la cohorte más pequeña de la industria, ya que es mucho más difícil asegurar ese papel inicial.

¿Qué roles reales hay?

El software ofrece una amplia gama de carreras adaptadas a diversas habilidades e intereses. Verá una variedad de términos para roles de software: programador de software o codificador, ingeniero de software, desarrollador de software y más. A menudo, estos roles son más o menos intercambiables y es solo que diferentes compañías les dan diferentes nombres. Sin embargo, puede haber diferencias de énfasis en lo que hacen. Un programador o codificador de software generalmente se centra en escribir código realmente, mientras que un desarrollador podría tener un mandato más amplio responsable de aplicaciones y sistemas, incluido el diseño. Mientras tanto, es probable que un ingeniero de software tenga un mandato de ciclo de vida completo de pila completa centrándose en diseñar y mantener soluciones de software enteras.

También es probable que vea una variedad de nombres de roles más específicos que incluyen desarrollador de front-end/web, ingeniero de back-end, desarrollador completo, ingeniero móvil y muchos otros.

¿Qué pasa con AI?

Al igual que con todo lo relacionado con la tecnología, AI definitivamente está teniendo un impacto. Dicho esto, los profesionales de software probablemente han estado en la curva de IA más tiempo que casi cualquier otra persona: se está convirtiendo en parte de cómo se entrega el trabajo. La IA generativa puede ser una herramienta de asistencia poderosa para codificadores y desarrolladores, ayudándoles a escribir código, probarlo y verificar (y arreglar) errores. Acelera el proceso y, utilizado correctamente, ayuda a lograr resultados de mayor calidad. Sin embargo, todavía hay algunas advertencias. En el campo aún nuevo de la IA generativa, muy pocos desarrolladores de aplicaciones se clasifican a sí mismos como expertos, como lo muestra esta investigación. Hay una falta de estandarización en torno al proceso de desarrollo de la IA. Descripción general y verificación humana definitivamente es que todavía es necesaria: no puede simplemente configurar la IA para que funcione y dejarla así. Con la ingeniería rápida adecuada, la IA generativa puede hacer que un desarrollador sea un buen camino en el camino, pero aún no estamos en el escenario donde la IA puede llevar a cabo todo el trabajo de forma segura de extremo a extremo.

A la pregunta, por lo tanto, “¿Necesito fuertes habilidades de IA para ser un desarrollador de software?”, La respuesta es que en la mayoría de los casos no es un requisito difícil, pero definitivamente ayuda y es probable que se espere cada vez más. Mucho también depende del lenguaje de software en el que se especialice. Los idiomas más nuevos y más avanzados, como Python y spin-offs, como Rust y van naturalmente con IA y el aprendizaje automático, por lo que las habilidades de IA son más críticas aquí.

¿Qué idiomas de codificación y habilidades técnicas están en demanda?

Actualmente, estamos viendo que Python es el conjunto de habilidades más demandados, seguido de cerca por Java y JavaScript. Creemos que muchas compañías están eligiendo Python para proyectos más nuevos porque es fácil de aprender y trabajar, tiene compatibilidades con la IA y es extremadamente versátil. También vemos a las empresas que buscan regularmente desarrolladores de pila para sus posiciones, lo que significa que los candidatos necesitan experiencia en lenguajes de programación front-end y back-end. El uso de los principios de DevOps también es un conjunto de habilidades que se está convirtiendo en un imprescindible para desarrolladores de nivel superior, con el uso de herramientas de contenedores como Docker o Kubernetes como el más popular. La ingeniería en la nube es otra habilidad que se solicita regularmente, siendo Azure la plataforma más popular actual seguida de AWS y Google Cloud Platform (GCP).

¿Qué otras habilidades y atributos necesitaré?

Además de la fuerte capacidad técnica, que la mayoría de las empresas buscarán como punto de partida, una serie de habilidades más suaves también ayudan realmente. Un buen ingeniero de software tiene mucha atención al detalle (porque la precisión realmente importa) con la capacidad de trabajar de manera lógica y metódica. La capacidad de resolución de problemas es clave, mientras que una racha saludable de creatividad no es malo para pensar en un problema y encontrar una solución innovadora.

La imagen estereotipada de un programador a menudo es alguien sentado en una esquina con los auriculares puestos, absorbido en su propio mundo. Sin embargo, las buenas habilidades interpersonales suelen ser realmente importantes, ya que necesitará comprender y traducir los requisitos de los usuarios comerciales, así como tener discusiones sobre el diseño y el uso de lo que realmente estará construyendo desde una perspectiva comercial más amplia.

También necesitará trabajar como parte de un equipo de ingeniería y, especialmente al comienzo de su carrera, hacer muchas preguntas es clave. La capacidad de aprender de más ingenieros senior y adaptarse mientras está en marcha será vital para convertirse en un mejor ingeniero de software. En algunas empresas, los equipos de software adoptan un enfoque de ‘programación de pares’ donde un desarrollador senior y junior trabaja juntos para ayudar con este desarrollo: con frecuencia cambian entre ser el codificador y el revisor, lo que ayuda al desarrollador junior a aprender y también aporta un segundo par de ojos a la producción del desarrollador senior. En general, se ve como un buen modelo de aprendizaje y desarrollo.

¿Cuánto ganaré y qué pasa con el contratista permanente vs?

La ingeniería de software está bien remunerada, lo que se suma a su atracción como una carrera. Sin embargo, los salarios pueden variar bastante significativamente según la experiencia, la ubicación y la especialización. Los puestos de nivel de entrada generalmente ofrecen £ 30,000 a £ 35,000 anuales, mientras que los profesionales experimentados pueden ganar £ 60,000 a £ 90,000. Los roles senior, especialmente en Londres y otros centros importantes, pueden exceder las £ 100,000 por año debido a la presencia de grandes empresas con presupuestos más grandes. Sectores como los servicios financieros y los juegos tienden a pagar los salarios y tarifas más altos.

Luego está la contratación, que en realidad pagará más que un papel permanente. Puede parecer contradictorio para algunos, pero mientras que en algunas disciplinas la ruta inicial es a través de un trabajo temporal o contractual con el objetivo de finalmente asegurar una posición permanente, en software para muchas personas es lo contrario: comienza y construye su experiencia en un papel permanente con el objetivo de convertirse en un contratista más tarde (tal vez después de 5-10 años) cuando puede trabajar en proyectos que realmente interesan que comience una tasa significativa. Aquí habrá muchas variables, incluida la naturaleza del trabajo y la duración del contrato, pero la tarifa diaria para un desarrollador de Java puede superar fácilmente las £ 625, y las tarifas en Londres pueden alcanzar £ 750-800. Algunos contratistas incluso pueden ordenar £ 1,000 por día.

Otro factor es si el rol del contratista se encuentra dentro o fuera de IR35. Ese es probablemente el tema de un artículo completo en sí mismo, pero si se considera que un papel cae dentro de IR35 (de modo que el contratista se considera equivalente a un empleado y se gravan en la fuente, similar a PAYE), entonces el negocio puede pagar una prima de quizás el 20% para recargar la tasa del contratista para compensar. Si el rol está fuera de IR35, entonces la tasa será un poco más baja, ahorrando dinero al empleador, pero generalmente es más atractivo para el contratista, ya que no pierden la deducción de impuestos en la fuente.

¿Me encajaré?

Los equipos de ingeniería de software suelen ser muy multiculturales, con los desarrolladores que vienen al Reino Unido desde todas las áreas del mundo dado lo maduro que es el panorama tecnológico, especialmente en Londres. La ingeniería de software en su conjunto ha sido históricamente una industria muy dominada por los hombres, pero recientemente hemos visto que el número de candidatas en el mercado aumenta año tras año, lo cual es muy alentador.

¿A dónde me llevará?

La belleza de la ingeniería de software es que realmente depende del individuo cómo desarrollan su carrera. Para algunos, están contentos de seguir escribiendo código y ser parte del equipo de desarrollo. Para otros, es el comienzo de un viaje de los rangos: asumir más responsabilidad de equipo y gestión, convertirse en jefe de ingeniería o tal vez mudarse a áreas adyacentes como ciberseguridad o datos, e incluso en última instancia asumiendo un papel tecnológico de C-suite como CDO, CTO o CIO. Una vez que te pones en marcha, es realmente todo para jugar.

Emmanuel Sackey es consultor senior, y Morgan Fox, consultor principal, en Harvey Nash