Middle C++
¿Quién es?
Es un desarrollador que comprende el contexto técnico del desarrollo de software y tiene la capacidad de crear un diseño y una solución para una funcionalidad que es parte de una aplicación o componente. El diseño también se puede crear incluso cuando hay una cantidad insuficiente de requisitos. Esta persona tiene antecedentes en experiencia comercial y está familiarizada con los procesos de negocio comunes en el desarrollo.
En general, el desarrollador de nivel medio (middle) resuelve tareas técnicas, y en comparación con un Junior, esta persona puede completar el trabajo sin ayuda o con una asistencia mínima de un ingeniero Sénior/Líder.
¿Qué habilidades de programación se esperan?
- Ya no ve un compilador y un lenguaje de programación como una “caja mágica”; es capaz de resolver cualquier obstáculo o sorpresa generando hipótesis, validándolas y confirmándolas o rechazándolas.
- Tiene una comprensión profunda de los conceptos fundamentales de C++ y conocimiento de otros lenguajes de programación, siendo capaz de compararlos.
- Escribe código legible, extensible y mantenible.
- Familiarizado con patrones y principios de diseño y capaz de tomar decisiones técnicas.
- Tiene una clara comprensión del contexto técnico de C++, que incluye:
- el proceso de escritura de código (como usar IDE, editores de texto y seguir las mejores prácticas)
- almacenamiento del código fuente y del producto (como usar sistemas de control de versiones y administradores de paquetes)
- compilación (compiladores, sistemas de construcción y bibliotecas)
- pruebas (frameworks de pruebas y estrategias)
- envío/despliegue (deployment) y ejecución en un sistema de destino.
- Tiene un fuerte conocimiento de los fundamentos de la informática, incluyendo estructuras de datos, grafos, máquinas finitas y algoritmos.
¿Qué habilidades generales se esperan?
- Es capaz de tomar decisiones basadas en su conocimiento técnico personal y los antecedentes de un proyecto.
- Entiende el concepto de soluciones “suficientemente buenas” (good enough) para evitar el exceso de ingeniería (overengineering).
- Tiene mentalidad de ser un jugador de equipo.
- Puede articular y compartir opiniones con otros miembros del equipo.
- Tiene experiencia trabajando con diversas metodologías como Kanban, Agile/Scrum, Waterfall, etc.
- Está dispuesto a ayudar y apoyar a otros miembros del equipo.
Consejos y recomendaciones
Estudiar
- Mejorar las habilidades blandas (soft skills) es crucial si quieres convertirte en un desarrollador sénior. La experiencia técnica pasa a un segundo plano y la capacidad de construir relaciones y encontrar compromisos con los demás se vuelve más importante. Un buen desarrollador no es alguien que escribe mucho código, sino alguien que sabe cómo resolver un problema eficientemente con pérdidas mínimas. Idealmente, deberías poder resolver un problema sin escribir ningún código nuevo o incluso eliminar decenas o cientos de líneas de código.
- El rol middle es el más difícil de dominar. Tienes que concentrarte tanto en habilidades duras (hard skills) como blandas y en la resolución de problemas empresariales. Esto significa que debes concentrarte en ambos aspectos al mismo tiempo.
- Prestar atención a las habilidades blandas aumenta tus posibilidades de convertirte en un profesional muy buscado en el mercado. Puedes elegir centrarte en convertirte en un desarrollador altamente especializado e ignorar las habilidades blandas, pero ten en cuenta que tales especialistas no siempre tienen mucha demanda y la competencia entre ellos es extremadamente alta. Si estás listo para competir con los mejores especialistas del mercado, por todos los medios, adelante. Sin embargo, seguimos recomendando considerar la diversificación de tus habilidades.
Experiencia
- Muchos desarrolladores middle caen en la trampa de convertirse en “fanboys” de tecnologías, frameworks, patrones de diseño o metodologías. Es importante ser más pragmático al resolver tareas en tu proyecto y no solo intentar adoptar las últimas ideas por el simple hecho de agregar otra habilidad a tu currículum. El rol middle puede llevar a un exceso de ingeniería o a un cambio constante de frameworks.
- Si crees que una biblioteca o framework es necesario para un proyecto, lo mejor es discutirlo con un ingeniero Sénior o Líder primero. Proponga crear una “prueba de concepto” (proof of concept) donde pueda probar todas sus hipótesis antes de agregar una nueva dependencia. No intentes hacer esto a espaldas de tu equipo, ya que podría resultar en mayores costos de mantenimiento y consecuencias imprevistas.
| Volver | Ir a la página principal |