Se espera que el campo del desarrollo web crezca más del 20 por ciento en los próximos 10 años y, sin duda, los desarrolladores web disfrutarán de un crecimiento constante en la demanda de sus servicios.
Sin embargo, si deseas una carrera en desarrollo web, es probable que te preguntes qué lenguajes de programación aprender: HTML, Python, Ruby on Rails, iOS, C+… la lista sigue y sigue.
En general, los lenguajes que terminas aprendiendo dependen de si deseas abordar el desarrollo web frontend vs backend vs full stack.
Para ayudarte a tomar una decisión, comenzaremos analizando cómo funcionan los sitios web modernos y cómo los diferentes lenguajes satisfacen las necesidades de los desarrolladores web.
Comencemos aquí – Sitio web 101
Comencemos nuestro viaje comprendiendo cómo se muestra la información de un sitio web en tu pantalla. Todos los sitios web utilizan HTML para procesar la estructura y mostrar su contenido. Ahora bien, puedes pensar en HTML (lenguaje de marcado de hipertexto) como el esqueleto básico del sitio real.
En los primeros días de la web, así es como funcionaban la mayoría de los sitios web: Un archivo HTML estático tendría que actualizarse cada vez que el desarrollador web quisiera mostrar nueva información en el sitio. Esto llevó a los desarrolladores a tener que modificar constantemente los archivos HTML para mostrar nueva información en la pantalla del usuario.
No parece tan mala idea; después de todo, ¿con qué frecuencia necesitas actualizar un sitio web? ¿Un par de veces a la semana? Claro, este método funciona bien para sitios web pequeños con información limitada y actualizaciones poco frecuentes, pero ¿qué pasa con sitios web como www.nytimes.com?
En 2013, The New York Times publicó alrededor de 350 artículos, ¡lo que generó 17 millones de páginas vistas cada día! Imagina tener que crear 350 archivos nuevos cada día con un artículo diferente en cada uno. Suena bastante lento, ¿no?
Por supuesto, The New York Times no funciona mediante la publicación de nuevos artículos en páginas web individuales, sino mediante la creación de una “plantilla” en la que se pueden insertar datos (en este caso, artículos de noticias) en las secciones correspondientes de la página web.
Bueno, si no incluimos los artículos mediante los archivos HTML, ¿cómo almacenamos nuestros datos? Aquí es donde empezamos a diferenciar entre sitios web estáticos y dinámicos.
Una página web dinámica utilizará una base de datos para almacenar todos nuestros artículos en texto, así como un archivo HTML para mostrar la información de nuestra base de datos. Podemos comenzar a pensar en estas dos entidades como el backend y el frontend de nuestro sitio web. HTML en sí no puede recuperar información de una base de datos, así que necesitamos usar un lenguaje backend para capturar esa información e introducirla en nuestros archivos HTML.
Uno de los lenguajes de programación del lado del servidor más populares y ampliamente utilizados en la web hoy en día es PHP. ¿Qué significa PHP? Preprocesador de hipertexto.
Aquí tienes un vistazo de lo que tenemos hasta ahora:
- Artículos de noticias contenidos en nuestra base de datos
- Código PHP para obtener información
- HTML para que se muestre nuestra página web
Podemos comenzar a notar una progresión lineal. Nuestra base de datos contiene toda nuestra información → PHP saca esa información de nuestra base de datos → HTML muestra esa información en nuestra pantalla. Así es como funcionan actualmente la mayoría de los sitios web modernos. Sin tener que almacenar toda la información en la página web real, los desarrolladores pueden dedicar más tiempo a optimizar la “apariencia” real del sitio web en lugar de preocuparse por el contenido.
¿Recuerdas el backend y el frontend de un sitio web? Bueno, podemos dividir el desarrollo web en dos categorías principales: desarrollo frontend y desarrollo backend.
Desarrollo Web Frontend
Ahora, echemos un vistazo al desarrollo web frontend. ¿Cuál es el rol de un desarrollador frontend y cuáles son sus tareas diarias de programación?
Un desarrollador web frontend está principalmente a cargo de la interfaz de usuario y el estilo del sitio web. Los lenguajes más utilizados por un desarrollador web frontend son: HTML, CSS3 y JavaScript. Estos tres lenguajes son esenciales para cualquier aspirante a desarrollador web frontend y son muy importantes para definir el diseño real de un sitio web.
Volviendo atrás cuando pensábamos en HTML como el esqueleto de nuestra página web, podemos pensar en CSS (hojas de estilo en cascada) como ropa que una persona podría usar. La gente quiere expresar su sentido de la moda a su manera y CSS nos permite hacerlo predefiniendo ciertas secciones de un sitio web para que tengan un estilo determinado.
Piénsalo de esta manera: generalmente usamos una camisa, pantalones y zapatos (el atuendo más básico, lo sé). Podemos definir la “camisa” o una determinada sección de la página web (digamos, el cuerpo del artículo de noticias en el ejemplo anterior) para que tenga un color específico. En el caso de un sitio web, podemos definir estos colores en nuestro archivo CSS e incluirlos en la parte superior de nuestro archivo HTML.
Ahora, cada vez que decidamos usar una “camisa”, simplemente podemos referirnos a su “tipo” desde nuestro archivo CSS, que contiene todos nuestros estilos predefinidos. JavaScript, por otro lado, es muy versátil. Una aplicación común de JavaScript se puede ver en los botones “Agregar a favoritos” en los sitios web. O simplemente mostrar la hora y fecha. JavaScript puede hacer mucho más, pero es importante recordar que funciona junto con HTML y CSS (CSS3 es la tercera evolución de CSS).
Desarrollo Web Backend
Aunque es esencial tener un sitio web atractivo, también es importante poder llenar nuestro sitio web atractivo con contenido saludable. Ahora es cuando abordamos el desarrollo web backend.
Las tecnologías web de backend comúnmente utilizadas son: Python, Ruby y PHP. Ya que mencionamos PHP antes, lo usaremos como nuestro ejemplo aquí. PHP es un lenguaje de secuencias de comandos que funciona junto con SQL (lenguaje de consulta estructurado, MySQL es un ejemplo común), que es nuestra base de datos, para extraer la información e insertarla en nuestro archivo HTML. Incluso podemos cambiar los datos que se muestran o actualizarlos en nuestra base de datos.
Ejemplos de esto se pueden ver en todas partes. Cada vez que actualizas tu estado en Facebook, la información que enviaste se almacena en la base de datos, no en la página web. Si decides actualizar tu perfil, la información actualizada también se envía a la base de datos. Esta perfecta integración es lo que permite que Facebook se cargue tan rápido en lugar de tener que mostrar la información de todos, todo el tiempo.
Hay muchas más cosas que pueden hacer los lenguajes web de backend, pero la conclusión es que para que exista un sitio web dinámico con una gran cantidad de contenido, una base de datos es casi siempre necesaria, junto con un lenguaje del lado del servidor, por supuesto.
Desarrollo Web Full Stack
Ahora volvamos a la pregunta que hicimos en primer lugar: ¿Qué tecnología de desarrollo web debo aprender? Bueno, aquí está la cosa. Realmente no hay un lenguaje que debas aprender, o “una tecnología principal” que se use todo el tiempo. En cambio, es la culminación de muchos, utilizando características específicas de cada uno, que son los ingredientes de un gran sitio web.
Ahora nos acercamos al desarrollo web full stack.
El papel de un desarrollador web full stack en el desarrollo de un sitio web se encuentra en las categorías de frontend y backend. “Stack”, significa capa en este caso. Un desarrollador web full stack tiene experiencia en todas las capas del desarrollo de un sitio web. Esto incluye, entre otros: el servidor, el cliente y el alojamiento, una forma de estructuración o modelado de datos, interfaz y experiencia de usuario, así como las necesidades del negocio real.
Al convertirnos en desarrolladores web full stack, podemos comenzar a planificar nuestros proyectos al encontrar qué herramientas realizan el mejor trabajo para nuestra tarea. Ciertos lenguajes son mejores en ciertas cosas y así es como debe ser. En lugar de centrarse en una solución singular de una sola vía, es mucho mejor obtener experiencia en todos los aspectos del desarrollo web.
En cualquier caso, aprender múltiples lenguajes y tecnologías web es la mejor ruta a seguir. Sin embargo, hay un enfoque que es bueno tener en cuenta: aprender las tecnologías/lenguajes más utilizados y populares, ya que cuanto más soporte tengas para tu producto, mejor.
Autor original: Rajan