Lejos estamos de aquellos años en los que un conjunto heterogéneo de tareas era llevada a cabo por el perfil de "web master". Incluso, la primer distinción que se hizo históricamente entre maquetadores y programadores tampoco alcanza a la hora de describir la cantidad de perfiles que surgen de la madurez del desarrollo Front-End Web como campo. Esto es bueno, porque deja en claro que si nos queremos dedicar a realizar sitios o aplicaciones web de alta calidad, performance e impacto no puede recaer todo sobre "el que sabe de web".
Particularmente, el mundo del desarrollador web Front-end está convulsionado en los últimos años. Cody Lindley publicó la guía 2017 del desarrollador Front-End, del que surgen los siguientes puestos presentes en el mercado actual:
Debajo hay una lista con la descripción de varias posiciones laborales de front-end. La más común, o mas usada, para un desarrollador front-end es front-end developer o front-end engineer. Notemos que cualquier trabajo que contenga la palabra front-end, client-side, webUI, HTML, CSS o JavaScript típicamente supone que la persona tiene algún grado de conocimiento profesional sobre HTML, CSS, DOM y JavaScript.
Este título genérico describe a un desarrollador con cierta habilidad en HTML, CSS, DOM y JavaScript, implementando estas tecnologías en la plataforma web.
Front-End Web Engineer (aka JavaScript Developer or Full-stack JavaScript Developer)
Esta posición supone un desarrollador con cierto bagaje en ciencias de la computación, ingeniería, utilizando ese conocimiento para trabajar en tecnologías front-end. Este perfil requiere comunmente un grado en ciencias de la computación y años de experiencia en desarrollo de software. Cuando "JavaScript Application" se incluye en el perfil, denota que el desarrollador debería tener un conocimiento avanzado de JavaScript así como de programación en general, desarrollo de software, buenas prácticas, etc.
CSS/HTML Developer
Este perfil describe a un desarrollador con conocimiento en HTML y CSS, excluyendo JavaScript y conocimientos de desarrollo de software. Sería el perfil también conocido como el de maquetador.
Front-End Web Designer
Cuando la palabra designer se incluye en el perfil, esto denota que es un diseñador que posee habilidades front-end (p.ej HTML y CSS) pero también sobre diseño profesional (lenguaje visual, diseño de interacciones).
Web/Front-End User Interface (aka UI) Developer/Engineer
Cuando la palabra interface o UI se incluye, esto denota que el desarrollador o ingeniero tiene habilidades que conciernen al diseño de interacción (manejo de animaciones, transiciones) aparte de las habilidades de un desarrollador o ingenierio frontend.
Mobile/Tablet Front-End Developer
Cuando se incluye mobile, tablet o responsive en el título, esto indica que el desarrollador tiene experiencia en construir software para estas plataformas (tanto nativas como en una plataforma web, por ejemplo, un browser). No es sólo el uso de media-queries, si no tener en cuenta la performance y optimización para estos dispositivos.
Front-End SEO Expert
Cuando la palabra SEO (aka, search engine optimization) se incluye, esto indica que el desarrollador tiene experiencia generando productos frontend en vistas de una estrategia de SEO.
Front-End Accessibility Expert
La palabra accessibility se incluye para indicar que el desarrollador tiene experiencia optimizando y construyendo productos que soporten los estándares y requerimientos de accesibilidad.
Front-End Dev. Ops
La palabra devOps se incluye cuando el puesto requiere de una amplia experiencia enfocada en prácticas de desarrollo de software como colaboración, integración, automatización de procesos, despliegues / deploys y métricas.
Front-End Testing/QA
Si se incluye testing o QA en la posición, esto indica que el desarrollador posee experiencai testeando y manejando software que involucra diversos tipos de testing (unitarios, de integración, funcionales, A/B).
Muchas veces se encuentran posiciones de full stack developer, esto es, un desarrollador que puede realizar todo un proyecto íntegramente (a veces incluyendo, incluso, el diseño). Desde el back-end (base de datos y server side) hasta el front-end. En el mundo web 2017, gracias a la permeabilidad de JavaScript en todas las partes del proceso (bases de datos como MongoDB o couchDB, NodeJS en server side, JavaScript y cualquiera de sus frameworks en client-side) se supone que alguien con sólidos conocimientos en JavaScript podría encargarse de todas estas problemáticas. La realidad es que para poder desempeñarse en todos estos ámbitos, hacen falta años de experiencia en cada uno de los campos (lo que se aprende en API difícilmente pueda trasladarse al manejo de datos en el cliente o a patrones comunes de NodeJS), aunque la "lengua franca" de JavaScript acerca a estos mundos.
En sintonía con el autor de Front-end Developer Handbook 2017, el perfil de full-stack "verdadero" es un caso más aislado que la norma, aunque conocer un poco de cada parte del proceso es algo recomendado para todo desarrollador web.
Como una conclusión positiva del panorama actual, vemos que hay lugar para que cada uno se especialice en lo que realmente le interesa, y plantee desde ahí una hoja de ruta a la hora de pensar una formación a futuro. Por el momento el común denominador es JavaScript, lo que hace que estudiar este lenguaje y sus implementaciones sea fundamental para cualquiera de las posiciones disponibles.