El desarrollo web abarca varias tecnologías. Para empezar tu carrera en el desarrollo web, lo mejor será enfocarte en una de las áreas: back-end ó front-end. Existen otras categorías como devops/sysadmin, ingeniero de seguridad, experto en base de datos y otras. En este post me enfocaré en las grandes áreas.

Back-end

El back-end representa la lógica de negocio de tu aplicación web. Es el conjunto de interacciones entre diferentes servicios: la base de datos, el sistema operativo, el sistema de archivos, un cache de datos, validaciones, y más.

En mi opinión, lo más complicado del back-end no será el lenguaje de programación, lo que será complicado será, tomar los requerimientos que te pide el cliente y traducirlos a la idea mental que te has hecho de cómo funcionará tu back-end. Esa traducción se verá reflejada en persistir datos, a una o varias bases de datos, y permitir que otros clientes consuman tu back-end.

Para enfocarte en el back-end, te recomiendo las siguientes áreas:

Escoge un lenguaje de programación que esté orientado a la programación web. Los lenguajes preferidos son: Java, C#, PHP, Ruby, Python, JavaScript. Hay más lenguajes, solo checa que exista buena documentación y oferta laboral.

Una vez que escojas un lenguaje, te recomiendo: que es HTTP y conocer cómo se monta un servidor HTTP, cómo subir archivos a tu nuevo servidor, cómo interactuar con una base de datos, las librerías más populares relacionadas con el desarrollo web.

Conocimientos de SQL. Tu trabajo como back-end en una aplicación web será entender las reglas de negocio, modelar y relacionar los datos, y probablemente guardarlos en un manejador de bases de datos: Postgres, MySQL o SQL Server.

Estructuras de datos y algoritmos. La lógica de negocio de tu aplicación puede que sea simplificada por utilizar las estructuras de datos correctos y/o los algoritmos correctos. Además las empresas suelen poner ejercicios de algoritmos y estructuras de datos en las entrevistas para calificar a un candidato.

Tener conocimiento de las bases de datos no relacionales(NoSQL). Estas varían de empresa a empresa. Te recomendaría estudiar aquellas específicas al trabajo que quieras aplicar. Lo que sí te recomiendo es conocer de Redis, por su versatilidad. Redis se usa como un caché de datos pero también como un manejador de tareas programadas.

Patrones de diseño. También depende de la empresa en la que quieras trabajar. Algunas empresas desayunan, comen y cenan patrones de diseño. Es bueno conocerlos pero no lo lleves al extremo. Arquitectura. Ser un ingeniero back-end involucra tomar decisiones que afectan el resto de la aplicación, desde cómo se monta el servidor, hasta cómo se consumen los datos en el front-end o aplicaciones móviles.

Infraestructura. Si la empresa en la que trabajas es pequeña, será tu trabajo como back-end además de crear la aplicación, montar el servidor y asegurarse que no se “caiga” la aplicación. Te recomiendo leer de los protocolos de DNS y SSH, así como el protocolo del manejador de base de datos que utilices.

Pruebas unitarias y pruebas de integración. Esto también del equipo en el que quieras trabajar. Algunos equipos tienen pruebas unitarias para todo nuevo código que se escribe. Otros equipos prefieren usar pruebas de integración y dejar las pruebas unitarias a un lado. Otros no hacen nada de pruebas. Lo mejor será que conozcas cómo realizar pruebas.

Control de versiones, ya sea git, svn, mercurial u otros. Un control de versiones permitirá guardar los cambios a tu código a través del tiempo.

Inglés. La mayoría de la documentación de lenguajes y frameworks está en inglés. No importa que tu comunicación diaria sea en español. Te ahorrarás tiempo aprendiendo las reglas básicas gramaticales y obteniendo un buen vocabulario del idioma.

Aún hay más temas que abarcan el back-end. Conforme aprendas de los temas presentados aquí, irás descubriendo nuevos temas que te ayudarán a montar una aplicación.

Front-end

El mundo de front-end es cambiante y eso es decir lo mínimo. En los últimos diez años el área de front-end ha sufrido grandes cambios. El front-end es el conjunto de archivos HTML, hojas de estilo y scripts de Javascript. Esa combinación le dará al browser un artefacto que puede presentar a tu usuario final. El front-end de tu aplicación puede ser: simple con solo html, css y unas líneas de JavaScript, o puede ser complicado y será mejor usar un framework, ya sea React, Angular, Ember u otros.

Para empezar con el front-end te recomiendo empezar a leer y estudiar los siguientes puntos:

HTML. Conocer los componentes más utilizados de html5. La idea de html, en los últimos años, es tener un documento semantico que permita a un desarrollador entender la estructura de tu html con solo verlo.

CSS. Html te permite estructurar tu documento, y CSS te permite plasmar el diseño de tu sitio web. Conocer CSS es indispensable para un developer que se quiere enfocar en el front-end. Fundamentos de diseño. Diseño responsivo, diseño de interacción de usuario, teoría de colores y accesibilidad. Estos son algunos elementos en los que podrás influir cuando trabajes como front-end developer.

JavaScript. Podrías tener un sitio web con puro HTML y CSS, pero JavaScript agrega interactividad a tu sitio. Abrir un pop-up, traer datos del back-end sin refrescar la página, hacer validaciones, y más las tendrás que hacer con Javascript en el browser. En la actualidad, una posición de front-end asume que conoces el lenguaje y además puedes desarrollar en algún framework.

jQuery. jQuery es una utilería de Javascript que se hizo famosa en los últimos 10 años. Dejando de lado si jQuery está muriendo o no, la mayoría de los proyectos ya avanzados tendrán jQuery como una dependencia.

Algún framework. La mayoría de las ofertas de trabajo ya requieren un framework para poder aplicar. Yo recomiendo aprender bien las bases de Javascript antes de aventarte a aprender de algún framework. Control de versiones. Igual que el back-end developer, un front-end debe de conocer los comandos básicos de algún manejador de versiones, los más populares son git, svn y mercurial.

Inglés. La mayoría de la documentación de frameworks, css, html y javascript esta en inglés. Mi recomendación es conocer las reglas básicas del idioma inglés y aprender un poco de la terminología relacionado con el front-end.

Conclusión

Espero que estos puntos te hayan dado una idea de por dónde puedes empezar. Cada punto, ya sea de front-end o back-end, te tomará tiempo en aprenderlo. Lo importante es aprender y practicar lo que has aprendido. Lo mejor de esta industria es que no necesitas un laboratorio gigante para practicar, solo tu computadora y la actitud para aprender.