1. Escalera profesional
Los programadores también tienen diferentes niveles según su cualificación. Antes se usaban términos como «coder», «programmer» y «hacker», pero ahora todos usan nombres en inglés de la industria IT estadounidense.
Para un desarrollador, hay 6 niveles principales:
- Intern Software Engineer
- Junior Software Engineer
- Middle Software Engineer
- Senior Software Engineer
- TechLead
- Principal Software Engineer
De un país a otro y incluso de una empresa a otra, algunos parámetros pueden variar, pero la idea es más o menos así:
- 🌱 Intern Software Engineer — son pasantes. Están en proceso de aprender programación, no tienen experiencia comercial ni en grandes proyectos. Normalmente trabajan bajo supervisión de colegas más experimentados. Su tarea principal en el trabajo es estudiar la base de código y los fundamentos del desarrollo de software, realizando tareas sencillas de codificación y participando en pruebas.
- 🐣 Junior Software Engineer — ya son programadores, pero sin experiencia comercial significativa o menos de un año de experiencia. Trabajan bajo la dirección de desarrolladores más experimentados, implementando partes de proyectos y participando en ciclos de code review. Esta etapa se centra en profundizar habilidades técnicas y entender los requerimientos del proyecto.
- 🦾 Middle Software Engineer (o simplemente Software Engineer): tienen más autonomía para tomar decisiones técnicas, son responsables de partes importantes del proyecto, empiezan a hacer mentoría a colegas menos experimentados y participan activamente en discusiones de arquitectura. Normalmente tienen entre 2 y 5 años de experiencia práctica.
- 🧑🔬 Senior Software Engineer: se encargan del diseño y desarrollo de sistemas complejos, brindan mentoría y liderazgo dentro del equipo, participan en la planificación estratégica de los proyectos y a menudo representan al equipo en comunicación con clientes y otras partes interesadas. Generalmente tienen entre 5 y 10 años de experiencia.
- 🧠 TechLead: responsable del resultado técnico final del proyecto, lidera el desarrollo, resuelve los problemas más complejos, asegura el cumplimiento de estándares técnicos y coordina las actividades de los desarrolladores.
- 🏆 Principal Software Engineer: trabaja en el nivel técnico más alto, participa en la definición de la estrategia técnica de la empresa, desarrolla soluciones innovadoras y establece estándares técnicos, además de ser un mentor principal para los líderes técnicos y un experto clave en temas complejos.
Esto es interesante. En grandes empresas, puede haber roles y subroles adicionales. Por ejemplo, en Google existen estos roles:
- Staff Software Engineer (L6): tiene una influencia significativa en la política técnica de su departamento.
- Senior Staff Software Engineer (L7): trabaja en proyectos a gran escala y complejidad, define la dirección estratégica del desarrollo tecnológico en la compañía.
2. Productos Lego
Hace mucho tiempo (en 1975), Niklaus Wirth, creador del lenguaje Pascal, escribió el libro «Algorithms + Data Structures = Programs». Desde entonces, mucho ha cambiado. El producto de software moderno no es lo que era hace 10 años, y mucho menos lo que fue hace 20. No vale la pena hablar del año 1975 — han pasado 50 años ⏳
El programador moderno ya no escribe programas manualmente. Más bien, los ensambla a partir de componentes ya existentes (bibliotecas) y escribe código que ayuda a estos componentes a interactuar🧩. Los productos de software actuales pueden estar compuestos por decenas o incluso cientos de programas. Algunos se ejecutan en la computadora del usuario, en sus dispositivos móviles, pero la mayoría en servidores en centros de datos.
Muchos de estos programas, como servidores web o bases de datos, ya están escritos. Solo hay que configurarlos correctamente para que funcionen como se necesita. Aunque con el tiempo, el proceso de configuración puede volverse tan complejo que en realidad se convierte en desarrollo. 🤦♂️
Los programadores están en constante lucha consigo mismos. En lugar de volver a escribir código similar en diferentes programas, crean bibliotecas que se pueden configurar (ajustar) según sus necesidades, y luego simplemente las integran en todos los lugares necesarios.
En los últimos 20 años, los programadores han creado muchísimas bibliotecas, frameworks y repositorios open source. Son realmente millones. Y ahora, escribir todo desde cero se considera de mala educación. Lo que hay que hacer es armar el programa con soluciones de calidad y comprobadas — bibliotecas, frameworks, paquetes y módulos 🧱
Pero incluso ese enfoque ya está quedando obsoleto. La tendencia de los últimos 10 años es migrar a la nube, grandes centros de datos que ofrecen todo lo que tus programas necesitan. ¿Quieres una base de datos? Tenemos cientos para elegir. ¿Quieres un servidor web único y raro? También hay. Cualquier capricho, por dinero, claro.
3. «Yo soy ingeniero» © Elon Musk

Ya no hace falta escribir cosas complicadas y aburridas desde cero. Si necesitas alguna funcionalidad, ya existen bibliotecas y frameworks listos para usar. Tu tarea: a) conocer su existencia, b) encontrar la opción adecuada (a menudo hay varias con diferentes calidades y detalles), c) entender cómo integrarla en tu proyecto 🎓
Esto hace que el trabajo sea mucho más interesante. Ahora puedes agregar nuevas funcionalidades en tu producto 10 veces más rápido. Hace 30 años, si necesitabas un servidor web, lo escribías desde cero. Hace 20, lo comprabas, instalabas y configurabas. Y ahora, simplemente entras en Azure o AWS y activas el servicio que necesitas 🌐
Por cierto, esa es una de las razones por las que el lenguaje C# es tan popular. Es excelente no solo para crear soluciones grandes, sino también para "pegar" diferentes componentes — a través de .NET hay integraciones con casi todo, desde bases de datos, microservicios, REST API, colas de mensajes o servicios en la nube.
Por eso, la profesión de C#/.NET developer se ha transformado en un Fullstack .NET Software Engineer. Es importante que el desarrollador moderno entienda cómo funciona una base de datos (SQL Server, PostgreSQL, MongoDB, etc.) para construir interacciones correctas. También debe entender cómo funciona el frontend (HTML, CSS, JavaScript/TypeScript, Blazor) para configurar la comunicación con el backend en C#. Y, por supuesto, Docker ya es imprescindible — es el estándar en la industria. 🐳
El desarrollo moderno es muy diferente a lo que era hace 20 años. El programador escribe código solo en el 50% del tiempo; el resto se dedica a leer documentación, aprender nuevas tecnologías, diseñar y trabajar en equipo en reuniones. Los programadores en solitario son ya una excepción rara.
GO TO FULL VERSION