El desarrollo de software y su aplicación ahora tocan muchas facetas de la vida humana. A pesar del notable éxito de la tecnología, siempre existe la necesidad de una mejora constante para permitir una aplicación más amplia y mejor, razón por la cual también existe una especialización en la prestación efectiva de servicios.
En los primeros días de los años 90, ser desarrollador era más simple. Front-end y Back-end. Explicar el desarrollo de software a las personas también fue simple:
Un desarrollador front-end es responsable del diseño interior de la casa construida por un desarrollador back-end.
La popularidad y la proliferación de dispositivos móviles de mano coincidieron con la creciente popularidad de los frameworks de JavaScript que se ocupan únicamente de la presentación front-end. Estos marcos ayudaron a crear sitios web más rápidos y esencialmente crearon un nuevo enfoque para el desarrollo web: ¡se introdujo una nueva pila!
Pero antes de los dispositivos móviles, los sitios web solo se veían en las PC y los diferentes tamaños de pantalla no eran una preocupación importante en el desarrollo web. Pero con el acceso móvil a la red en crecimiento, era hora de repensar cómo se presentaba y consumía la información en Internet. Este fue un nuevo desafío para los desarrolladores front-end.
Ahora, el desarrollo de software es un mundo complejo de tecnologías interconectadas. Se está volviendo difícil ver el frente y el back-end como entidades separadas. Pero (siempre un pero), es deseable que un desarrollador logre un estado de “Apilamiento completo” (es decir, de todos los oficios), que sea hábil tanto en el trabajo de front-end como en el back-end para mejorar la competitividad y relevancia en el mercado.
¿Quién es un desarrollador full stack?
La definición es muy subjetiva. En términos generales, un desarrollador de pila completa es alguien que trabaja tanto en el front-end (presentación) como en el back-end (computacional) del desarrollo de software, ya sea para la web o las aplicaciones.
En los primeros días del desarrollo de pila completa, si codificaba regularmente PHP o Python, jQuery, HTML, CSS, luego transfería algunos archivos a través de FTP a su cuenta de alojamiento compartido o servidor dedicado, entonces era desarrollador de pila completa.
En comparación con la web anterior a AJAX, ahora hay una variedad de preocupaciones que uno debe dominar. Full-stack ahora puede incluir:
Interfaz
· Implementación web receptiva
· JavaScript
· Integración API
· Implementación del marco
· Optimización del rendimiento
· Accesibilidad
· Diferentes conocimientos del marco CSS / JS
· Prueba de comportamiento
Back-end
· Implementación general del modelo de fondo
· Autorización de autenticación
· Diseño de API
· Diseño de bases de datos
· Optimización de consultas
· Indización de datos
· Análisis de datos
DevOps
· Integración continua
· Almacenamiento en caché
· Virtualización
· Seguridad del servidor …
… además de muchos otros requisitos específicos del negocio. Estos son algunos de los desafíos que debe enfrentar un desarrollador de pila completa en 2016. No digo que tenga que saber todo lo anterior, pero es probable que un buen desarrollador de pila completa domine combinaciones de varios pilas tecnológicas en la parte delantera y trasera.
Un desarrollador especializado en front-end o back-end podrá dominar completamente su oficio, pero es casi imposible encontrar un desarrollador de pila completa que sea capaz de dominar ambos. No estoy sugiriendo que un desarrollador sea incapaz de conocer y comprender las preocupaciones de las disciplinas tanto front-end como back-end, pero es muy raro encontrar a alguien con un dominio realmente profundo en ambos conjuntos de habilidades.
Los beneficios y costos de ser un desarrollador full-stack
Los desarrolladores de pila completa se emplean principalmente para trabajar en equipos pequeños y generalmente en empresas de nueva creación o pequeñas y medianas empresas. Por lo tanto, un desarrollador familiarizado con una pila tecnológica rara vez tendría el mismo nivel de conocimiento en una variedad de pilas. Por otro lado, un desarrollador de back-end normalmente tendría el mismo nivel de dominio en dos o más idiomas de servidor.
Los desarrolladores con la capacidad de sumergirse tanto en el front-end como en el back-end han tenido una gran demanda en lo que respecta al desarrollo web durante al menos los últimos seis años.
Los desarrolladores con la capacidad de sumergirse tanto en el front-end como en el back-end han tenido una gran demanda
Si aspira a ser un desarrollador de pila completa, entonces es mucho más sensato apuntar a ser un desarrollador completo, ya sea en primer o segundo plano. Con el tiempo y, por extensión, la experiencia, terminará adquiriendo conocimiento de cómo funciona el otro lado.
Ventajas del enfoque de pila completa
· Oportunidades : muchas más oportunidades de empleo en comparación con un desarrollador especializado en una pila. La mayoría de las compañías preferirían que alguien se sienta tan cómodo tratando con casos extremos de CSS como con consultas extrañas de bases de datos.
· Desarrollo profesional : el software tiende a ser cada vez más desafiante e igualmente gratificante cuando se trata con ambos extremos. Es mucho más difícil aburrirse cuando tiene el doble de funciones y errores para trabajar.
· Crecimiento profesional : dado que la mayoría de los desarrolladores full-stack trabajan en equipos pequeños; La propiedad del producto parece ser casi natural.
· Currículums múltiples : un beneficio para algunos y no para otros, algunos desarrolladores de pila completa mantienen dos currículums, uno para cada pila, cuando buscan trabajo. Esto ayuda a aumentar las posibilidades de conseguir un trabajo. Esto puede ser complicado para algunos, ya que la mayoría de los desarrolladores de pila completa tienen una pila preferida.
Costos
· Pilas de mo, problemas de mo : tendrás que lidiar con el cambio de contexto de forma regular, si no a diario. La mente del desarrollo front-end no es la misma que la de un back-end. Esto a menudo conduce a la introducción de errores. Considérelo inevitable cuando el trabajo implica trabajar con tecnologías con prioridades diferentes.
· Lecturas adicionales (x2) : el desarrollo de software implica mantenerse actualizado con los últimos marcos y técnicas. Para un desarrollador de pila completa, esto significa duplicar la cantidad de trabajo para su pila inmediata.
· Grandes empresas : algunas grandes empresas tecnológicas no contratarán por completo a un desarrollador completo. Requieren conocimiento de dominio específico y preferirían a alguien con suficiente experiencia para tratar casos extremos.