Buscar en moleculax
Como ser Desarrollador Web Full-stack sin morir en el intento

El desarrollo Full-stack de acuerdo a las encuestas de Stack Overflow del año 2016, es la ocupación más popular estos días. No sorprende que haya docenas de blogs y cursos sobre cómo ser uno de ellos al haberse convertido en una de las carreras de la tecnología mejor pagada.
Existen hoy incontables programas y cursos en la web que prometen enseñarnos a los desarrolladores las ocultas habilidades de un verdadero Full-stack programmer, entonces, siendo conscientes y realistas… ¿podemos pensar que se puede ser verdaderamente Full-stack? ¿A que se refiere?
No pretendo que este artículo se convierta en una especie de How-To o algo por el estilo. Pretendo que este sea una guía precisa para lo que yo considero son las habilidades básicas más necesarias para ser un verdadero Full-stack y que yo me encuentro perfeccionando y desarrollando en su mayoría.

Que es un Full-stack Developer?

Un desarrollador web Full-stack es alguien que puede desenvolverse bien en ambas partes de una aplicación, tanto Frontend (parte visual) como Backend(parte lógica). El Frontend es conocido como la parte que interactúa y ven los usuarios, mientras que el Backend es la parte que maneja la lógica del negocio como conecciones de Bases de datos, Autenticaciones de usuario, configuraciones de servidor, etc. Ser Full-stack no significa que tienes que ser un maestro en cualquier tecnología de las partes implicadas, más bien pienso que significa que tienes que estar habilitado y capaz para trabajar con ambos lados de una aplicación y entender lo que hace, lo que se va hacer y cómo funciona cada parte del proceso de construir una aplicación.
Si quieres convertirte en un Full-stack developer, creo que las tecnologías que enumero abajo son vitales para que comiences, así que veamos rápidamente:

HTML/CSS


Casi cualquier programa, aplicación o sistema tiene en sus entrañas un poco o mucho de Html y CSS. También, casi cualquier persona que esté intentando enseñarte a programar tomará en cuenta estos dos. Esto es porque estos dos son los bloques constructores de la web (salvo algunas excepciones que no tratare aca). Html te permite agregar contenido a un sitio web y el CSS es lo que te permite darle estilos a tu contenido.
Para dominar estos, tendrias que estar capacitado para responder o trabajar con lo siguiente:
  • HTML Semántico
  • Beneficios y utilidad de preprocesadores CSS (habilidad muy importante que recomiendo, aunque no necesariamente tienes que conocer a fondo sobre estos, pero si quieres y te gusta ahorrar tiempo que nos conviene, deberías considerarlo).
  • CSS Media Queries para hacer completamente responsive y adaptables tus maquetaciones y sitios web.
  • Boostrap. Este es un framework muy conocido que particularmente me encanta mas que todo por su estructura de rejillas extremadamente responsive que evita complicarte mucho la vida cuando maquetas.

Javascript


El lenguaje Javascript se hace cada vez más popular entre los desarrolladores cada año. Una increíble cantidad de Frameworks, librerías, herramientas, snippets, etc. son lanzados cada dia a la web. Javascript es hoy el lenguaje más popular hoy entre los desarrolladores Full-stack porque tiene capacidades para funcionar de manera casi perfecta en ambos lados de la ecuación (Backend — Frontend).
Javascript es el único lenguaje que puede correr nativamente en el navegador y solo por esto puede doblar, triplicar y hasta cuadruplicar las velocidades de procesamiento y performance combinado con un buen código en el Frontend. Con su punta de lanza llamado NodeJs, si dominas Javascript en ambas partes, puedes llegar a ser imparable y un programador muy cotizado.
Algunos tópicos básicos que debes dominar con Javascript para ser Full-stack:
  • Entender su forma de trabajar con el DOM (llamado asi al documento en el frontend).
  • Comprender los términos básicos del lenguaje como lo son: herenciasprototiposclosuresdelegación de eventosscopefunciones higher-order, etc.
  • Flujo de trabajo Asíncrono (Asynchronous Control Flow), promises y los llamados callbacks que me costaron mucho comprender un día.
  • Como modularizar y estructurar correctamente cada una de sus partes. Cosas como webpackbrowserify o herramientas como gulp serán útiles conocerlas.
  • Saber utilizar al menos un Framework o librería popular. En realidad muchas veces algunos desarrolladores se centran demasiado en un framework en específico, opino que lo mejor es aprender y tener una buena plataforma de conocimientos sobre el lenguaje. De igual forma, si sabes Javascript lo suficiente, cualquier framework o librería será tarea de niños.
  • Aunque muchos digan, se quejen y renieguen de él, Jquery sigue estando presente en los corazones de cada desarrollador y en la mayoría de las aplicaciones hoy día. Te recomiendo aprender mucho sobre este.
  • Investigue, eduquese, infórmese sobre las características más importantes de ES6 y demás. Estos estándares y mejoras del lenguaje son realmente importantes para desarrollar aplicaciones modernas hoy.
  • Mantenerse aprendiendo e investigando con este lenguaje es vital, aprenderas que nunca terminas de aprender algo nuevo cuando de Javascript se trata.

    Cualquier lenguaje Backend (Php, Java, Python, Ruby, etc)

    Una vez que sientas que has comprendido bien Html/Css y Javascript, querrás pasar a un lenguaje Backend que se encargue de las operaciones más complicadas como lo son la lógica del negocio, las bases de datos, los comportamientos, eventos, etc. Las plataformas de cursos y Bootcamps usualmente se enfocan en lenguajes específicos, y en realidad no importa cual aprendes mientras que entiendas lo que está pasando y aprendas los matices y comportamientos del lenguaje que elijas.
    Obtendrás montones de foros, respuestas, plataformas que harán tu aprendizaje más dinámico, cómodo y ameno. Las combinaciones más populares suelen estar entre estos rangos:
    • Nodejs: Es un entorno de Javascript, asi que si logras dominarlo, te sera mucho mas facil.
  • Python
  • Java: Este lenguaje no se enseña tanto estos días para el campo Full-stack, pero algunas compañías todavía requieren desarrolladores en este lenguaje a montón.
  • Php: Es uno de los más populares hoy después de Javascript. Sigue teniendo muchísima demanda sobre todo con Frameworks como Laravel Cakephp.
  • Bases de Datos y Almacenamiento en la nube 

    Al aprender a crear aplicaciones web, en algún momento tendrás que almacenar datos en algún lugar y luego acceder a ellos más tarde. Debes tener una buena comprensión de algunos puntos relacionados con bases de datos y almacenamiento.

    • Comprender los beneficios de las bases de datos relacionales como las SQL .
    • Conocer las bases de datos NoSQL , como MongoDB (la más popular, creo).
    • Saber cómo conectar una base de datos con el lenguaje backend elegido (por ejemplo, Node.js + MongoDB).
    • Almacenamiento web y almacenamiento de sesiones, cookies, y datos en cache del navegador.
    • Básicamente, para no hacer interminable el post y mantenernos cortos y precisos, esos serian los puntos más fundamentales para conocer el mundo de un desarrollador Full-stack. Muchas veces dependiendo el área en la que te encuentres tendrás que conocer muchísimos términos como: Protocolos Http & REST, arquitectura de aplicaciones y sus tipos, controladores de versiones como GIT, algoritmos, etc.
      El mundo de un desarrollador web, programador o cualquiera que sea la carrera que elijas en la tecnología será un aprendizaje constante que en la mayoría de los casos te volverá el mejor autodidacta que conozcas en tu entorno, si, tu mismo. Es importante entender que como desarrolladores debemos aprender y renovarnos rápida y constantemente para adaptarnos a los cambios. ¿Podría decirse que nuestro campo es mucho más dinámico que el de un Ingeniero en cualquier área? Creo que si.


.


Powered by

http://emiliogomez.com.ar