Obviamente, depende del tipo de aplicación. Intento responder con esta amplia definición de un sistema de backend típico: ‘Un sistema que siempre está disponible; puede procesar toneladas de solicitudes y está diseñado para escalar bastante bien ‘.
Si quieres convertirte en un desarrollador de backend, primero debes entender que el concepto de tiempo es diferente aquí, algo así como el planeta Miller en la película interestelar.
- Microsegundos: Tus mejores amigos.
- Milisegundos: Tus amigos con los que aprendiste a aguantar.
- Segundos: no puedes soportarlos; Son tu dolor de cuello.
- Minutos: tus enemigos; Simplemente odias su presencia. No duermes y te vuelves nuclear hasta que los destruyas.
- Horas: felizmente tirarías tu código experimental. Tu código nunca vería la luz 🙁
Su objetivo principal como desarrollador de backend es asegurarse de que su aplicación pase menos tiempo en el backend para que los usuarios de la aplicación no estén muertos para cuando el backend envíe los resultados (Lo siento por mi no tan buena analogía interestelar de nuevo again
- ¿Cómo es trabajar para HubSpot como diseñador?
- ¿Cómo decide Uber en qué hora del día debería agregar más controladores? ¿Qué parámetros se utilizan para decidir? ¿Se basa en ceros, globos oculares, solicitudes o cualquier otra relación de parámetros?
- Estoy a punto de graduarme para una maestría y estoy confundido acerca de qué camino elegir entre Java y Big Data. No estoy seguro del futuro de las oportunidades en Big Data, entonces, ¿es bueno si aprendo marcos como Springs y sigo una carrera en eso?
- ¿Qué es el alcance en la ciencia forense?
- ¿Qué te hace buscar un nuevo trabajo?
Aquí hay algunas habilidades que puede necesitar:
- Comprensión profunda de los componentes internos del sistema operativo (preferiblemente Linux)
- Comprender la concurrencia y encontrar formas de (principalmente) evitarla o tratarla.
- Gestión de recursos y diferentes esquemas para manejar la saturación de recursos y fallas.
- Capacidad para simplificar problemas complejos (del mundo real) y crear modelos claros y lógicos.
- Comprenda por qué necesita agrupación de conexiones / agregación de red.
- Gestión de caché
- Diseño e implementación de una solución de tiempo de inactividad cero.
- Otra habilidad importante que necesita es poder evaluar el impacto de un error / problema rápidamente.
- La idea general sobre cómo funciona un compilador también puede ser útil.
- Alguna idea de cómo funcionan las copias de seguridad y la recuperación.
- Algunas técnicas de muestreo y una comprensión decente de las estadísticas.
- Olvidé la parte más importante: tienes que ser bueno en algunos scripts de shell (sh / Perl / Python). Sin ella, no puedes sobrevivir por mucho tiempo.
¡Te deseo buena suerte!