Ingeniero de software · Escribe, prueba y mantiene el código que sostiene la vida moderna — y es una de las primeras profesiones que ve cómo la IA automatiza su propio trabajo diario.
La imagen de un ingeniero tecleando sin parar durante ocho horas es en gran medida falsa. Leer el código de otras personas, razonar sobre un fallo sin causa obvia y explicar una compensación técnica a quienes no son ingenieros ocupa tanto del trabajo como escribir código nuevo —a menudo más, para cualquiera que haya pasado sus primeros años.
El oficio que se transmite dentro de la profesión tiene menos que ver con qué lenguaje aprender y más con hábitos mentales: cómo buscar un fallo de forma sistemática en lugar de adivinar, cuándo dejar en paz el código que funciona, y cuándo borrar código es lo más valioso que se hizo en toda la semana.
Lo que exige el trabajo
Descomposición de problemas
88
Depuración
90
Diseño de sistemas
74
Comunicación y colaboración
80
Pruebas y calidad del código
70
Aprendizaje continuo
83
Descomposición de problemas
Partir una petición vaga y grande en piezas pequeñas, construibles y comprobables por separado: la habilidad que más separa a los ingenieros productivos de quienes se atascan en tareas grandes.
Depuración
Acotar de forma sistemática dónde y por qué un sistema se comporta mal, en lugar de adivinar y cambiar cosas hasta que por casualidad funcione.
Diseño de sistemas
Elegir cómo dividir servicios, datos y equipos para que el conjunto pueda seguir cambiando con seguridad durante años, y no solo funcionar el primer día.
Comunicación y colaboración
Explicar una compensación técnica a alguien que no es ingeniero, redactar un cambio con claridad para los revisores y negociar el alcance: la mayor parte del código profesional se lee y se discute mucho más de lo que se escribe.
Pruebas y calidad del código
Escribir comprobaciones que atrapen un cambio roto antes de que lo haga un usuario, y mantener un código lo bastante legible para que la siguiente persona —a menudo el mismo ingeniero, meses después— pueda modificarlo con seguridad.
Aprendizaje continuo
Lenguajes, frameworks y ahora herramientas de IA se renuevan cada pocos años; los ingenieros que dejan de aprender a propósito tras su primer empleo se estancan pronto.
Un día en la vida
7–9Bandeja, standup y triaje
Ponerse al día con alertas y mensajes de la noche, y luego una breve reunión de standup en la que el equipo dice en qué trabaja y qué lo bloquea.
9–12Trabajo profundo: escribir código
El bloque mejor protegido del día, idealmente con notificaciones apagadas, dedicado a implementar una función o corrección que exige concentración sostenida.
12–13Almuerzo
Una pausa de verdad; muchos ingenieros cuentan que es lo primero que desaparece en un aprieto, y lo primero que lamentan perder.
13–16Revisiones, pair programming y reuniones
Leer los pull requests de los compañeros, hacer pair programming en un problema difícil y las reuniones de diseño o planificación que suelen concentrarse por la tarde.
16–19Depuración, despliegues y cierre
Terminar y publicar el cambio del día, vigilar que se despliegue con seguridad y dejar notas para mañana o para quien esté de guardia por la noche.
19–7Fuera del horario (casi)
Tiempo personal y sueño —salvo que sea una semana de guardia, cuando una alerta del teléfono puede convertir las 3 de la madrugada en un incidente de producción improvisado.
El saber hacer
Conocimiento de oficio que se transmite de verdad — no motivación vacía.
01
Haz bisección, no adivines
Cuando un fallo apareció en algún punto entre una versión que funcionaba y una rota, busca en el historial por bisección en lugar de mirar el diff a ojo: comprueba el punto medio y repite hasta que quede un solo cambio en pie.
02
Lee el fallo antes de leer el código
El mensaje de error completo, el stack trace y las líneas de registro alrededor suelen contener ya la respuesta; saltar directo al código fuente y adivinar desperdicia la única evidencia que el ordenador ofreció gratis.
03
Haz el cambio fácil y luego haz el cambio fácil
Cuando una función es difícil de añadir, suele ser señal de que el código está mal formado para ella. Refactoriza primero, sin cambiar el comportamiento, hasta que la función se convierta en un diff pequeño y obvio —y entonces haz ese diff.
04
La valla de Chesterton
Antes de borrar o simplificar código, un valor de configuración o una comprobación que no entiendes, averigua por qué se puso ahí. Puede estar protegiendo en silencio contra un fallo que no ha ocurrido en años precisamente por esa razón.
05
Borrar código es progreso
El código que ya no existe no puede tener un fallo, no puede confundir al siguiente lector y no puede necesitar actualización. Eliminar caminos muertos y funciones sin uso debería celebrarse igual que publicar una función.
06
Depuración del patito de goma
Explica el problema en voz alta, línea a línea, a un compañero o incluso a un objeto inanimado antes de pedir ayuda. El acto de articularlo con precisión suele sacar el fallo a la luz antes de que nadie responda.
Herramientas del oficio
Editor de código / IDE
Dominan Visual Studio Code y los IDE de JetBrains; ambos integran ya autocompletado y chat asistidos por IA directamente en el editor.
Git
El sistema de control de versiones en el que se estandarizó casi toda la industria después de que Torvalds lo escribiera en 2005; casi nada se publica sin él.
Gestor de incidencias
Jira, Linear o GitHub Issues convierten una lista de fallos y funciones en algo en torno a lo cual un equipo puede planificar una semana o un trimestre.
Tubería CI/CD
Sistemas automatizados que construyen, prueban y despliegan código en cada cambio, convirtiendo un lanzamiento de un evento manual nervioso en uno rutinario.
Asistente de código con IA
Herramientas como GitHub Copilot escriben ya una gran parte de las líneas que un ingeniero acepta, desplazando el trabajo diario hacia revisar y dirigir más que hacia teclear.
Cómo se falla en esto
Desarrollo orientado al currículum
Elegir un lenguaje, framework o arquitectura de moda porque queda bien en el currículum y no porque encaje con el problema, dejando atrás complejidad que el siguiente equipo tiene que mantener.
No leer el mensaje de error
Emparejar el fallo con una corrección recordada en lugar de leer lo que el programa está reportando de verdad, lo que puede quemar horas persiguiendo la causa equivocada.
La reescritura a lo grande
Tirar un sistema que funciona para reconstruirlo «bien» desde cero es una jugada famosamente arriesgada: la reescritura completa del navegador de Netscape a finales de los años 1990 es un caso muy citado en el que le costó a la empresa su liderazgo de mercado.
Profesiones similares
Vecinos más cercanos en el perfil de seis puntuaciones, no solo el mismo campo.