En el post de hoy estaremos comentando acerca un spaces muy buenooooo comentado en semanas anteriores en el twitter desahogo tech, sí tu aún no tienes tu participación, recuerda que puedes hacerlo cada sábado a las 17:30 hora España.
Características típicas de los desarrolladores junior, de nivel medio y senior.
Sí le das la misma tarea a un desarrollador junior, a un desarrollador de nivel medio y a un desarrollador senior, recibirás (obviamente) soluciones muy diferentes.
Sin embargo, creo que hay algunos rasgos comunes en el código producido en cada nivel.
Si tu quieres escuchar el contenido de este blog, te invito a que rápidamente puedas ir a spotify a escucharlo.
JUNIOR
Me parece que los juniors escriben un código muy simplista. No porque busquen la simplicidad, sino porque todavía están luchando con la resolución de problemas, la domesticación del lenguaje y los conceptos, principios y enfoques generales de la programación.
Los juniors están aprendiendo a un ritmo rápido, y en cada esquina se exponen a un código completamente "nuevo". Descifrar si algo es bueno, malo o está roto es difícil.
Los juniors son codificadores compulsivos. Colocan inadvertidamente los ajustes de la aplicación directamente en el código o utilizan if-else y switch para todas las bifurcaciones.
"MIDSENIOR"
Por otro lado, el desarrollador de nivel medio conoce muchos patrones y enfoques comunes. Este desarrollador está llegando a un punto en el que los conceptos generales se interiorizan y se aplican para resolver los problemas de codificación cotidianos.
El código del desarrollador de nivel medio está demasiado hinchado y a veces parece que el mantra es la ofuscación a través de la abstracción.
En algunos casos, las tareas pueden llevar más tiempo que las del desarrollador junior, pero se detectan más casos límite y la calidad general del código es mayor.
Al leer el código de un senior, los desarrolladores de "nivel medio" pueden pensar "¿realmente escribió esto un senior?". El desarrollador senior sabe cuándo las abstracciones tienen sentido y cuándo el código "más plano" es el mejor camino a seguir.
SENIOR
Un senior es excepcionalmente bueno escribiendo módulos fácilmente extensibles, utilizados por otros desarrolladores. Cada pieza de código que pueda dar lugar a un momento de "wtf" está bien explicada a través de los comentarios.
Los comentarios se utilizan con frecuencia para capturar el contexto mucho más allá de lo que cualquier pieza de código "auto-documentada" podría jamás.
Los desarrolladores senior mantienen la complejidad ciclomática y cognitiva baja valorando el código limpio, legible y mantenible. El senior sabe que el código será entregado a otros, y por eso requiere una documentación excelente y equilibrada.
Además, se analiza el esfuerzo de las pruebas para cada módulo, clase o método.
Conclusión
Qué los seniors, o los grandes desarrolladores de nivel medio, muestren el código, las prácticas, los enfoques, los valores, etc. es una gran manera de que los juniors aprendan.
La programación en parejas también es una oportunidad de aprendizaje increíble. El mero hecho de ver cómo un senior navega, explica, soluciona problemas y depura es inmensamente valioso.
Recuerdo que algunos de los mejores momentos viendo tutoriales era cuando el instructor se equivocaba en algo y realmente mostraba el proceso de depuración y la solución del error, en lugar de eliminar esa parte en la post-producción.
Atención si a ti al igual que a mi te ha surgido la duda de ¿Qué es un Mid senior? Te dejo el siguiente video donde podrás conocer opiniones.