El Frontend puede llegar a complicarse tanto como el backend, y manejar mucha lógica también. Los frameworks modernos (por ejemplo, React y VueJS por nombrar algunos) manejan un "estado" que se actualiza del lado del cliente, y lo que permite esto es hacer sitios mucho más ligeros y que consumen muy pocos recursos (Single Page Applications o SPA), solicitando solo la información necesaria al servidor, por consiguiente optimizan el tiempo de carga y la velocidad en general. Puedes incluso trabajar en base a una plantilla que te haga el 70% del trabajo y adaptar el diseño al requerimiento de un cliente. Ahora, la cosa es cuando te piden un desarrollo completamente personalizado, allí sí necesitas tener mucha creatividad para hacer un sitio web desde 0, pero pues en líneas generales depende del tipo de trabajo que requieras.
Ahora, si te enfocas en Backend puedes enfocarte 100% en la lógica de programación, porque tienes que resolver otro tipo de problemas:
- Creación, conexión a una base de datos y gestión de la información (Insertar, Editar, Borrar y Obtener - CRUD).
- Conexión FTP para subida de archivos a un servidor.
- Envío de correos electrónicos.
- Manejo de formularios, carga de imágenes, archivos y documentos.
- Manejo de las distintas peticiones (GET, POST, PUT, DELETE, PATCH).
- Programar un cron que ejecute una tarea cada tiempo determinado en un servidor.
- Seguridad, validaciones del lado del servidor, prevenir inyecciones de código malicioso a tu base de datos.
- Creación de APIs, Websockets y demás.
- Integración de librerías o sitios externos, pasarelas de pago.
Un ejercicio muy práctico que te ayudará a dominar todos los principios básicos de cada uno de estos dos mundos es crear un CRUD.
Ver el archivo adjunto 669384
Un sistema que te permita crear, leer, actualizar y borrar elementos (Create, Read, Update, Delete - CRUD). Si alcanzas este conocimiento, tendrás lo básico para defenderte y de aquí hacer cosas más complicadas, sistemas más complejos, elegir tu área de especialización (Frontend o Backend).
Si te inclinas más por Backend, aprende primero un lenguaje puro (por ejemplo, PHP) y haz un CRUD en él, y luego que lo domines y sepas lo esencial (esto es, al menos saber trabajar con Programación Orientada a Objetos, creación de clases, herencia), solo en ese punto intenta dominar un Framework (CodeIgniter es muy sencillo para PHP pero menos demandado y menos competido, Laravel es algo más complicado pero más demandado y competido, Symfony es complejo pero permite hacer sistemas muy robustos). Te doy el ejemplo con PHP, porque a pesar de que muchos digan que es obsoleto (no lo es, no les creas 😆) al menos
un 70% de los sitios web en el mundo lo utilizan como lenguaje de backend.