Destacados

Títulos similares

Desarrollador de software, desarrollador de aplicaciones, ingeniero de backend, ingeniero de frontend, desarrollador full-stack, desarrollador de aplicaciones móviles, desarrollador web, ingeniero de software de sistemas, ingeniero de plataformas, ingeniero de fiabilidad de sistemas, ingeniero de software embebido, desarrollador de videojuegos

Descripción del puesto

Enciende tu móvil y cuenta cuántas aplicaciones utilizas en los primeros cinco minutos: la alarma que te ha despertado, la aplicación de mensajería, el mapa que te indica cómo evitar el tráfico, el servicio de música que adivina qué quieres escuchar a continuación. Cada una de esas experiencias ha sido creada por ingenieros de software, personas que convierten las ideas en programas funcionales que millones de personas utilizan cada día. Escriben el código que hay detrás de los videojuegos, las aplicaciones bancarias, los sistemas hospitalarios, los lanzamientos de cohetes, los coches autónomos y las páginas web que visitas. Si alguna vez has pensado «Ojalá hubiera una aplicación para eso», ¡un ingeniero de software es la persona que lo hace realidad!

Los ingenieros de software diseñan, desarrollan, prueban y mantienen software, y casi nunca lo hacen solos. Un proyecto típico reúne a ingenieros, gestores de producto que deciden qué desarrollar, diseñadores que definen su aspecto y su experiencia de usuario, investigadores que analizan las necesidades de los usuarios, probadores de calidad y especialistas en seguridad. El equipo divide una gran idea en pequeñas partes, escribe código para dar vida a cada una de ellas y revisa el trabajo de los demás para detectar errores y compartir ideas. A continuación, lanzan el software, observan cómo lo utilizan los usuarios reales, corrigen los fallos y siguen mejorándolo. Algunos ingenieros crean lo que los usuarios ven y tocan en la pantalla; otros, los sistemas ocultos que almacenan datos y mantienen los servicios en funcionamiento; y otros, las herramientas de las que dependen el resto de ingenieros.

Para hacer todo esto, los ingenieros de software programan en lenguajes como Python, JavaScript, Java, C++, Swift, Kotlin y Go, y utilizan herramientas como Git y GitHub para el control de versiones, plataformas en la nube para el alojamiento y pruebas automatizadas que comprueban que nada falle cuando se produce un cambio. Cada vez más, trabajan junto a asistentes de programación basados en IA que sugieren código, explican los errores y agilizan las tareas rutinarias, mientras que el ingeniero sigue siendo el responsable de tomar buenas decisiones, comprobar los resultados y diseñar soluciones seguras y fiables. Su trabajo es importante porque, hoy en día, el software gestiona hospitales, colegios, bancos, redes eléctricas y comunicaciones, lo que significa que un programa bien diseñado puede cambiar vidas, mientras que uno creado de forma descuidada puede causar daños reales.

Aspectos gratificantes de la carrera profesional
  • Crear algo de la nada y luego ver cómo la gente de verdad lo utiliza, lo disfruta y confía en él
  • Resolver acertijos cada día, con la emoción de encontrar por fin ese error que te ha tenido en vilo durante horas.
  • Trabajar en prácticamente cualquier ámbito que te interese, como la música, la medicina, el espacio, el deporte, el clima o los videojuegos, porque todos los ámbitos necesitan software.
  • Adquirir competencias muy demandadas en todo el mundo, con la posibilidad de trabajar en startups, grandes empresas, organizaciones sin ánimo de lucro o en tus propios proyectos
La información de primera mano
Responsabilidades del puesto

Horario de trabajo

La mayoría de los ingenieros de software trabajan a tiempo completo, normalmente unas 40 horas a la semana, en oficinas, desde casa o en una combinación híbrida que varía según la empresa. El horario suele ser flexible, y los ingenieros eligen cuándo dedicarse a tareas de programación intensivas y cuándo asistir a reuniones, aunque los equipos suelen compartir unas cuantas horas en las que coinciden cada día. Muchas empresas funcionan con ciclos de trabajo cortos denominados «sprints», con reuniones de planificación periódicas, reuniones diarias llamadas «stand-ups» y revisiones al final de cada ciclo. Los días de lanzamiento o las interrupciones del servicio pueden suponer jornadas más largas, y algunos ingenieros forman parte de un turno de guardia, lo que significa que se turnan para estar disponibles y resolver problemas urgentes fuera del horario habitual. Los ingenieros pueden trabajar para empresas tecnológicas, bancos, hospitales, organismos públicos o startups, o bien como autónomos y contratistas en proyectos de su propia elección.

Funciones habituales

  • Convertir los requisitos y las ideas en software funcional mediante la escritura de código claro y bien estructurado
  • Diseñar cómo encajan entre sí los componentes de un sistema, incluidas las bases de datos, los servicios y las interfaces de usuario
  • Revisar el código de los compañeros de equipo y recibir comentarios sobre el propio código para detectar errores y mejorar la calidad
  • Escribir pruebas automatizadas que comprueben que el software sigue funcionando correctamente a medida que cambia
  • Detectar, diagnosticar y corregir los errores comunicados por los usuarios o detectados durante las pruebas
  • Utilizar herramientas de control de versiones, como Git, para realizar un seguimiento de los cambios y trabajar con otras personas sin sobrescribir el trabajo de los demás
  • Crear y conectar API que permitan que diferentes programas y servicios se comuniquen entre sí
  • Trabajar con bases de datos para almacenar, recuperar y proteger información
  • Mejorar el rendimiento, para que las aplicaciones se carguen rápidamente y puedan gestionar a muchos usuarios a la vez
  • Redactar documentación técnica para que otros ingenieros puedan comprender y utilizar tu trabajo
  • Implementar software en la nube y supervisarlo para garantizar que funcione correctamente
  • Incorporar la seguridad en todas las decisiones, desde la protección de los datos de los usuarios hasta la prevención de ataques

Responsabilidades adicionales

  • Calcular cuánto tiempo llevarán las tareas y planificar el trabajo con los responsables de producto y los compañeros de equipo
  • Orientar a los becarios y a los ingenieros más noveles, y compartir conocimientos en las reuniones de equipo
  • Participar en turnos de guardia y colaborar en la resolución de cortes de suministro e incidencias
  • Revisar y mejorar el código antiguo, lo que se conoce como «refactorización», para que sea más fácil de mantener
  • Evaluar nuevas herramientas, marcos de trabajo y asistentes de programación basados en IA, y determinar cuándo resultan útiles y cuándo no.
  • Recopilar opiniones de los usuarios y de los equipos de asistencia para orientar las mejoras
  • Redactar informes posteriores al incidente en los que se explique qué falló y cómo evitarlo la próxima vez
  • Mantenerse al día leyendo, realizando cursos, asistiendo a conferencias y colaborando en proyectos de código abierto
Un día en la vida

La mañana de un ingeniero de software suele empezar con una breve reunión de equipo, en la que todos comparten lo que terminaron ayer, en qué están trabajando hoy y si alguien tiene alguna dificultad. A continuación, viene un periodo de trabajo concentrado, que suele ser el momento más productivo del día. Quizá el ingeniero esté desarrollando una nueva función, como permitir a los usuarios guardar sus artículos favoritos, lo que implica modificar la base de datos, escribir código en el servidor y actualizar la pantalla que ve el usuario. Escribe el código en un editor, lo ejecuta localmente para comprobar si funciona y utiliza un asistente de IA que le ayuda a generar un borrador de las partes repetitivas o a explicar un error desconocido; a continuación, revisa todo con detenimiento para asegurarse de que hace lo que pretende.

A mediodía puede haber una revisión de código, en la que el ingeniero revisa los cambios de un compañero, deja comentarios y sugiere mejoras, mientras que otra persona hace lo mismo con los suyos. Es posible que participen en una breve reunión de diseño para decidir cómo estructurar una nueva parte del sistema, dibujando recuadros y flechas en una pizarra o en un documento compartido. Después de comer, puede llegar un informe de error: algunos usuarios ven una pantalla en blanco en un tipo concreto de teléfono. El ingeniero reproduce el problema, revisa los registros y el código, descubre un caso extremo que se había pasado por alto, escribe una corrección y una prueba para asegurarse de que el problema queda solucionado, y lo envía para su revisión.

Las tardes suelen combinar el desarrollo de código, las reuniones y la colaboración. El ingeniero puede charlar con un diseñador sobre cómo debería funcionar un botón, reunirse con un gestor de producto para ajustar el plan tras recibir nuevos comentarios de los usuarios o ayudar a un compañero de equipo más novato a superar un atasco. Una vez aprobado el cambio, se ejecutan pruebas automatizadas y el código se lanza primero a un pequeño grupo de usuarios, mientras las herramientas de supervisión vigilan que no surjan problemas. Antes de dar por finalizada la jornada, el ingeniero toma notas sobre lo que ha hecho, actualiza el tablero de tareas del equipo y esboza qué tareas abordar primero al día siguiente.

Competencias necesarias para el puesto

Habilidades interpersonales

  • La curiosidad y el gusto por aprender cosas nuevas, ya que la tecnología evoluciona rápidamente
  • La capacidad para resolver problemas y la perseverancia para seguir adelante cuando un error se te resiste
  • Comunicación clara, tanto escrita como oral, para explicar conceptos técnicos a personas que no son ingenieros
  • El trabajo en equipo y la colaboración, ya que casi todo el software lo desarrollan equipos
  • Recibir y dar comentarios de forma amable durante las revisiones de código
  • La gestión del tiempo y la capacidad de dividir los problemas grandes en pequeños pasos
  • La atención al detalle, ya que un solo carácter mal colocado puede hacer que un programa deje de funcionar
  • Creatividad a la hora de diseñar soluciones elegantes e imaginar nuevas funciones
  • Empatía hacia los usuarios, incluidas las personas con discapacidad o con acceso limitado a la tecnología
  • Capacidad de adaptación a nuevas herramientas, idiomas y prioridades cambiantes
  • Responsabilidad y compromiso con la calidad de lo que creas
  • Juicio ético sobre la privacidad, la equidad y el impacto de tu software en las personas

Competencias técnicas

  • Programación en lenguajes como Python, JavaScript, TypeScript, Java, C++, C#, Go, Swift o Kotlin
  • Estructuras de datos y algoritmos: la base para escribir programas eficientes
  • Control de versiones con Git y colaboración a través de plataformas como GitHub
  • Desarrollo web y móvil utilizando marcos de trabajo como React, Node.js, Django, SwiftUI o herramientas de Android
  • Bases de datos y modelado de datos, incluidos los sistemas SQL y NoSQL
  • Pruebas de software, incluidas las pruebas unitarias, las pruebas de integración y los procesos automatizados de pruebas
  • Plataformas y herramientas en la nube como AWS, Google Cloud, Azure, Docker y Kubernetes
  • Diseño de software, arquitectura de sistemas y saber cómo crear soluciones escalables
  • Conceptos básicos de seguridad, como la autenticación, el cifrado y el tratamiento seguro de los datos de los usuarios
  • Utilizar de forma eficaz los asistentes de programación basados en IA, lo que incluye redactar instrucciones claras, revisar de forma crítica el código generado y saber cuándo confiar en él
Diferentes tipos de ingenieros de software
  • Ingeniero de front-end: se encarga de desarrollar las partes de los sitios web y las aplicaciones que los usuarios ven y con las que interactúan
  • Ingeniero de backend: se encarga de desarrollar los servidores, las bases de datos y la lógica en segundo plano que permiten que las aplicaciones funcionen
  • Ingeniero full-stack: trabaja tanto en el front-end como en el back-end para desarrollar funcionalidades completas
  • Ingeniero de aplicaciones móviles: crea aplicaciones para iPhone, iPad y dispositivos Android
  • Ingeniero de aprendizaje automático: desarrolla sistemas que aprenden a partir de datos, como motores de recomendación, asistentes de voz y reconocimiento de imágenes
  • Ingeniero de fiabilidad de sistemas y DevOps: se encarga de que los grandes sistemas funcionen sin problemas, automatiza las implementaciones y responde ante las interrupciones del servicio
  • Ingeniero de sistemas y de sistemas embebidos: desarrolla software para dispositivos como coches, equipos médicos, drones y electrodomésticos inteligentes
  • Ingeniero de videojuegos: se encarga de desarrollar los motores, los gráficos y el código de jugabilidad para videojuegos y experiencias interactivas
Diferentes tipos de organizaciones
  • Grandes empresas tecnológicas, como las de redes sociales, motores de búsqueda, comercio electrónico y proveedores de servicios en la nube
  • Startups que desarrollan nuevos productos y servicios
  • Bancos, empresas de tecnología financiera y compañías de seguros
  • Hospitales, empresas de tecnología sanitaria y empresas biotecnológicas
  • Estudios de videojuegos y empresas de entretenimiento
  • Empresas del sector aeroespacial, de la automoción y de los vehículos eléctricos
  • Organismos gubernamentales, las Fuerzas Armadas y los laboratorios nacionales
  • Colegios, universidades y empresas de tecnología educativa
  • Organizaciones sin ánimo de lucro y de tecnología cívica
  • Empresas del sector minorista, de la logística y de los viajes
  • Empresas de ciberseguridad
  • Empresas de consultoría y trabajo por cuenta propia o por contrato
Expectativas y sacrificios

La ingeniería de software recompensa a quienes disfrutan resolviendo problemas difíciles, pero el trabajo conlleva una presión real. Los plazos de entrega son habituales y, cuando un error afecta a algo que utilizan millones de personas, la presión para solucionarlo rápidamente es intensa. Se espera que los ingenieros escriban código que funcione, sea legible y pueda ser mantenido por otros, y su trabajo es revisado abiertamente por sus compañeros de equipo. Al principio, esto puede resultar incómodo, pero recibir comentarios con una mente abierta es una habilidad que hace que los ingenieros mejoren.

Este trabajo exige un aprendizaje constante. Los lenguajes de programación, los marcos de trabajo y las herramientas cambian cada pocos años, y las herramientas asistidas por IA están transformando la forma en que se escribe el código. Los ingenieros que tienen éxito mantienen viva su curiosidad, practican con frecuencia y se centran en fundamentos duraderos, como la resolución de problemas, el diseño de sistemas y el pensamiento claro, en lugar de perseguir cada nueva tendencia. También es normal sentirse atascado o confundido mientras se aprende algo nuevo, y casi todos los ingenieros se han quedado mirando fijamente la pantalla preguntándose por qué algo no funciona.

El trabajo se realiza principalmente sentado y frente a la pantalla, por lo que los ingenieros deben cuidar sus ojos, muñecas, espalda y bienestar mental tomando descansos, manteniéndose activos y estableciendo límites en torno al trabajo. Las guardias pueden interrumpir las tardes y los fines de semana, y las empresas emergentes pueden exigir jornadas largas durante los periodos críticos. Los ingenieros también tienen una responsabilidad ética, ya que las decisiones sobre datos, algoritmos y diseño pueden afectar a la privacidad, la seguridad y las oportunidades de las personas; por eso, los mejores ingenieros se preguntan constantemente no solo si pueden crear algo, sino si deben hacerlo.

Tendencias actuales
  • La generalización del uso de asistentes de programación basados en IA que sugieren, explican y generan código, lo que permite que los ingenieros dediquen más tiempo al diseño, la revisión y la toma de decisiones.
  • El auge de los productos basados en la inteligencia artificial, desde los chatbots y los sistemas de recomendación hasta las herramientas capaces de resumir, traducir y crear imágenes
  • La computación en la nube y la arquitectura sin servidor, que permiten a equipos pequeños gestionar servicios a gran escala
  • Mayor atención a la ciberseguridad y la privacidad, con la seguridad integrada desde el inicio de cada proyecto
  • El auge de las herramientas multiplataforma que permiten a los equipos desarrollar una única aplicación que funciona en la web, en iOS y en Android
  • Expansión del software de código abierto y de las comunidades que comparten código e ideas libremente
  • DevOps y la automatización, en las que el código se prueba y se publica varias veces al día con muy poco trabajo manual
  • Lenguajes de programación más seguros, como Rust, y sistemas de tipos más robustos que detectan errores antes de que el software salga al mercado
  • El software se está expandiendo a nuevos ámbitos, como la salud, la tecnología climática, la robótica y la exploración espacial
  • Colaboración a distancia e híbrida, con equipos repartidos por diferentes zonas horarias
  • Herramientas «low-code» y «no-code» que ponen al alcance de más personas la creación de aplicaciones sencillas, mientras que los ingenieros se centran en los complejos sistemas subyacentes
  • Prestar mayor atención a la accesibilidad, para que el software sea útil para personas con una amplia variedad de capacidades
¿Qué tipo de cosas les gustaba hacer a las personas que se dedican a esta profesión cuando eran más jóvenes…?

Muchos ingenieros de software eran niños a los que les encantaba descubrir cómo funcionaban las cosas, desde desmontar aparatos electrónicos viejos hasta modificar la configuración de su videojuego favorito. Creaban páginas web por diversión, hacían mods para Minecraft o Roblox, diseñaban pequeños juegos con Scratch, escribían programas sencillos para automatizar tareas escolares o aprendían un lenguaje por su cuenta siguiendo tutoriales en línea hasta altas horas de la noche. Los rompecabezas, los juegos de lógica, el ajedrez, los concursos de matemáticas y construir con Lego o kits de electrónica solían ser sus actividades favoritas, al igual que la satisfacción de resolver por fin un reto complicado.

Otros descubrieron la programación a través de clubes de robótica, hackatones o una clase que les abrió los ojos, y algunos no empezaron hasta la universidad o incluso más tarde. A algunos les encantaba el arte, la música o contar historias, y descubrieron que la programación les permitía dar vida a esas visiones creativas. Lo que todos tenían en común era la curiosidad por saber cómo funcionan las cosas, la paciencia para el proceso de prueba y error, y la alegría de crear algo que antes no existía. Y lo más importante: no hace falta haber sido un niño prodigio para convertirse en ingeniero de software, ya que muchos ingenieros de éxito empezaron tarde y aprendieron sobre la marcha.

«Me gustaban bastante los videojuegos, y estoy seguro de que eso también influyó al final, pero, en realidad, cuando era más joven me interesaba más la ciencia. Estudié ingeniería química en la universidad antes de cambiar de carrera. Probablemente, la chispa y la pasión por la programación surgieron de mi curso de programación del instituto, donde disfrutaba muchísimo con los problemas que se nos planteaban, así como con el hecho de desglosarlos de forma lógica, como por ejemplo las complejidades de crear una pecera simulada». Leon Ho, ingeniero de software en OpenX

Formación y capacitación necesarias

La mayoría de los ingenieros de software cuentan con una licenciatura en informática, ingeniería de software, ingeniería informática o un campo estrechamente relacionado, que suele durar cuatro años. Estos programas imparten programación, estructuras de datos, algoritmos, sistemas informáticos, bases de datos y diseño de software, junto con las matemáticas y la lógica que los sustentan. Muchas empresas también contratan a personas con otras titulaciones o con perfiles no tradicionales, siempre que puedan demostrar sólidas competencias a través de proyectos, prácticas y entrevistas técnicas. Algunos ingenieros cursan un máster para especializarse en áreas como la inteligencia artificial, la ciberseguridad o los sistemas, y otros cursan un doctorado para desempeñar funciones de investigación.

Los bootcamps de programación, los programas de los centros de formación profesional, los cursos en línea y el autoaprendizaje ofrecen vías adicionales, especialmente para quienes desean cambiar de carrera o quieren iniciarse rápidamente. Sea cual sea la vía elegida, las empresas buscan pruebas de que eres capaz de crear productos reales y de trabajar en equipo, por lo que los proyectos, las contribuciones al código abierto y las prácticas tienen un gran peso. La ingeniería de software no requiere una licencia en la mayoría de los casos, aunque las certificaciones en la nube y en seguridad pueden resultar útiles para algunos puestos.

Los estudiantes pueden cursar asignaturas relacionadas con temas como:

  • Introducción a la programación
  • Estructuras de datos y algoritmos
  • Matemáticas discretas, cálculo y estadística
  • Sistemas informáticos y arquitectura de ordenadores
  • Sistemas operativos y redes
  • Bases de datos y gestión de datos
  • Ingeniería de software y diseño de software
  • Desarrollo de aplicaciones web y móviles
  • Ciberseguridad y programación segura
  • Inteligencia artificial y aprendizaje automático

Desarrollar proyectos reales es la mejor forma de aprender. Las prácticas, los hackatones, la investigación con profesores y las contribuciones al software de código abierto proporcionan a los estudiantes experiencia en el trabajo en equipo, la revisión de código y el uso de las herramientas que se emplean en el ámbito laboral. Un buen portfolio en GitHub, con unos cuantos proyectos bien documentados, suele causar mejor impresión a los empleadores que una larga lista de asignaturas cursadas.

Una vez contratados, los ingenieros aprenden gracias a sus mentores, a las revisiones de código y a la práctica en el puesto de trabajo. Las empresas suelen ofrecer programas de incorporación, formación interna y tiempo para el aprendizaje, y los ingenieros siguen adquiriendo nuevos lenguajes, herramientas y técnicas a lo largo de su carrera profesional.

Actividades para hacer en el instituto y en la universidad
  • Cursar álgebra, geometría, trigonometría, precálculo y cálculo, además de «Principios de Informática AP» y «Informática AP A», si se imparten.
  • Aprende a programar con recursos gratuitos como CS50, freeCodeCamp, The Odin Project o Khan Academy, empezando por Python o JavaScript.
  • Crea proyectos que te interesen, como un videojuego, una página web, un bot de Discord o una aplicación que resuelva un problema de tu colegio o tu familia
  • Sube tu código a GitHub y escribe breves descripciones de para qué sirve cada proyecto y qué has aprendido.
  • Únete a un equipo de robótica o a un club de programación, o crea uno con tus amigos, y participa en hackatones o concursos de programación como el USACO.
  • Colabora en proyectos de código abierto, aunque sea corrigiendo pequeños errores o mejorando la documentación.
  • Practica la resolución de problemas en páginas web como LeetCode y aprende a explicar tu razonamiento en voz alta
  • Participa en programas para estudiantes, como Girls Who Code, Hack Club o campamentos locales de programación y cursos en centros de formación profesional.
  • Busca prácticas de verano, puestos de investigación o trabajos a tiempo parcial en empresas tecnológicas, startups o negocios locales
  • Apúntate a clases de redacción, oratoria y diseño, porque la comunicación y la creatividad son lo que hace que los ingenieros destaquen
  • Descubre las herramientas de IA y practica su uso para aprender más rápido, asegurándote al mismo tiempo de que entiendes cada línea de código que envías.
  • Busca un mentor, pregunta a los ingenieros sobre su trabajo y pide opiniones sobre tus proyectos
ASPECTOS QUE HAY QUE TENER EN CUENTA EN UN PROGRAMA DE EDUCACIÓN Y FORMACIÓN
  • Amplio tratamiento de los fundamentos, incluyendo estructuras de datos, algoritmos, sistemas y diseño de software
  • Oportunidades para desarrollar proyectos en equipo que simulen prácticas reales del ámbito laboral, como el control de versiones y la revisión de código
  • Una asignatura de culminación en la que se desarrolla un proyecto de envergadura, a ser posible para un cliente real
  • Programas de prácticas y de formación en alternancia con empresas de prestigio en tu ámbito de interés
  • Profesorado con experiencia en el sector y oportunidades de investigación para estudiantes de grado
  • Acceso a herramientas modernas, plataformas en la nube y recursos informáticos
  • Asignaturas optativas en áreas que quizá te interese explorar, como la inteligencia artificial, el desarrollo de videojuegos, la seguridad o las aplicaciones móviles
  • Clubes de estudiantes muy activos, hackatones y comunidades de programación
  • Un entorno solidario e inclusivo, con un sólido programa de tutoría y orientación
  • Políticas y métodos pedagógicos que ayuden a los alumnos a utilizar las herramientas de IA de forma responsable, sin dejar de desarrollar las competencias básicas
  • Excelentes resultados en la inserción laboral y una red de antiguos alumnos en empresas que admiras
  • Matrícula asequible, ayudas económicas y becas, o alternativas de bajo coste, como los programas de transferencia de los centros de formación profesional
Plan de acción típico
Ingeniero de software
Cómo conseguir tu primer trabajo
  • Realiza una o varias prácticas, ya que muchos ingenieros recién titulados consiguen su primera oferta de trabajo a través de unas prácticas
  • Busca puestos de nivel inicial como «Ingeniero de software I», «Desarrollador junior», «Ingeniero de software adjunto», «Desarrollador front-end», «
    », «Desarrollador back-end», «Ingeniero de control de calidad» o «Ingeniero de software de pruebas».
  • Utiliza plataformas de empleo como LinkedIn, Indeed, Handshake y las páginas de empleo de las empresas, y busca tanto en startups como en grandes empresas
  • Crea un portafolio con unos cuantos proyectos bien elaborados que muestren diferentes habilidades, y haz que sean fáciles de ejecutar y de entender.
  • Mantén un perfil de GitHub ordenado, con código legible y archivos README claros
  • Practica las entrevistas técnicas resolviendo problemas de programación en voz alta y explicando tu razonamiento
  • Prepárate para las preguntas sobre comportamiento teniendo preparadas algunas anécdotas sobre el trabajo en equipo, los errores y cómo aprendiste de ellos.
  • Asiste a ferias de empleo, hackatones y encuentros para conocer a ingenieros y responsables de selección de personal
  • Pide recomendaciones a amigos, compañeros de clase, profesores y antiguos compañeros de prácticas, ya que las recomendaciones ayudan a que tu currículum llame la atención.
  • Adapta tu currículum a cada puesto de trabajo, destaca proyectos y resultados reales, y procura que no ocupe más de una página.
  • Plantéate colaborar en proyectos de código abierto o como autónomo para adquirir experiencia práctica.
  • Sé constante, ya que la búsqueda de empleo puede requerir enviar muchas solicitudes, y toma cada rechazo como un entrenamiento para la próxima entrevista.
Cómo ascender en la escala profesional
  • Escribe código limpio y fiable, y aprende a desarrollar funcionalidades de principio a fin
  • Aprovecha al máximo las revisiones de código y los consejos de tus mentores, y pregunta cuando tengas dudas.
  • Asume la responsabilidad de proyectos de mayor envergadura, desde la planificación hasta el lanzamiento y el mantenimiento
  • Adquiere conocimientos sobre diseño de sistemas, para que puedas planificar cómo encajan entre sí los sistemas de gran envergadura
  • Desarrollar habilidades de comunicación y liderazgo, como redactar documentos de diseño, orientar a otras personas y dirigir reuniones
  • Elige una trayectoria: o bien una trayectoria técnica hacia los puestos de ingeniero sénior, ingeniero de plantilla e ingeniero principal, o bien una trayectoria de gestión hacia los puestos de
    , responsable de ingeniería y director.
  • Especialízate en un ámbito con gran demanda, como el aprendizaje automático, la seguridad, las infraestructuras o el desarrollo de aplicaciones móviles
  • Contribuir a la comunidad en general impartiendo charlas en congresos, escribiendo y ayudando a otros a aprender
Recursos recomendados

Páginas web:

  • CS50, el curso gratuito de introducción a la informática de Harvard - cs50.harvard.edu/x
  • freeCodeCamp - freecodecamp.org
  • El Proyecto Odin - theodinproject.com
  • MDN Web Docs - developer.mozilla.org
  • GitHub - github.com
  • Asociación para la Maquinaria Computacional (ACM) - acm.org
  • IEEE Computer Society - computer.org
  • Code.org - code.org
  • Girls Who Code - girlswhocode.com
  • Hack Club - hackclub.com
  • Olimpiada Informática de EE. UU. (USACO) - usaco.org
  • Major League Hacking - mlh.com
  • Stack Overflow - stackoverflow.com
  • Informática de Khan Academy - khanacademy.org/computing

Libros:

  • «Clean Code», de Robert C. Martin
  • «El programador pragmático», de David Thomas y Andrew Hunt
  • «Code Complete», de Steve McConnell
  • «Diseño de aplicaciones con un uso intensivo de datos », de Martin Kleppmann
  • «Automatiza las tareas aburridas con Python», de Al Sweigart
Plan B: Carreras profesionales

Si descubres que la profesión de ingeniero de software no es lo tuyo, tus habilidades en lógica, resolución de problemas y desarrollo tecnológico te serán útiles en muchas otras profesiones relacionadas.

  • Científico de datos
  • Analista de ciberseguridad
  • Responsable de proyectos de TI
  • Responsable de producto
  • Diseñador de UX/UI
  • Analista de sistemas
  • Ingeniero de control de calidad
  • Redactor técnico
  • Administrador de bases de datos
  • Ingeniero de hardware informático
Infografía

Haz clic aquí para descargar la infografía

Desarrollador de software en GladeoGraphix

Sección de noticias

Cursos y herramientas en línea

SALARIO Y PERSPECTIVAS LABORALES
Elige una subregión:

Expectativas salariales anuales

$115K
$156K
$170K

Los nuevos empleados empiezan con un sueldo de unos 115 000 dólares. El sueldo medio es de 156 000 dólares al año. Los trabajadores con mucha experiencia pueden llegar a ganar unos 170 000 dólares.

Fuente: Estado de California, Departamento de Desarrollo del Empleo

Expectativas salariales anuales

$172K
$205K
$220K

Los nuevos trabajadores empiezan con un sueldo de unos 172 000 dólares. El sueldo medio es de 205 000 dólares al año. Los trabajadores con mucha experiencia pueden llegar a ganar unos 220 000 dólares.

Fuente: Estado de California, Departamento de Desarrollo del Empleo

Expectativas salariales anuales

$108K
$146K
$180K

Los nuevos empleados empiezan con un sueldo de unos 108 000 dólares. El sueldo medio es de 146 000 dólares al año. Los trabajadores con mucha experiencia pueden llegar a ganar unos 180 000 dólares.

Fuente: Estado de California, Departamento de Desarrollo del Empleo

Expectativas salariales anuales

$112K
$149K
$173K

Los nuevos trabajadores empiezan con un sueldo de unos 112 000 dólares. El sueldo medio es de 149 000 dólares al año. Los trabajadores con mucha experiencia pueden llegar a ganar unos 173 000 dólares.

Fuente: Estado de California, Departamento de Desarrollo del Empleo

Expectativas salariales anuales

$103K
$138K
$173K

Los nuevos trabajadores empiezan con un sueldo de unos 103 000 dólares. El sueldo medio es de 138 000 dólares al año. Los trabajadores con mucha experiencia pueden llegar a ganar unos 173 000 dólares.

Fuente: Estado de California, Departamento de Desarrollo del Empleo