No voy a estar de acuerdo con tu amigo. No aprendas una pila. En cambio, desarrolle el dominio de un idioma y trabaje para desarrollar una comprensión de los protocolos y sistemas básicos involucrados en su campo. Las pilas van y vienen, cambian rápidamente, y cuando cambias de trabajo durante tu carrera, casi siempre tendrás que cambiar las pilas con las que estás trabajando, a veces incluso dentro de la misma empresa.
Invertir su tiempo en aprender una pila le permite conocer un pequeño subconjunto de cómo se hacen las cosas. Invertir su tiempo en aprender cómo funcionan las computadoras no es tan fácil de aplicar directamente, pero se puede extrapolar hacia una comprensión de cualquier cosa que encuentre en su carrera y proporciona una base sólida que acelerará rápidamente su curva de aprendizaje para cada pila que pueda encontrar.
Si eres completamente inflexible para aprender una pila, te sugiero que primero estudies los patrones de diseño de la arquitectura de microservicios. http://microservices.io/ es un recurso bastante bueno para empezar, aunque no profundiza demasiado en los por qué y para qué. Luego me quedaría con los clásicos, lo que significa una base de datos PostgreSQL o MySQL con una API Flask con un front-end basado en Javascript. Si desea ingresar a marcos más pesados, la opción obvia ya que ya ha comenzado con Python sería Django, aunque creo que se perjudicaría si invirtiera mucho en aprender a usar un ORM sin comprender primero SQL básico .
- ¿Debo solicitar una escuela superior y comenzar el próximo año como estudiante de primer año o asistir a una universidad con admisiones continuas para poder comenzar este otoño?
- ¿Qué debe hacer un estudiante de primer año de ciencias de la computación durante 2 meses de vacaciones después del segundo semestre?
- ¿Qué debo hacer para hacer carrera en inteligencia artificial?
- Estudié física en ingeniería en dtu.¿Puedo seguir aprendiendo codificación y conseguir un trabajo en Google o Facebook?
- ¿Cuáles son los mejores institutos en India para el diseño de juegos?
Dado que dices que planeas ser un chico de back-end, definitivamente querrás repasar tus habilidades de operaciones también. Esto significa tomarse el tiempo para comprender REST, HTTP y HTTP / 2. También significa aprender el entorno y las herramientas en las que confiará para solucionar problemas de su aplicación, así que elija las secuencias de comandos BASH, aprenda git, tcpdump, cURL, netstat, ps, top, sar / systat, grep, awk, lsof y strace . Elija un sistema de gestión de configuración, apréndalo y úselo. Ansible es una buena opción si está trabajando en un entorno pequeño, aunque hay muchos por ahí y cada uno tiene sus propias compensaciones. Comprenda los conceptos básicos de los protocolos de autenticación y cómo funcionan, lea en LDAP, Kerberos y OAUTH. Comience a pensar en la seguridad todo el tiempo y desarrolle buenos hábitos con respecto tanto a su seguridad operativa personal como a la forma en que construye e implementa sus servidores de aplicaciones. Los buenos hábitos comienzan en casa. Aprenda los conceptos básicos de virtualización y contenedorización y cuáles son las compensaciones que conlleva. Comprender la gestión básica de procesos, archivos y memoria de Linux. Aprenda las configuraciones básicas de balanceador de carga y firewall, aprenda HA-Proxy, nginx, IPtables, etc. Aprenda cómo fortalecer un servidor Linux.
Básicamente, considere que ser un tipo de back-end significa que su “pila” es todo lo que no se ejecuta en el navegador web de los usuarios finales. Lo que significa la API y todo lo que hay entre él y el usuario final, así como todo lo que hay debajo. Los sistemas a menudo no se comportan como se espera, y ser capaz de determinar al menos en qué parte del sistema reside un problema es una habilidad absolutamente esencial como desarrollador de back-end. Es muy probable que trabajes con un equipo de operaciones que esté más especializado en el lado de los sistemas de la ecuación, pero ganarás mucho respeto en tu carrera al no tirar cosas por la borda. Hay una gran diferencia entre escribir un informe de problema como “X no funciona y no es mi código” y en su lugar poder decir “Todos los servidores de aplicaciones responden correctamente cuando se curvan directamente, pero la API da una respuesta no válida cuando se enrolla a través del VIP “No veo nada obviamente malo en la configuración de LB”
Hay muchas partes y piezas móviles involucradas en la creación de aplicaciones web, especialmente cuando intenta escalar. La mayor parte del trabajo pesado y el trabajo duro se realiza en el lado posterior de las cosas en grandes aplicaciones, por lo que le recomiendo que se suba al plato. Hay mucho para que aprendas, y creo que el conocimiento general es mejor que el conocimiento específico de la pila, porque si entiendes las cosas en el sentido general y conoces tus herramientas de solución de problemas, puedes resolver casi cualquier cosa específica de la pila con el tiempo suficiente .