Ahora es más fácil de lo que solía ser, ya que puede elegir Nodo como su entorno de back-end y llevar consigo gran parte de su experiencia de programación de Javascript, y tal vez incluso algunas de sus bibliotecas favoritas. Esto le ahorra la molestia de aprender un nuevo idioma antes de comenzar.
Dicho esto, incluso con Node, la programación de back-end es un mundo diferente al de frontend. Por un lado, harás poca o ninguna manipulación DOM en el backend. Por otro lado, necesitará repasar partes de Javascript que realmente no necesitaba saber antes, y en la biblioteca de nodos y el sistema de administración de paquetes (NPM). En particular, necesitará una comprensión mucho más sólida de los cierres, y estar preparado para manejar cadenas de devolución de llamada mucho más profundas de lo que normalmente tiene que usar en la interfaz. Si no tiene una comprensión sólida de cómo funcionan los cierres, ahora es el momento de aprender, y si no ha trabajado con las promesas antes de repasarlas también para salvarse de la condenación eterna en el infierno de devolución de llamadas.
En el backend, la mayoría de sus problemas de rendimiento van a girar en torno a la E / S de archivos y bases de datos (que afortunadamente Node está construida desde cero para funcionar realmente bien). Esto es opuesto a estar limitado por las capacidades desconocidas de las máquinas y navegadores de su visitante para realizar cambios en el DOM, Canvas, etc. De hecho, todas las molestias de lidiar con la compatibilidad del navegador y el rendimiento del usuario final básicamente desaparecen en el trabajo de back-end, aunque todavía tendrá que preocuparse por usar su ancho de banda de manera eficiente. En su lugar, es posible que deba lidiar con entornos de servidor muy diferentes si su código se publica para uso público. Para muchos desarrolladores de back-end no es tan preocupante, ya que escribimos código para uso interno en entornos conocidos.
- ¿Qué es un back-end?
- ¿Qué es el front end y el back end?
- Si eres un desarrollador web full stack, ¿eso significa que aprendes tanto front-end como back-end (ambas pilas)?
- Soy un desarrollador de Android que pasa a un rol de servidor de fondo. ¿Qué cosas debo aprender primero?
- ¿Por qué los desarrolladores de back-end hacen que los desarrolladores de front-end se sientan insignificantes?
Como desarrollador frontend, estás acostumbrado a que la mayoría de tus datos residan en la memoria, y aunque tienes mucha más memoria para trabajar en un entorno de servidor, tendrás que lidiar con la realidad de que la gran mayoría de los datos que está manipulando viven en una base de datos o en el sistema de archivos y se cargan, guardan y descargan a pedido. La forma en que trabaje con E / S en Nodo será algo similar a AJAX, por lo que no debería ser demasiado difícil de aprender.
Posiblemente, el mayor obstáculo para un desarrollador de frontend típico será que está escribiendo código que debe admitir múltiples usuarios simultáneos. Tendrá que lidiar con los problemas de autenticación y seguridad, y vale la pena hacerlo bien la primera vez. Un paso en falso en el lugar equivocado podría significar una vulnerabilidad que expone a su servidor, su empresa y todos los que usan su aplicación al abuso de recursos, responsabilidad legal y robo de identidad (o peor).
También tendrá que lidiar con muchos problemas relacionados con múltiples acciones casi simultáneas y potencialmente conflictivas. Hay más manejo de errores, comprobación de cordura y condiciones de carrera en juego (por ejemplo, ¿qué sucede cuando el usuario A y el usuario B actualizan simultáneamente el mismo contenido? ¿Qué sucede cuando el usuario A realiza un cambio que afecta los privilegios del usuario B para cambiar una pieza? de contenido mientras está en medio de editarlo?).
Entonces, lo que realmente se reduce a eso es que la transición de la programación es fácil, pero obtener una sólida comprensión del entorno y las limitaciones en las que está trabajando es una gran tarea que requiere estudio, tiempo y experiencia si desea hacerlo bien . Esperemos que no sea arrojado a tu regazo de una vez.
En cuanto a la última parte de su pregunta, no he hecho campos de arranque de código, así que no puedo hacer una recomendación. Honestamente, no pongo mucha acción en “aprender X en 24 horas / durante un fin de semana / en algún programa intenso de bootcamp”. Si afirman que pueden darle una base sólida sobre la cual construir, eso es razonable, pero si afirman que estará listo para hacer un trabajo profesional en la vida real después de que se haya terminado el escepticismo. Con su experiencia frontend, puede esperar comenzar en un nivel de desarrollo interno / junior en el backend y avanzar más rápido de lo que lo haría con cero conocimiento, pero probablemente no estará listo para cambiar instantáneamente de un nivel dado de habilidad frontend a un nivel equivalente en el backend.