¿El desarrollo del backend es difícil de aprender?

Asumiré que su pregunta es en realidad “¿será difícil para mí aprender el desarrollo del backend ?”. Ahora, ¿cómo define el desarrollo del backend ? ¿Es scripting? ¿Rastreando Internet? ¿Construyendo un sitio web? una API? Asumamos que son todas esas cosas, y probablemente más.

Esto trae a la mente algunos conceptos:

  • Bases de datos : MySQL, Postgres, Integridad, Concurrencia …
  • Servidores web : Apache, Ngnix …
  • Administración del servidor : Windows, Linux, Unix, OS X …
  • API – JSON, REST …
  • Autenticación : sesiones, cookies, tokens, claves, Oauth, SSO …
  • Seguridad : CSRF, XSS, MITM, inyección SQL …
  • Escalabilidad : almacenamiento en caché, asíncrono, equilibrio de carga, replicación …

No es una lista exhaustiva. Y, puedes ir bastante profundo en cada área. Dicen que se necesitan 10.000 horas de estudio para convertirse en un experto en cualquier cosa. Pero, no creo que estuvieras preguntando acerca de convertirte en un experto. Dada su experiencia, creo que subir de nivel al estado de novato no es tan difícil como podría pensar (donde novato> 0).

Ya conoces Obj-C, Swift, Java y Javascript. Esos son todos los idiomas que se pueden usar para construir servicios de back-end. Tres de esos idiomas son idiomas OOP. Las habilidades que ha aprendido sobre los principios de diseño de OOP también se aplicarán en el backend. Suponiendo que tiene algunas aplicaciones en su haber, probablemente haya construido algo que recuperó, analizó, manipuló y almacenó (con diversos grados de persistencia) de datos. Por lo tanto, sus habilidades de modelado de datos también lo ayudarán.

Necesitarás nuevas habilidades, pero no comenzarás desde cero con todo. La única forma de saber realmente lo difícil que será para ti es probarlo. Construye algo, rómpelo, arréglalo, aprende de él, repite.

LOTR La Comunidad del Anillo – Adiós Querido Bilbo

No…

…y si.

Al igual que el trabajo front-end, cualquiera puede lanzar una tabla HTML y llamarse a sí mismo desarrollador web, pero construir front-end sofisticados y confiables es un desafío infinito.

Entonces, con el desarrollo de back-end: cualquiera puede lanzar una base de datos SQL con algunas tablas y abrir su cliente a un sinfín de problemas, vulnerabilidades e interrupciones.

La diferencia es que si arruinas el front-end, la oportunidad de una verdadera horror, como exponer los números de tarjeta de crédito, las contraseñas y otra información de tus clientes es nula si el back-end está escrito correctamente. Además, los servicios de fondo deben tratar problemas de concurrencia que son órdenes de magnitud más interesantes que lo que sucede en el front end, así como diversas vulnerabilidades, consistencia, particionamiento y otras cosas divertidas.

Por lo tanto, es un nuevo conjunto de habilidades, algunas de las cuales pueden ser significativamente más desafiantes que cualquier cosa que vea en el front-end, si hace las cosas bien y se pone a trabajar en proyectos interesantes.

La respuesta realmente depende de la persona. Si tiene un buen conocimiento práctico de las secuencias de comandos, pasar a la programación puede ser una transición relativamente fluida. Mucho dependerá de la complejidad y / o alcance del backend.

Mucho realmente depende exactamente de cómo define personalmente el desarrollo del backend y de lo que piensa hacer con él. Las principales diferencias entre sus herramientas de desarrollo front-end y el desarrollo de software desde cero es que deberá asegurarse de incluir manualmente todos los recursos y clases. Si tiene la intención de integrarse con SQL u otro servidor de base de datos, también necesitará comprender la funcionalidad y la sintaxis para ello.

Como ejemplo, aprendí BASIC en la escuela media / secundaria. Un par de décadas después, comencé a construir páginas web desde cero (no era conveniente WYSIWYG o IDE visual), y descubrí que la sintaxis y la estructura de comandos para HTML era muy similar a BASIC, por lo que no me resultó demasiado difícil aprender HTML Estás proponiendo ir un poco más profundo y en la dirección opuesta.

Mi sugerencia es comenzar con un buen IDE visual WYSIWYG y estudiar el código generado. Este es un buen primer paso y le ayudará a familiarizarse con la estructura y la sintaxis. En general, no es tan difícil de aprender, de nuevo dependiendo de la persona.