En este artículo encontrarás tips que ayudaran a dirigir tu profesión como Full Stack Developer

«En los primeros meses de tu carrera como Full Stack Developer tendrás que tomar decisiones clave que condicionarán tus siguientes años de carrera. Aquí te traemos cuatro decisiones clave a las que vale la pena dedicar tiempo para tener éxito como developer Full Stack.»

El Stack

El stack tecnológico son los diversos pilares sobre los que se fundamenta un producto tecnológico. En general, esto quiere decir el frontend, el backend y la base de datos. El frontend es la parte programática con la que el usuario interactúa (la página web o la aplicación mobile) y el backend es la programación que se ejecuta en servidor y donde normalmente está la lógica de negocio programada. Sin embargo, el stack no tiene porqué quedarse en el clásico frontend, backend y base de datos. Otro pilar habitual es la administración de sistemas, que consiste en configurar y mantener los servidores, dominios y otros sistemas. En general quality assurance, usabilidad y experiencia de usuario, diseño gráfico, y gestión de equipos suelen estar excluidos del concepto de stack tecnológico, aunque sin lugar a dudas son necesarios para el éxito de todo proyecto. Un developer full stack puede tener conocimientos de gestión de equipos o de diseño que potencian aún más su flexibilidad. La decisión aquí es saber qué pilares van a conformar tu stack como full stack developer. Naturalmente frontend, backend y bases de datos. Pero… ¿vas a atreverte también con administración de sistemas? ¿vas a complementar tu perfil con conocimientos de usabilidad? Es imprescindible comenzar por el principio, pero vale la pena tener la visión de qué stack buscas más allá de los mínimos.

El vertical

Ser full stack developer en un proyecto web es muy diferente a serlo en un proyecto mobile. Hay diversos verticales tecnológicos que tienen diferencias significativas en las tecnologías. Los verticales principales son web development, mobile development, game development y multimedia development. Estos verticales tienen partes en común, como el backend y las bases de datos, cuyas tecnologías pueden solaparse. Sin embargo, lo importante aquí son las diferencias. La diferencia más clara son las tecnologías de frontend. Por ejemplo, en web development las tecnologías frontend serán HTML, CSS y JavaScript (o de la familia de estas) y en mobile development serán Android o IOS. Esto nos lleva a pensar también en las subverticales, como el desarrollo mobile Android y IOS que tienen diferencias radicales en cuanto a programación frontend. 

Cada vertical tiene su mercado, y la transferencia de programadores full stack de un vertical a otro no es algo que suceda a diario. Sin embargo, con la debida experiencia es posible ser full stack en más de un vertical. Por ejemplo encontrar un full stack developer que pueda desarrollar tanto en mobile como en web no es una fantasía, en particular desde que tecnologías como Flutter y React Native se han adoptado (y de hecho desde sus antecesores Cordova y Phonegap).

Las tecnologías

Al final del día hemos de acabar programando en algún lenguaje concreto, alguna base de datos particular y algún sistema operativo. Así que no es suficiente escoger el vertical. ¿Vamos a programar el backend en Java o en Python? ¿Usaremos la clásica MySql o será un MongoDB? ¿En frontend usaremos React o Angular? Si en las decisiones anteriores eran decisivas y había pocas opciones donde escoger, aquí se nos abre un mundo de posibilidades difícil de listar.

La primera norma es utilizar tecnologías que tengan mantenimiento activo y se estén usando ampliamente. Podemos hacer fácilmente el ejemplo con los lenguajes. Según el report anual de Github de 2017 los lenguajes que tienen más repositorios son: JavaScript, Python, Java, Ruby y PHP. Y si vamos a las respectivas páginas de versiones de estos lenguajes veremos que efectivamente tienen mantenimiento activo. De modo que cualquiera de estos son una buena decisión. Cabe decir que normalmente si una tecnología es muy utilizada entonces casi seguro tiene un buen mantenimiento. Sin embargo, una tecnología con mucho mantenimiento no tiene porqué ser muy usada, y en cualquier momento por falta de uso dejar de ser mantenida. ¿Por qué es importante este criterio de uso y mantenimiento? Para garantizar que tendremos acceso a recursos de aprendizaje, soporte, comunidad, una tecnología que crece y se expande funcionalmente, y sobre todo para asegurarnos que la inversión de tiempo que hacemos en aprender esa tecnología es una inversión con poca probabilidad de caer en saco roto a los pocos años.

Pero no todas las tecnologías se amparan en este criterio. Por ejemplo, es posible que nuestro proyecto necesite una base de datos con capacidad de analizar grafos (por ejemplo relaciones entre personas, como Facebook o LinkedIn). Entonces hemos de añadir la pregunta ¿Y además esta tecnología resuelve el problema que necesito mejor que las demás?. Finalmente a veces no se puede escoger tecnología. Internet funciona con HTML, y no podemos decidir aprender una alternativa a HTML si queremos programar web.

El mercado

Esto más que una decisión es algo a tener en cuenta y que condiciona las decisiones anteriores. Seguramente queremos ser developer full stack para trabajar como tal en alguna empresa. Y claro, no en cualquier empresa. Cada uno tiene sus preferencias. Habrá quien querrá trabajar en Banca, otros preferirán Startups, … lo que sea, quizás incluso hay una empresa concreta con  la que sueñas entrar a trabajar. Bien, todas estas empresas usan tecnologías, incluso hay mercados enteros que usan tecnologías muy semejantes. De modo que si tenéis preferencia conviene investigar qué tecnologías se usan en ese mercado. ¿Cómo se investiga esto? Es facilísimo, listáis unas cuantas empresas del sector que os interesa y las buscáis en LinkedIn, entráis en la pestaña de “Jobs” y ahí mirad qué perfiles de developer buscan y las tecnologías que piden. Ya está, quizá es tedioso, pero es efectivo. Además podéis aprovechar y contactar y preguntar a algunos empleados de esas empresas sobre los trends tecnológicos del sector. No es una locura, en general en LinkedIn si eres amable y respetuoso te contestan con amabilidad y respeto.

En algunos sectores la diversidad tecnológica es abrumadora y es difícil sacar conclusiones, como en el sector de Startups, muy ágil, muy rápido, las Startups van y vienen y las tecnologías con ellas. Pero en otros sectores hay mucha menos diversidad. Por ejemplo, en las administraciones públicas hay dos tecnologías dominantes de backend: Java y .NET. También sucede lo mismo con bases de datos, en grandes (grandes) empresas son dominantes las bases de datos Oracle y SqlServer. Sin embargo, en las empresas de análisis de datos domina Python y R. Estos tres ejemplos están basados en lo que he visto y lo que han visto los que me rodean en los últimos años, de modo que es posible que las administraciones públicas que conozcas no usen Java y .NET, si no que domine otro lenguaje. Siempre hay que investigar.

En definitiva…

Dedica un tiempo a investigar y sacar conclusiones para decidir el stack, el vertical y las tecnologías. Invertir tiempo en esta fase te puede ahorrar mucho tiempo después y te ayudará a estar centrado en aprender esas tecnologías que has escogido. Y si nos equivocamos, siempre podemos rectificar, pero siguiendo estos consejos nos equivocaremos un poco menos.

Si al final has decidido ser un web full stack developer con React, PHP y MySql echa un vistazo al bootcamp de Full Stack development en Nuclio Digital School. Además de estas tecnologías aprenderás todas las que complementan a un Full Stack, como Docker, AWS, Kubernetes, Linux, Git. El bootcamp está diseñado para que tengas una experiencia profesional como la de un full stack developer para que cuando acabes puedas lanzarte a trabajar.

Si te ha gustado el artículo y quieres saber más

Accede al programa completo en Full Stack

Leave a Reply