
Los años de experiencia como programador no son el único indicador para clasificar a un programador junior, de nivel medio o avanzado. Esto no significa que el programador senior tenga que ser un experto en todas las áreas de la programación, pero es bastante posible que sea mucho más hábil que un principiante o un programador mid-level.
¿Cuáles son esas habilidades que separan cada categoría de programadores? Averigüémoslo 👇
Habilidades que diferencian a los developers
Su forma de escribir código
Si piensas que programar código es solo comunicarte de forma que el ordenador te entienda, cometes un error. La verdadera belleza de programar consiste en que te puedas comunicar con las personas e interactuar con los ordenadores, porque al final todo el código se va a compilar con ceros y unos.
El código tiene que tener sentido para otros programadores que trabajarán con él en el futuro. Un programador avanzado escribirá su código de manera que alguien que no lo escribió pueda entenderlo y utilizarlo lo más rápido posible. De esta forma podrá añadir otras funciones o corregir errores sin perder demasiado tiempo.
Esta es la gran diferencia entre los principiantes y los expertos. El programador de nivel medio está en una zona gris en este aspecto: codifica de forma funcional pero aún no es capaz de que otro programador lo entienda sin ayuda. No obstante, va camino de convertirse en un experto, creando cada vez un resultado más limpio y explicativo.
Escribir código como un experto es algo que solo se alcanza con la experiencia, pues un programador de nivel medio debe haber pasado al menos una vez por el desarrollo de un software a ciclo completo. Por ello, no sólo ha tenido que revisar el código de programadores avanzados para utilizarlo después, sino que también ha tenido que hacer legible su propio código para que programadores juniors lo usen.
Por ello, es muy probable que hayan cometido bastantes errores, pero también que hayan aprendido a picar código de manera apropiada.
Sus conocimientos de programación
Como es fácil deducir, un programador avanzado tiene más conocimiento acumulado que uno de nivel medio o un junior. Por ello, el principiante debe estudiar a profundidad lo referente a diseño de patrones, arquitectura, pruebas automatizadas, funcionamiento, seguridad y un largo etcétera para reducir la brecha con respecto al programador de mid-level y senior.
Cabe señalar que, aunque es importante saber cómo se deben hacer las cosas en todo el ciclo de desarrollo de un software, esto no te convierte en un programador avanzado. El know-how es un factor, pero el hecho de haberlo hecho una y otra vez es lo que te convierte en un experto.
¿Cómo reconocer a primera vista un programador junior?
Los perfiles más juniors son inexpertos, por lo general recién graduados que comienzan en su primer curro a tiempo completo. Por lo general están enfocados en que el código simplemente funcione. Mientras lo haga, para ellos no hay ninguna diferencia entre software funcional y buen software.
Programar de forma directa y comprensible es difícil, y es algo que los que empiezan no hacen. Por regla general sus códigos son complicados y están llenos de abstracciones complejas.
Esta es su forma de demostrar a sus mayores qué buenos son programando, cuando en realidad están reflejando todo lo contrario. Los programadores más inexpertos se centran en el lado del código que va hacia el ordenador en lugar de facilitar la comunicación con la persona que lo revisa, y esto está mal.
¿Cómo identificar al programador senior?
Cuando se revisa el código de un programador senior sorprende por su simplicidad. Incluso a veces te preguntas si eso es todo y si no han escondido para del código, porque es tan simple que parece que tiene trampa. En pocas palabras, sigue a rajatabla el principio KISS: Keep it simple, stupid!
La diferencia fundamental con el principiante es la visión que el senior tiene cuando va a programar. Él siempre pensará su desarrollo en términos que lo hagan escalable y de fácil mantenimiento; se enfoca más en las personas que trabajarán después con su código que en la programación en sí misma. Puede que su programación parezca simplista, pero esa es la belleza de un software bien hecho.
Otros factores que definen el nivel de un developer
Además de sus habilidades a la hora de escribir el código de un programa, hay otros elementos que permiten clasificar a los programadores.
Por lo general, los programadores novatos se encargan de tareas sencillas y de bajo impacto sobre el avance general de los proyectos, y no hacen ningún diseño de la arquitectura del software.
Tampoco los programadores de nivel medio diseñan las soluciones, sólo realizan tareas específicas. La diferencia está en que éstos últimos no requieren tanta supervisión siempre y cuando las tareas que se les asignan sean relativamente rutinarias.
Los programadores más curtidos están preparados para desarrollar un software de principio a fin de forma independiente. Esto no significa que no tengan que consultar sobre algunos aspectos o pedir ayuda a otros: desarrollar un proyecto implica tener dudas sobre él todos los días y esto es una realidad que nunca va a cambiar.
Pero la diferencia radica en que el programador senior sabe hacer las preguntas correctas y necesarias y cómo lidiar con las soluciones. Los programadores mid-level pueden hacer las preguntas correctas sobre tareas de rutina, pero necesitan ayuda en tareas más complejas.
Así, el programador experimentado nunca está totalmente perdido sobre el camino que debe transitar y sabe cómo implementar cada respuesta a sus preguntas. Puede y debe consultar con otros desarrolladores que tengan más experiencia en un área específica, pero va directamente a la solución sin perder el tiempo en explicaciones innecesarias porque ya posee conocimientos lo suficientemente profundos.
En contraposición, no debe esperarse que un programador junior haga las preguntas adecuadas para salir de un atolladero mientras programa. Como no se han enfrentado a los problemas objetivos y no tienen experiencia en cuanto al manejo del código, es necesario que los más veteranos les guíen y les empujen en la dirección correcta.
Pasando al nivel superior
Entonces, ¿qué pasos son necesarios para progresar en el mundo de la programación? Analicemos 👇
De junior a mid-level developer
Los que empiezan no tienen experiencia en programación, así que lo mínimo que pueden hacer es pasar un par de veces por todo el ciclo de desarrollo. Durante este tránsito cometerán errores y caerán en un sinnúmero de trampas, pero aprenderán también los trucos de cómo salir de los problemas gracias a sus mentores.
En cuanto a su forma de escribir el código, irán dejando atrás las complicaciones y las manías. Esto se logra revisando la forma de programar de los que más saben, que siempre piensan en los próximos que vendrán y deberán tocar el código. Poco a poco, con sentido común e imitando, irán adquiriendo el hábito de mantener las cosas sencillas.
También los perfiles junior deben aprender a identificar sus errores de programación, y entender mejor cómo funciona cada proceso dentro de la empresa. De igual forma deben adquirir conocimientos sobre temas como arquitectura, desempeño, seguridad y otros varios, para subir al siguiente nivel.
De programador de nivel medio a programador senior
Dar este salto ya es un poco más difícil. Muchos programadores mid-level se mantienen en esta categoría durante toda su vida laboral, pues los perfiles seniors «de verdad» sólo llegan a ese nivel a través de muchos errores a lo largo de su trayectoria, que les han enseñado qué esquinas pueden cortar de un proyecto y cuáles no.
Para llegar a un nivel TOP, el programador tiene que estar dispuesto a asumir tareas que nadie sabe cómo resolver e ir más allá. Además, tiene que ser capaz de transmitir su conocimiento a los developers más juniors, y actuar como red de seguridad para sacar de problemas a los más inexpertos sin que se afectar la buena marcha del proyecto.
Por último y no por ello menos importante, los programadores avanzados son gurús en sus especialidades y a menudo son consultados por otros especialistas que están a su mismo nivel. Esto requiere dominar todas las herramientas y aplicaciones que se usan dentro de la compañía para la cual trabajan, convirtiéndose en engranajes fundamentales en la actividad de su empresa.
Conclusiones
Los años de experiencia no tienen por qué reflejar el nivel de los programadores. Por supuesto, es válido afirmar que a medida que un programador trabaja más en sus habilidades y conocimientos alcanza mayor prestigio, pero los developers seniors se diferencian del resto en su forma de ver y escribir el código. Además conocen qué preguntas hacer y cómo reaccionar ante cada respuesta, cosa que sólo puede hacer un programador con mucha experiencia y que conozca al detalle cada herramienta que tiene a su disposición.
Para progresar como programador, es necesario enfocarse en crear código muy simple y adquirir experiencia desarrollando software. Ahora bien, para alcanzar el nivel máximo, se exige salir de la zona de confort, asumir responsabilidades y saber transmitir los conocimientos a los perfiles más inexpertos para que progresen.