top of page

Acerca del Full Stack

¿Qué es una plataforma Full Stack?

 

La palabra “full stack” tiene diferentes significados según las empresas que la utilizan. Sin embargo, la característica principal de estas empresas reside en su capacidad para proveer y controlar todos los servicios y la experiencia que venden. Casi sistemáticamente, la perspectiva “Full Stack” implica extender las competencias fundamentales de la empresa más allá de las competencias tradicionales en marketing, comerciales, tecnológicas, etc.

 

Más allá de la gestión de la cadena de producción, sobre todo, es la combinación de la tecnología con la innovación comercial que es crucial. Tesla fabrica sus propios coches, Netflix produce sus programas de televisión etc. En otros casos, no es necesario manipular el tangible pero hay que combinar la perspicacia tecnológica con la experiencia funcional, servicial y operacional.

 

Mientras que se considera a todas las startups Full Stack como empresas tecnológicas, no sólo se reducen a esta descripción. En general, optan por convertir la complejidad operacional en una funcionalidad y un servicio premium. Uber revolucionó los transportes urbanos, Airbnb revolucionó la locación de vacaciones y, ahora, la experiencia de viajar.

 

La característica común a todas las empresas Full Stack es que tratan de eliminar la mayor parte de sus intermediarios comerciales y logísticos para ahorrar tiempo, dinero, dominar su mercado y, sobre todo, lograr engancharse con el cliente final. Esta reducción máxima de los intermediarios es posible a través del internet y sus nuevas aplicaciones.

 

Apple es el ejemplo de referencia sobre este tema. Diseña sus productos, sus softwares y les distribuye por sí mismo en su propia red de tiendas. Y, sobre todo, ofrece una experiencia de usuario incomparable con un servicio al cliente premium, una experiencia de compras única en sus Apple Stores, una comunicación para eventos perfeccionada, etc.

 

¿Qué es un full stack developer?

 

Intentando establecer relación con otros puestos y conceptos, en la mayoría de casos un full-stack developer es un programador senior, con cierta experiencia, ya que el perfil requiere saber de muchos campos. Debe conocer sobre servidores, redes, data modeling, APIs, UI y UX y un buen entendimiento de las necesidades del cliente o consumidor, entre otras.

 

En resumen, un "full-stack developer" es un programador con un perfil técnico muy completo que conoce bien tanto lo referente a back-end como lo referente a front-end, se maneja en sistemas y sabe entender. Se trata de un perfil cada vez más demandado y bien remunerado.

Un full-stack developer es un programador con un perfil técnico que conoce todas las capas del desarrollo de software y sabe la manera de conectar cada capa con las otras. De esta manera, debe ser capaz de levantar una aplicación desde cero. Por ello, para cumplir con este perfil, debes sentirte cómodo trabajando tanto con  las tecnologías del front-end (client-side) como con las del back-end (server-side).

 

Para llegar a ser un full-stack developer no solo basta con aprender las tecnologías del front-end y back-end, sino que también debe saber la forma de como conectar estos dos mundos de la manera más elegante y transparente posible.

 

Existen varios stacks que se consideran pilares para convertirte en un full-stack developer como son:

  • El desarrollo web LAMP, es decir, crear una aplicación web con tecnologías como Linux, Apache, MySQL Y PHP.

  • El desarrollo web MEAN, que consiste en MongoDB, Express, Angular y NodeJS.

  • También existe una equivalente para tecnologías en Microsoft que consiste en Windows, Microsoft IIS, .NET, Sql Server.

 

Una manera sencilla de convertirte un full-stack developer es laborar en una empresa donde se te permita participar en diferentes fases del desarrollo de un sistema informático ya que de esta manera tendrás la oportunidad de desarrollar tus habilidades de manera más acelerada, aprendiendo buenas prácticas de las personas con mayor experiencia y/o expertos en cada tecnología dentro de la empresa.

Ser  un full-stack developer tiene grandes ventajas:

 

  • Es un perfil muy demandado en la actualidad.

  • Este tipo de desarrolladores aspiran a un mejor salario.

  • Siempre tendrás la oportunidad de aprender nuevas tecnologías de una manera más eficiente, y te encontraras actualizado en este medio.

  • Podrás ser fácilmente asignable a nuevos proyectos.

  • Tienes una visión más completa sobre el desarrollo de un sistema.

  • Puedes prever complicaciones en el desarrollo de un sistema.

  • Al tener más campo laboral tienes más opciones para elegir donde trabajar.

  • Al conocer todas las capas de una aplicación, es más fácil coordinarte y trabajar con desarrolladores front-end como back-end, incluso con DevOps.

 

En resumen, es un desarrollador que puede crear aplicaciones complejas desde cero él sólo. Para ello debe ser una persona que entienda en profundidad cómo interactúan las distintas capas de una aplicación.

 

Estos son los 9 aspectos principales que debe saber un desarrollador Full Stack:

 

1. Desarrollo Web LAMP (Linux-Apache-MySQL-PHP)

El Kit más básico para ser un desarrollador Full Stack es conocer desarrollo de aplicaciones WEB + LAMP, o sea Linux, Apache, MySQL y PHP. Ahora muchas de estas tecnologías son intercambiables por otras similares, NginX en lugar de Apache, PostgreSQL en lugar de MySQL o Ruby on Rails en lugar de PHP.

Por supuesto que existe un equivalente en Microsoft que sería Windows + Microsoft IIS + .NET + Sql Server.

2. Desarrollo Web Mean

El siguiente kit de un Full Stack es el llamado MEAN, que consiste en MongoDB, Express, Angular y NodeJS.

A diferencia del conjunto anterior este stack busca entregar la mayor cantidad de carga al lado del cliente pero requiere de una forma bien distinta de pensar las cosas.

3. Modelamiento

No hay que perder de vista el diseño del modelo y el análisis de requerimientos, estos dos skills son mandatorios. Obviamente estos no son sólo conocimientos teóricos sino que se tiene que conocer y manejar diversos tipos de diagrama de datos, mínimamente un buen manejo de UML.

4. Control de versiones

Además un desarrollador Full Stack debe saber utilizar herramientas de versionado como GIT, (SVN “ya pasó de moda” y es mirado despectivamente dentro de la comunidad), a su vez se tiene que saber vincular GIT con herramientas de testing y deployment, ya sea Jenkins, heroku, bizagi, Go Cd, etc.

5. PAAS Y Soluciones Cloud

Un buen desarrollador Full Stack debe entender de manejo de PAAS (Plataform as a Service) como Heroku y Amazon. No sólo cómo usarlas, si no que entender sus costos y cómo escalan y cuándo deben ser usadas estas soluciones y cuándo no.

6. Métricas

Debe entender cómo extraer datos de sistemas de métricas como google analytics. Hay que tener en mente que el desarrollador Full Stack no sólo es un desarrollador, es además un analista.

7. Aplicaciones móviles

El Full Stack Developer tiene que estar 100% actualizado, por lo cual, debe saber cómo crear aplicaciones móviles, tanto híbridas como nativas. Sumando a los requisitos el conocer de frameworks web-mobile como PhoneGap y Titanium, de Frameworks Mobile como Ionic y Ratchet y obviamente debe saber Objective C (y Swift) y Java.

8. SEO (Search Engine Optimization) y SEM (Search Engine Marketing)

En blogs siguientes les voy a explicar la diferencia, pero un Full Stack tiene que tener en cuenta que no es suficiente sólo saber construir aplicaciones, hay que saber publicarlas.

Publicar en las appstores no es cosa de principiantes, y estar primero en Google es todo un desafío, y esto se hace mucho más difícil cuando internet está lleno de malas prácticas.

9. Seguridad

Un desarrollador que no saber realizar inyecciones de queries via SQL es el mismo desarrollador que dejará expuesta toda la base de datos de su aplicación. Es importante para un Full Stack saber de seguridad informática.

Bibliografía

https://www.scio.com.mx/blog/que-rayos-es-un-full-stack-developer/

https://bbvaopen4u.com/es/actualidad/que-es-un-full-stack-developer

http://latamdigital.softtek.co/9-aspectos-que-debe-conocer-un-full-stack-developer

https://www.iadvize.com/blog/es/plataforma-full-stack-definicion/

bottom of page