¿Qué conocimiento debo tener para ser llamado desarrollador senior de back-end?

¡Gracias por la solicitud!

Desarrollador junior: puede implementar lo que se necesita con un poco de orientación, supervisión e investigación.

Senior: puede implementar lo que se necesita con poca o ninguna orientación o supervisión, pero tal vez un poco de investigación. Puede proporcionar orientación y supervisión a los desarrolladores de Jr. Puedes implementar pruebas. Puede sugerir mejoras.

Arquitecto: usted, ya sea reuniéndose con el cliente o leyendo las especificaciones, puede determinar las necesidades y las tecnologías que satisfarán las necesidades. Puede coordinar con los desarrolladores de manera efectiva, puede evaluar las pruebas para detectar valores atípicos faltantes. Usted comprende lo que los clientes necesitan y cómo maximizar las ganancias de su empresa para satisfacer las necesidades del cliente.

Ingeniero: puede hacer lo anterior, evaluar el funcionamiento de todo o parte. Puede rediseñar (quizás debido a la migración del sistema) un sistema deficiente o subóptimo de modo que el tiempo de inactividad se minimice o se elimine durante la transición. Puede implicar, dirigir y supervisar la operación. Puede debatir clara y sucintamente en términos simples el funcionamiento del sistema y la forma en que una cantidad de contrafactuales mejoraría o degradaría la operación tanto para el cliente como para los miembros de su empresa.

Algunos agrupan los dos últimos juntos.

¿En que compañía?

Esta cosa senior / junior no es global y absoluta. Es solo una forma de pagar a algunos desarrolladores más que a otros, presumiblemente porque conocen mejor el producto y el código, o porque son mejores programadores en general.

Lo que es senior en una empresa puede ser junior en otra, y viceversa.

Pero, si tengo que responder realmente la pregunta … ¿debería saber cómo anunciarse, supongo?

Mientras que senior generalmente solo significa ‘programador que se queda solo para seguir adelante’, la verdadera medida es la experiencia

A medida que trabajas como junior, terminas encontrando problemas extraños que no te han enseñado a resolver directamente. Aprende a modificar el código existente, incluso si es de baja calidad y tiene un estilo que no le gusta. Aprendes enfoques que no funcionan.

El rol principal se trata de saltar a una situación desconocida y usar tu ingenio para hacer un buen trabajo. Cuanta más experiencia tenga “fuera de la caja”, más fácil será.

De lo contrario, es el mismo conocimiento básico que aprendió en su tercer año. Cómo diseñar, codificar, probar, construir e implementar una aplicación escalable que utiliza datos almacenados.

Debes tener una comprensión firme de

  1. Algoritmos
  2. Patrones de diseño
  3. Varios marcos
  4. Habilidades para resolver problemas
  5. Habilidades de comunicación

Todo lo anterior se obtiene con experiencia y generalmente algo de autoestudio.