En los meses de verano siguen siendo muchas las personas que deciden cogerse unas vacaciones, las cuales aprovechan no solo para relajarse y divertirse, sino para pensar en qué harán a la vuelta. Es algo parecido a los propósitos de año nuevo, pero en septiembre y el 90% de ellos están relacionados con la formación. Vamos, que valoran la posibilidad de hacerse un curso, bien sea para encontrar el trabajo que quieres, mejorar el actual, conseguir un primer trabajo o, simplemente, por el placer de aprender.
Y todo esto, ¿qué tiene que ver con el título del post? Muy sencillo. Durante este verano, a través del chat de nuestra web la pregunta que más nos hicieron fue, "quiero ser programador web, ¿por dónde debo empezar?". O "después del verano me van a contratar de programador web junior y quiero hacer un curso ¿cuál debo escoger?" Y entonces comenzaba un diálogo que se repetía una y otra vez "- ¿Cliente o Servidor? - ¿Qué lenguajes conoces? - ¿A qué te gustaría dedicarte? - ...." Y este es el motivo por el que hemos decidido escribir este post.
Lo único que pretendemos es ayudarte a comprender qué es un desarrollador web, antes de que tomes tu decisión sobre el camino a escoger.
Un desarrollador web no es una sola cosa, sino que abarca múltiples conjuntos de habilidades que se traducen en diferentes especialidades. Los tres términos más comunes que se utilizan para nombrar dichas especialidades de forma genérica son: front-end, back-end y full stack. En este artículo trataremos de definir cada una de ellas y ver sus diferencias.
Desarrollador Front-end:
Trabaja del lado Cliente, en el navegador, en el lado de lo que se ve. Principalmente se ocupa de los componentes externos del sitio web o de la aplicación web. Como consecuencia, deben dominar obligatoriamente:
- HTML: HyperText Markup Language, es el componente estructural clave de todas las webs de internet. Sin él las páginas web no pueden existir.
- CSS: Cascading Style Sheets, es lo que le proporciona estilo a HTML.
- JavaScript: Usando solo HTML y CSS tus webs serían páginas estáticas, con JS tus páginas web son interactivas.
En general se asocia a los desarrolladores front-end con los principios de diseño y de estructura de páginas. Sin embargo, un desarrollador web va más allá que un diseñador. Obviamente tiene que tener en cuenta la usabilidad y la legibilidad de la página o de la aplicación web, pero como buen programador es consciente de que su trabajo se ejecutará en el lado Cliente, en la mayoría de los casos, en el navegador. Y la información no se almacena en el lado Cliente.
En la actualidad, además, va mucho más allá puesto que las capacidades de los navegadores los han convertido en verdaderos "sistemas operativos" de la Web, con APIs avanzadas que hace que las aplicaciones de lado cliente no tienen mucho que envidiar a las apps nativas, nuevas versiones del lenguaje ECMAScript, multitud de herramientas de desarrollo (npm, yarn, webpack...) y también meta-lenguajes (Sass, TypeScript...) que hacen que sea una disciplina bastante compleja.

Desarrollador Back-end:
El desarrollador back-end trabaja del lado Servidor, detrás del escenario, permitiendo con su trabajo que el usuario disfrute de su experiencia. Sin él, el desarrollo llevado a cabo por su anterior compañero no se sostendría.
Para ser programador del lado Servidor, son numerosos los lenguajes y frameworks entre los que elegir, todo dependerá de la empresa en la que caigas. A día de hoy, los más comunes son:
ASP.NET: es la plataforma de desarrollo web de Microsoft. Muy utilizada en las empresas. Tiene las variantes Web Forms y MVC, y ahora también ASP.NET Core MVC.
- PHP: por ejemplo, el famoso gestor de contenidos WordPress usa por detrás PHP. Laravel es uno de los frameworks usados con este lenguaje.
- Ruby: junto con su framework Ruby on rails.
- Python: fácil de aprender. Usado a menudo con Django como framework
- Node.js: se está haciendo cada vez más popular debido a que usa el mismo lenguaje que en el lado cliente: JavaScript.
- Java: el lenguaje clásico y uno de los más demandados.
Sin embargo, no es suficiente con dominar un lenguaje y un framework. Toda aplicación web debe almacenar datos de alguna manera. Por lo tanto, un desarrollador back-end también debe estar familiarizado con las bases de datos. Entre las más comunes destacan:
- SQL Server
- MySQL
- Oracle
- PostgreSQL
- MongoDB, que es un almacén de datos no-relacional o NoSQL.
Al igual que hemos comentado antes el entorno en el que trabajes te obligará a especializarte en una u otra.
Desarrollador Full stack
En la mayoría de las páginas y aplicaciones webs los errores que se producen ocurren del lado Servidor. ¿Quién era el responsable de esta parte? El desarrollador back-end, el cual a estas alturas del post ya está agotado, por lo tanto es mejor no exigirle nada más y buscarnos a alguien que además de lo anterior tenga conocimientos de arquitectura del servidores y sistemas.
Y esta persona es el desarrollador full stack. Un programador multiusos, responsable del desarrollo del proyecto, desde el montaje de los servidores, hasta el diseño con CSS.
Este tipo de programador fue popularizado hace unos años por el departamento de ingeniería de Facebook.
Actualmente es prácticamente imposible ser un buen desarrollador full stack. La publicación Tech Crunch lo ilustra perfectamente en los gráficos mostrados en este artículo. Tal y como evoluciona hoy en día la tecnología, es casi inviable tener una pata en cada lado (Cliente/Servidor/Arquitectura) y dominar todos. Generalmente, los programadores que se hacen llamar full stack están más centrados en una de las dos partes, es decir, dominan una de las partes y de la otra tienen nociones, las justas para defenderse en su día a día. Estos perfiles suelen trabajar en pequeñas empresas donde ellos solos son los encargados de todo el desarrollo web.
Resumen
Como puedes ver el desarrollo web presenta múltiples facetas las cuales además evolucionan con el tiempo. Así que no te presiones ni intentes aprender todo a la vez. recuerda en la mayoría de tus trabajos no estarás solo, sino que formarás parte de un equipo con lo que tu papel estará perfectamente definido. Por lo tanto, escoge en dónde quieres desarrollar tu carrera (Cliente o Servidor) y concéntrate en aprender y perfeccionar tus habilidades y conocimientos de desarrollo web de forma enfocada. No te dejes amilanar por las numerosas novedades que aparecen todos los días, y comprobarás que con perseverancia te convertirás en un profesional.
Independientemente del tipo de programador web que hayas elegido ser, si quieres destacar entre tus compañeros, no olvides desarrollar tus habilidades sociales, lo que los angloparlantes llaman soft skills frente a las que hemos estado hablando en todo el post que eran hard skills. Las más importantes son: capacidad para aprender rápidamente, capacidad para resolver problemas de forma eficiente, atención al detalle y por supuesto, facilidad a la hora de comunicarse.
Fecha de publicación: