¿Qué es un desarrollador fullstack?

El término full-stack significa desarrolladores que se sienten cómodos trabajando con tecnologías tanto back-end como front-end.

Para ser más específicos, significa que el desarrollador puede trabajar con bases de datos, PHP, HTML, CSS, JavaScript y todo lo demás, también, aventurarse en la conversión de diseños de Photoshop a código front-end.

Un desarrollador de pila completa no necesita dominar todas las áreas y tecnologías que necesita para trabajarlo, porque eso hace que sea casi imposible, solo necesita sentirse cómodo trabajando con esas tecnologías, y eso también es mucho.

¿Qué significa full-stack en 2000 y qué significa ahora?

2000 fue hace mucho tiempo, en ese año se lanzó PHP 4.0. Si, 4.0. En aquel entonces, un buen desarrollador web sabía un poco de HTML, CSS y algunos procedimientos PHP, porque la POO adecuada ni siquiera existía hasta la versión 5.0.

La pila LAMP (Linux – Apache – MySQL – Perl / PHP) estaba de moda en esos años, con poca o ninguna alternativa. A principios de la década de 2000, si alguien usaba el control de versiones, se los consideraba herejes tecnológicos o asistentes. Hoy es inaudito y se rió de él, sin usar uno.

Entonces, intentemos desglosar y clasificar las principales pilas de tecnología que se requieren de un desarrollador de pila completa hoy:

Administracion del sistema:

  1. Linux y scripting de shell básico
  2. Computación en la nube: Amazon, Rackspace, etc.
  3. Procesamiento de fondo: Gearman, Redis
  4. Búsqueda: Elasticsearch, Sphinx, Solr
  5. Almacenamiento en caché: barniz, Memcached, APC / OpCache
  6. Monitoreo: Nagios

Linux alimenta la mayor parte de Internet, es un sistema operativo de facto en el desarrollo web (no descartar .NET). Además, un desarrollador de pila completa debe saber cómo funciona el alojamiento en la nube, Amazon / Rackspace u otros proveedores y sus API.

La búsqueda es una parte integral de la mayoría de los sitios web: un desarrollador debe saber cómo configurar y usar servidores de búsqueda como Sphinx o Elasticsearch.

El almacenamiento en caché también es importante, barniz, proxy inverso, Memcached y almacenamiento en caché de código de operación. Necesita saber qué es cada uno de estos y cómo usarlo.

Herramientas de desarrollo web:

  1. Control de versiones: Git, Mercurial, SVN
  2. Virtualización: VirtualBox, Vagrant, Docker

Hoy en día, es inaceptable no usar el control de versiones, incluso si es un desarrollador en solitario.

Con las herramientas de virtualización, tener entornos de desarrollo separados por proyecto es realmente agradable y fácil de configurar con VirtualBox y Vagrant al menos.

Si desea trabajar con Vagrant, también necesita conocer la sintaxis básica de Ruby y los scripts de shell.

Tecnología de fondo:

  1. Servidores web: Apache, Nginx
  2. Lenguaje de programación: PHP, NodeJS, Ruby
  3. Base de datos: MySQL, MongoDB, Cassandra, Redis, SQL / JSON en general

Apache y Nginx son la norma para el desarrollo web. Un desarrollador de pila completa debe saber cómo configurar estas aplicaciones y servir los contenidos de su sitio web.

PHP es lo que necesita ser dominado en un alto nivel, NodeJS, Ruby es bueno saberlo también.

Además del servidor web y los lenguajes de programación, la administración de bases de datos también es un requisito para un desarrollador de pila completa, que en sí mismo es otra bestia.

Las bases de datos relacionales (como MySQL, PostgreSQL) frente a las bases de datos no relacionales (como MongoDB, Redis o Cassandra) son diferencias que el desarrollador de pila completa necesita saber, junto con conocer la sintaxis de XML / JSON.

Tecnología de front-end:

  1. HTML / HTML5: web semántica
  2. CSS / CSS3: MENOS, SASS, consultas de medios
  3. JavaScript: jQuery, AngularJS, Knockout, etc.
  4. Las peculiaridades de compatibilidad entre navegadores
  5. Diseño de respuesta
  6. AJAX, JSON, XML, WebSocket

Aquí viene la parte divertida. Si desea presentar su sitio web, es mejor que conozca estos y todos sus caprichos.

JavaScript fue una broma en los primeros días, convertido en uno de los lenguajes más populares y poderosos de la actualidad. Cada día aparecen nuevas metodologías y marcos, MVC, MVVM, MVP, Angular, Knockout, Ember, etc.

Junto con HTML, CSS, Javascript, un desarrollador de pila completa también debe conocer el diseño receptivo y cómo trabajar con consultas de medios y preprocesadores CSS como LESS y SASS.

También se debe saber cómo comunicarse con el back-end a través de AJAX o WebSockets.

Diseño:

  1. Convertir el diseño del sitio web en código front-end
  2. UI
  3. UX

Además de las tecnologías de front-end, un desarrollador de pila completa también comprende lo que es posible y lo que no debe crear con las restricciones de HTML / CSS / Javascript y convierte el diseño (archivos de Photoshop / Illustrator) en consecuencia.

Con muchas de las tecnologías mencionadas, un desarrollador puede escapar sin saber codificar o usar, como Ruby o bibliotecas JavaScript específicas, pero todas estas están interconectadas de una forma u otra.

Por ejemplo, si desea configurar Vagrant, necesita conocer la sintaxis de Ruby, tan simplificada como sea, o si desea manipular elementos DOM, jQuery es una buena tecnología para conocer.

Fuente: Ser un desarrollador Full Stack

Un desarrollador de pila completa ofrece una aplicación completamente funcional (también conocida como función) de principio a fin.

El concepto ágil de “corte vertical” hizo que este tipo de posiciones fuera muy popular.

En una estructura de equipo tradicional, cada persona en un equipo tendrá conocimiento de una capa de una aplicación. Cuando el equipo intente completar alguna característica, tendrá que dividir la característica en tareas correspondientes a capas y luego distribuir la tarea a las personas adecuadas.

Si tuviera un equipo de desarrolladores de “pila completa”, simplemente podría asignar una función a un desarrollador y esperar que completen la función de extremo a extremo con poca o ninguna ayuda o coordinación.

Esto funciona mejor en teoría que en la práctica en mi experiencia.

Un desarrollador web de pila completa

Según tengo entendido, un desarrollador de pila completa es el que al menos conocía uno o más de los (lenguajes de software del servidor) interpretaron lenguajes como Python, PHP o Ruby, y los usó junto con scripts del lado del cliente como javascript, luego junto con HTML y CSS para crear sitios web más complejos y dinámicos. El desarrollador debe al menos conocer una base de datos como el RDMS tradicional o una base de datos NoSQL.

El desarrollador también debe ser el diseñador web / gráfico y deberá conocer software gráfico como gimp o Photoshop, CorelDraw o AI para la manipulación de imágenes que se utilizarán en un sitio web. Esto creo que una persona finalmente puede llamarse desarrollador web full stack.

Si simplemente crea un desarrollador de pila completa, es alguien que tiene conocimiento de casi todo. De front-end a back-end, de DBMS a seguridad de red. Un desarrollador de pila completa es alguien que se especializa en todo como un gran mercado de pared donde puedes tener casi todo, por lo que el desarrollador de pila completa es la pared de los lenguajes / conocimientos informáticos.

Pero esto es prácticamente imposible porque los campos informáticos de hoy son tan vastos que es casi imposible realizar un seguimiento de casi todo.

Espero que mi respuesta te haya ayudado.

¡Gracias!

Este tutorial lo entrenará para convertirse en un desarrollador Full Stack
https://nodeontrain.xyz