Si estás buscando trabajo, seguro que viste un aviso para un puesto semi senior y te preguntaste si podías aplicar o si todavía no tenías lo necesario. Voy a tratar de despejar tus dudas y contarte cuáles son las diferencias entre un programador junior, semi senior y senior.
No hay una ley o un principio universal que permita hacer la distinción. Además, las condiciones cambian de una empresa a otra. Pero existen algunos factores que les permiten a los reclutadores calificar a los candidatos y definir si uno es un programador junior o si es senior. Veamos cuáles son esos factores.
1. Experiencia como programador
En las aplicaciones sencillas de LinkedIn lo único que te preguntan es la cantidad de años que tienes de experiencia en la tecnología que requiere el puesto. Así que sin duda uno de los factores más determinantes para conocer las diferencias entre un programador junior, semi senior y senior es la cantidad de años que has trabajado en puestos similares al que estás aplicando.
La mayoría de los expertos considera que hasta los 2 años trabajando de programador uno es junior. Sin embargo, no es raro encontrar avisos en los que piden juniors con 3 años de experiencia. El siguiente escalón, el de los semi senior va hasta los 10 años de experiencia y a partir de allí se considera que se trata de un programador senior.
Ten en cuenta que nada es tan taxativo ni está tan claro. Al no ser el único factor determinante, estos números pueden variar de un programador a otro.
Si recién comienzas en el mundo de la programación, tal vez te interese este artículo para saber cuánto se demora en aprender a programar.
2. Conocimientos técnicos
Hablamos de herramientas, lenguajes de programación, frameworks y librerías manejadas, además de la capacidad para encontrar errores y plantear soluciones. El abanico de herramientas conocidas y usadas es parte de las diferencias entre un programador junior, semi senior y senior.
Los programadores juniors conocen pocas herramientas y lenguajes. Hicieron cursos o un bootcamp en el que se especializaron en un lenguaje y lo han estado perfeccionando desde entonces. En cambio, un programador senior ha tenido tiempo de trabajar con distintos lenguajes y equipos en los que había personas con destinos perfiles, por lo que aprendió para qué sirven estas herramientas, incluso cuando él no haya programado con ellas.
El conocimiento técnico también incluye saber cómo proteger el código e implantar capaz de seguridad al software. El conocimiento extra que tiene un programador senior hace que, ante la aparición de un nuevo proyecto o dificultad, pueda identificar cuál es el lenguaje más apropiado o que pueda crear una estrategia más eficiente para encarar el software.
Esto no significa que el junior haga mal su trabajo, solo que todavía no tuvo la experiencia suficiente para conocer más lenguajes e identificar cuál es el mejor para cada caso, por lo que va a usar los que conoce. Esto las empresas lo saben y por eso cuando buscan un candidato toman en cuenta el conocimiento técnico que debe tener. Hay que entender que la capacidad técnica se logra solo con la posibilidad de hacer una y otra vez la misma tarea.
3. Capacidad de planificación y organización
Un programador senior tendrá la capacidad de planificar cómo se va a trabajar sobre el proyecto antes de que este empiece. Es decir, establecerá los objetivos, las metas a corto plazo, las entregas parciales que se deben hacer al cliente, entre otros. También sabrá cómo distribuir las tareas entre los miembros de su equipo y hacerlos trabajar de forma coordinada.
Además, a la hora de pensar un software no solo tienen en cuenta cómo debe ser el código, sino que tienen en cuenta qué tareas se pueden automatizar y cómo se debe realizar el mantenimiento en el largo plazo. En cambio, un programador junior pensará en soluciones inmediatas. Buscará la forma de cumplir con el objetivo que le pidió el jefe o el cliente, sin tener en cuenta las demás implicancias del proyecto.
4. Calidad del código
La forma de escribir el código es una de las diferencias entre un programador junior, semi senior y senior. Cuando aprendiste a escribir en primer grado, es probable que tu letra haya sido desprolija, a tus oraciones le faltaban palabras y tenías errores de ortografía. Sin embargo, la maestra podía entender lo que querías decir. Ese sería el código de un junior: aunque no está perfecto el software funciona.
La diferencia entre el código de un junior y un senior es que el código del senior lo puede entender cualquier programador, y no solo las computadoras. Su forma de escribir hace que lo que hizo tenga sentido para otros programadores que tengan que modificar el código en el futuro. Además, si un código está limpio y es entendible, se le podrán agregar nuevas funciones y será reutilizable en otras partes del proyecto.
Esta capacidad se adquiere junto con la experiencia. Para poder escribir así tienes que haber observado mucho código escrito por gente más avanzada, tienes que haber escrito y corregido muchos códigos, y tienes que haber puesto a prueba tu trabajo ante otros programadores, para saber si lo que hiciste es entendible o no y pueden trabajar con ello.
5. Nivel de supervisión necesaria
Un programador senior tiene la capacidad de supervisar un equipo de programadores. Esto quiere decir que puede organizarlo y que tendrá la capacidad de responder las dudas que tengan quienes están bajo su supervisión. También que si no conoce la solución por experiencia propia, sabrá cómo encontrar la respuesta y cómo transmitirla. Por eso un senior podrá llevar adelante un software por sí mismo y tendrá la capacidad de supervisarse en cuanto al manejo de tiempos y recursos.
En cambio, no se espera esa capacidad de un programador junior. No se le puede dar la responsabilidad de ser el que debe responder las preguntas técnicas del resto del grupo, ni tendrá la capacidad para organizar los tiempos del proyecto para cumplir con los objetivos del cliente. Es decir, que los juniors necesitan supervisión para cumplir con las metas y necesitan apoyo para resolver las dudas técnicas y corregir los errores.
El programador semi senior podrá dirigir pequeños equipos y tendrá la capacidad para manejar los tiempos, pero todavía carecerá de ciertos conocimientos técnicos que podrían ser útiles para facilitarle el trabajo al resto de los miembros.
6. Área técnica
El contexto y las especificaciones técnicas que tenga un software pueden hacer que alguien que era considerado un senior pase a sentirse un junior.
Un experto en HTML puede que no tenga conocimientos de Java o de C++. Entonces ese programador senior si quiere buscar trabajo en un puesto donde esos lenguajes son un requisito, podría aplicar como junior, ya que no tiene la experiencia ni los conocimientos necesarios para trabajar como senior.
7. Tareas realizadas
Cuando se desarrolla un proyecto grande las tareas que son asignadas son unas de las diferencias entre un programador junior, semi senior y senior.
Un junior realizará tareas específicas, de bajo impacto y sin intervenir en la arquitectura del software. Un semi senior probablemente también tenga tareas específicas, solo que podrá realizarlas con menor supervisión y conocerá las soluciones a la mayoría de los problemas que encuentre.
Mientras que un senior podrá ver el panorama más amplio de un proyecto. Desde esa visión entenderá cómo dividir las funciones de los colaboradores y cuáles serán las herramientas más adecuadas para cada parte del software. También tienen la capacidad de pensar en todo el ciclo del proyecto y sabrán cómo desarrollarlo de principio a fin.
8. Pedir ayuda
Tal vez, hasta acá haya dado la impresión de que un senior no necesita la ayuda de nadie, pero no es así ya que la mayoría de los softwares se realizan en equipo y por lo tanto todos se ayudan mutuamente.
Pero la diferencia entre un programador junior y uno senior es que el senior sabe qué necesita y sabe qué preguntar. Cuando nos enfrentamos a un problema nuevo tenemos que pensar cómo solucionarlo. Muchas veces eso quiere decir saber qué preguntar en Google o en Stack Overflow, y en el caso de un equipo, saber qué preguntarle al compañero y a qué compañero.
Un senior sabe cuál es exactamente el problema y qué tiene que preguntar. Mientras que el junior puede que pierda tiempo tratando de entender qué necesita y averiguando dónde puede estar la respuesta correcta.
Del junior al semi senior, y finalmente al senior
Aunque la cantidad de años programando es importante, no es el único factor clave. El conocimiento técnico para escribir un código limpio y entendible para otros colegas te dará una ventaja. También hay que considerar la capacidad para hacer las preguntas correctas. Además, es clave tener capacidad para organizar equipos, saber ayudar a los demás y poder trabajar sin supervisión.
Estos son los factores que debes desarrollar para poder pasar de ser un programador junior a un semi senior y finalmente convertirte en un senior.
Si estás buscando trabajo como programador, te comparto algunos consejos que debes tener en cuenta en tus entrevistas.