Esto variará, pero así es como lo veo en un lugar lo suficientemente grande como para tener distinciones entre los tipos de programadores.
Yo diría que el nivel de entrada y Junior son lo mismo. Acaban de salir de la escuela y tienen menos de dos años de experiencia laboral. Se les asignan las tareas menos complejas y se deben supervisar con bastante atención. Generalmente saben alrededor del 10% de lo que creen saber. Por lo general, no han pasado por todo el ciclo de desarrollo y, a menudo, toman decisiones muy ingenuas si se les da la oportunidad de elegir. Lamentablemente, a muchos de ellos no les importa cuál es el requisito, quieren construir las cosas a su manera. A menudo tienen malas habilidades de depuración.
El nivel intermedio es donde caen muchos programadores. Tienen más de dos años de experiencia y generalmente menos de diez, aunque algunos pueden permanecer en este nivel durante toda su carrera. Pueden producir código de trabajo con menos supervisión siempre que estén asignados a tareas relativamente rutinarias. En general, no tienen la tarea de un diseño de alto nivel o tareas muy complicadas que requieren un nivel de conocimiento profundo. Sin embargo, se les puede asignar el diseño de una parte de la aplicación, especialmente porque están en la zona para convertirse en desarrolladores senior. Son buenos en tareas de mantenimiento o tareas en las que pueden enfocarse solo en su pieza del rompecabezas, pero generalmente no se espera que consideren la aplicación como un todo a menos que trabajen con desarrolladores senior o estén preparados para ascender a senior. Por lo general, pueden hacer un trabajo decente de solución de problemas y depuración, pero tienen que esforzarse mucho para obtener los difíciles. Todavía no tienen suficiente experiencia para ver los patrones en los problemas que los señalan al lugar probable donde están ocurriendo. Pero están adquiriendo esas habilidades y rara vez necesitan pedir ayuda para la depuración. Probablemente han pasado por todo el ciclo de desarrollo al menos una vez y han visto los resultados de los problemas de diseño y están aprendiendo cómo evitarlos en el futuro. Por lo general, tienden a ser más propensos a tomar un requisito al pie de la letra y no retrasarlo cuando tiene problemas obvios o brechas. Han aprendido lo suficiente como para saber lo que no saben y están comenzando a obtener ese conocimiento. Son los caballos de batalla del mundo de la programación,
Nadie que sea de nivel superior incluso necesita hacer esta pregunta. Son expertos en sus conjuntos tecnológicos elegidos. Se les asignan tareas difíciles (las que nadie sabe cómo resolver) y a menudo obtienen responsabilidades de diseño. A menudo trabajan de forma independiente porque tienen un historial comprobado de entrega de productos. Se espera que sean mentores de desarrolladores junior e intermedios. A menudo son increíbles solucionadores de problemas. Se han encontrado con esos mismos problemas antes y tienen una muy buena idea de dónde buscar primero. Las personas mayores a menudo también son mentores fuera del lugar de trabajo. Generalmente tienen al menos diez años de experiencia y casi siempre han estado en al menos una marcha de la muerte y saben exactamente por qué hay que evitar algunas cosas. Saben cómo entregar un producto que funcione y cumplir con una fecha límite. Saben qué esquinas se pueden cortar y qué esquinas nunca se deben cortar. Conocen al menos uno y, a menudo, varios idiomas a nivel de expertos. Han visto muchas "nuevas tecnologías populares" llegar al lugar de trabajo y desaparecer, por lo que tienden a ser un poco más conservadores al subirse al carro para la próxima nueva herramienta de desarrollo emocionante (pero no completamente resistentes al cambio, esas serían las desarrolladores intermedios mayores que nunca dan el salto a Senior). Entienden que su trabajo es entregar software que funcione y haga lo que los usuarios desean, no jugar con herramientas divertidas. A menudo son más exigentes con respecto a dónde trabajarán porque pueden estar y porque han visto de primera mano lo malos que pueden ser algunos lugares. Buscan los lugares que tienen las tareas más interesantes para hacer. A menudo saben más sobre los productos de su compañía que cualquier otra persona, incluso si han estado allí solo unos meses. Saben que necesitan más que conocimientos de programación y también son buenos para obtener conocimiento sobre el dominio comercial que admiten. A menudo son conscientes de los problemas que los juniors nunca consideran y los intermedios a menudo no piensan, como asuntos regulatorios y legales en el dominio comercial que admiten. Pueden y harán retroceder un requisito porque saben cuáles serán los problemas y pueden explicar lo mismo a los legos.
Nivel de entrada: debe darles instrucciones explícitas, verificar todo lo que hacen, poca o ninguna responsabilidad de diseño, ninguna responsabilidad de análisis
Junior: instrucciones menos explícitas, menos verificación, algunas responsabilidades menores de diseño y análisis; ayuda a las personas de nivel de entrada a encontrar el compilador y usar el repositorio
Senior: se espera que la responsabilidad principal de diseño y análisis corrija los descuidos por su cuenta, poca / ninguna verificación, poca / ninguna instrucción; ayuda a las personas de nivel junior a aprender / mejorar las habilidades de análisis y diseño
fuente
Realmente, creo que todo se reduce a cuánto tiempo has estado en el trabajo. Si tienes 10 años de experiencia, eres un desarrollador senior, si eres un graduado, entonces probablemente estés en el nivel de entrada. He visto muchos desarrolladores 'senior' que apenas podían codificar y realmente no sabían lo que estaban haciendo, y muchos desarrolladores junior que eran fantásticos.
fuente
Creo que los espacios de artesanos de la vieja escuela de aprendiz, oficial y maestro encajan bien en estos espacios para principiantes, junior (o simplemente sin prefijo) y senior.
A un nivel de entrada se le asignan tareas relativamente simples que no tienen consecuencias profundas y su trabajo es verificado por un junior o senior. Con el tiempo adquieren más responsabilidad y se les asignan tareas más complejas, aprendiendo las cuerdas en el camino.
En un nivel junior (o simplemente la eliminación de "nivel de entrada" / "junior" del título / descripción) ha completado su aprendizaje y ha cubierto las principales áreas de desarrollo de su empresa, habiéndose sumergido en cada área importante para que esté familiarizado con cada uno de ellos. Ahora ayuda a proporcionar orientación y aportes para el aprendiz equivalente, pero su trabajo aún es revisado por el maestro / senior, aunque quizás no tanto como cuando era un junior.
Con el tiempo y la entrega de proyectos exitosos, eventualmente se convierte en senior. En un nivel superior, ha dominado todo lo que está cubierto en su área, cubriendo todo el proceso de desarrollo y todas las herramientas y tecnologías involucradas. Usted está facultado para tomar decisiones técnicas significativas y se espera que brinde información a la administración sobre el proceso de desarrollo de software.
Entonces, dadas esas pautas, debería poder mirar a una persona o una posición y determinar en cuál de los tres contenedores aterrizan.
fuente
Se reducirá a las expectativas de la compañía del programador.
Si soy la empresa contratante y contrato a un programador de nivel de entrada, sé que esa persona no sabe casi nada y vamos a asumir que necesita aprender todo. Si contrato a una persona de nivel Senior, en teoría, serán autosuficientes, desde un punto de vista técnico.
fuente
Esto depende estrictamente de la empresa. Pero las palabras son bastante obvias: el nivel de entrada es alguien que recién ingresa al campo, junior es alguien que está más allá del nivel de entrada y conoce algunas tecnologías de idiomas. Por último, son los que están más a cargo del proyecto y se sientan en un nivel superior. Por lo general, pueden delegar tanto como codifican.
fuente
Como la mayoría ha dicho, varía de una compañía a otra y de un trabajo a otro.
Por ejemplo, una vez trabajé en una empresa que consideraba a cualquier persona que trabajó allí durante más de 5 años un "ingeniero de software sénior". En el otro extremo, otro lugar donde trabajé tenía definiciones muy estrictas (y escalas salariales asociadas).
Algunos lugares pueden considerar que "nivel de entrada" y "junior" significan lo mismo.
Puede variar en función de años de experiencia, conocimiento general, conocimiento específico (es decir, conocer las características de un determinado idioma), experiencia en gestión y / o liderazgo, todas sus combinaciones, y ciertamente mucho más.
fuente
Voy a ir con la respuesta realmente simple aquí: los desarrolladores senior (en general) son personas que pueden ver el bosque por los árboles. Piensan más allá del problema inmediato frente a sus caras y entienden qué cambios arquitectónicos podrían o deberían ocurrir como resultado de solucionar el problema que enfrentan.
La mayoría de las compañías de software que he visto tienen a las personas de nivel básico haciendo la codificación diaria mientras que los desarrolladores senior supervisan lo que están haciendo las nuevas personas y abordan los problemas realmente feos y espinosos.
Obviamente, esta es solo mi opinión, y no una regla estricta. YMMV.
fuente
En pocas palabras y a partir de observaciones personales que se encuentran en los sitios de publicación de empleos y solo en relación con los niveles de experiencia.
Entrada = Tu nuevo probablemente tu primer trabajo.
Junior = Su buena, pero no se supone que es el mejor, también por lo general tienen menos de 5 años y más de 2 años de experiencia.
Senior = Se supone que eres el mejor y tienes más de 5 años de experiencia.
fuente