¿Qué es el desarrollo Full Stack?

Las aplicaciones web que utiliza a diario consisten en:

  • El front-end, también conocido como la parte del lado del cliente de la aplicación.
  • El back-end, también conocido como la parte del lado del servidor de la aplicación.

  • Entonces, el desarrollo web full-stack se refiere al conocimiento de todas las partes responsables del front-end y el back-end de una aplicación web.



    ¿Qué es el desarrollo Front-End?

    El front-end es la interfaz de usuario de la aplicación. Es la presentación del contenido, las partes que el usuario ve y con las que interactúa, y la apariencia de la página web. Así es como se muestra la información tanto en los navegadores web como en los dispositivos móviles.
    Incluye diferentes componentes como barras de navegación, menús desplegables, botones y enlaces.
    El front-end consta de todas las partes visibles responsables de la experiencia del usuario.



    ¿Qué es el desarrollo de Back-End?

    El back-end consta de un servidor que recibe y procesa solicitudes y una base de datos utilizada para almacenar datos. El back-end son todos los procesos detrás de escena que suceden en una aplicación web.
    Es la lógica de negocios, el manejo y manipulación de datos, y los algoritmos.
    Esencialmente, son todas las partes ocultas de las que un usuario no es consciente directamente cuando ve e interactúa con una página web. Estas partes son procesos que se ejecutan en segundo plano.
    El back-end se considera el lado lógico o el "cerebro" de una aplicación web.
    Tanto el front-end como el back-end juntos forman una aplicación web Full Stack.



    Guía Completa

    Cuando es un principiante que recién comienza su viaje de aprendizaje, puede pasar más tiempo buscando qué aprender en lugar de aprender realmente. Y hay mucho que aprender cuando se trata de desarrollo web full-stack, lo que puede ser abrumador e intimidante.
    En las próximas secciones, discutiremos muchas tecnologías diferentes que necesitará aprender, y hay muchas más que no están en la lista.
    Es imposible aprender todo a la vez, así como también es imposible convertirse en un experto en todo.
    Esta guía es una sugerencia y un punto de partida. Proporciona los conceptos básicos sobre los que puede ampliar más adelante.
    Recuerde que llevará tiempo convertirse en un desarrollador de pila completa. Puede tomar un poco de prueba y error encontrar un horario de aprendizaje y una rutina que se adapte a usted y funcione para usted, ya que puede tener compromisos como cuidar de la familia, trabajar a tiempo completo o cualquier otra obligación de la vida.
    El éxito no es lineal. La clave del éxito es mantenerse constante y vencer la procrastinación.
    Planifique y reserve algo de tiempo todos los días, ya sea solo media o una hora. Una hora al día es mejor que no programar nada.
    Recuerda descansar y alejarte de la pantalla para no quemarte en el proceso.
    Ahora, veamos algunas de las tecnologías que debe aprender para convertirse en un desarrollador web completo en 2022.



    Fundamentos de desarrollo web Front-End

    Comienza aprendiendo a codificar practicando HTML y CSS.
    HTML y CSS son dos lenguajes que tienen un propósito diferente pero se unen para crear páginas web estáticas. Por esta razón, a menudo sucede que aprenderá ambos en paralelo.
    Primero, aprenda los fundamentos de HTML, específicamente HTML5, que es la última versión de HTML y admite muchas más funciones.



    ¿Qué es HTML?

    HTML (que significa lenguaje de marcado de hipertexto) se utiliza para definir la estructura y el contenido de una página web. Por lo tanto, los párrafos, encabezados, listas, imágenes, formularios y enlaces que ve en una página, junto con sus jerarquías, son todos código HTML.



    ¿Qué es CSS?

    CSS (abreviatura de hojas de estilo en cascada) aplica estilo a los elementos HTML. Es responsable de presentar el contenido de una manera visualmente atractiva.
    El código CSS permite todos los diferentes colores y fuentes. El tamaño de los elementos y cómo se muestran esos elementos en la página. El diseño de la página y cómo se organizan los elementos uno al lado del otro.
    Comience a aprender los fundamentos de CSS para aplicar estilos al contenido HTML.



    Línea de comando

    Conocer al menos los conceptos básicos de la línea de comandos lo hará más productivo al ahorrarle una cantidad significativa de tiempo al realizar tareas repetitivas y que consumen mucho tiempo.
    Puede lograr las mismas cosas (¡y más!) que cuando usa una GUI (interfaz gráfica de usuario). Pero con la línea de comando, usará la navegación solo con el teclado e ingresará comandos de texto en lugar de hacer clic y arrastrar íconos.
    Puede crear archivos y carpetas, ver el contenido de archivos y carpetas, copiar o mover el contenido de un archivo a otro y eliminar archivos y carpetas por completo, por nombrar algunos.
    Escriba e ingrese los comandos en una ventana o CLI (abreviatura de Command Line Interface).
    Dependiendo de su sistema operativo, esta será una aplicación diferente. En una Mac, se llama Terminal.app. En Windows, se llama Símbolo del sistema.
    La aplicación ejecuta un shell, como Bash o Zsh, que actúa como intermediario entre usted y el sistema operativo de su computadora. Escribes comandos y esencialmente le das órdenes a tu computadora. El shell que se ejecuta en la CLI lee los comandos e instruye al sistema operativo. El Sistema Operativo lleva a cabo las instrucciones.
    No importa el sistema operativo que esté utilizando, ya sea MacOS o Microsoft Windows, como desarrollador de pila completa, le ayudará si aprende Linux. Linux alimenta la mayoría de los servidores en Internet.
    Una forma de comenzar con Linux es instalarlo en su sistema operativo.
    Puede hacerlo configurando una máquina virtual. Una máquina virtual actúa como una computadora separada dentro de su computadora.
    Una vez que configura una máquina virtual, puede instalar una de las distribuciones de Linux, como Ubuntu, que es una versión de Linux.



    Aprende a usar un editor de código

    Para comenzar a desarrollar sus proyectos localmente, necesitará un lugar designado para escribir código.
    No se recomienda codificar con un procesador de texto como Google Docs o Microsoft Word, sino configurar un editor de código para escribir el código fuente.
    Hay muchos para elegir, y algunos de los más populares son Atom, Sublime Text y Visual Studio Code. Muchos desarrolladores también usan un editor de texto de línea de comandos llamado VIM. No se recomienda para principiantes ya que hay una curva de aprendizaje empinada.
    Visual Studio Code es el editor elegido por muchos desarrolladores, que también verá como VS Code.
    Es gratuito, de código abierto y tiene muchas funciones disponibles.
    VS Code tiene herramientas y características poderosas que se asemejan a un IDE (que significa Entorno de desarrollo integrado).
    Al usar Visual Studio Code, puede escribir y editar el código fuente, ahorrar tiempo con el autocompletado de código y usar el depurador y el terminal integrados. Puede compilar y ejecutar el código fuente, todo bajo el mismo techo.



    Aprenda un sistema de control de versiones

    Un sistema de control de versiones es una forma de realizar copias de seguridad y guardar sus proyectos y colaborar con otros miembros del equipo. Es una herramienta utilizada en todos los trabajos de desarrollo de software.
    El sistema de control de versiones más popular es Git, que es gratuito y de código abierto.
    Puede ver el historial completo de un proyecto y realizar un seguimiento de todos los cambios. Si es necesario, también puede volver a una versión anterior.
    Git no solo es práctico para tus proyectos personales, sino que es necesario cuando formas parte de un equipo.
    Por ejemplo:

  • Puede descargar (o clonar) una copia de trabajo del código fuente del código base de todo el proyecto en su máquina local. Codebase se refiere a todas las carpetas y archivos que componen el proyecto.
  • Puede mantenerse actualizado extrayendo todos los cambios recientes que han tenido lugar en el código base.
  • Puede realizar cambios de forma segura, sin afectar el código base original, creando lo que se conoce como una rama. Las ramas le permiten trabajar en errores o características específicas.
  • Puede revisar las modificaciones que realizó y fusionarlas con el contenido en el código base original.
  • Ahora, es posible que haya oído hablar del término GitHub y que esté confundido acerca de las diferencias entre Git y GitHub.

    Git es una herramienta que instala localmente para administrar sus proyectos, mientras que GitHub es un servicio de alojamiento en línea. GitHub facilita el uso de Git y es un lugar para que usted y su equipo carguen código.



    Aprende un lenguaje de programación

    Los lenguajes de programación actúan como traductores entre humanos y máquinas.
    Los lenguajes de programación son similares a los lenguajes humanos. Tienen elementos sintácticos como sustantivos, verbos y frases. Y agrupas estos elementos para formar algo que se asemeja a una oración para crear significado.
    Algunos de estos idiomas se parecen y se parecen mucho al inglés. Pero ofrecen una forma más corta, más precisa y menos detallada de crear instrucciones que la computadora pueda entender.
    Un idioma hablado/natural como el inglés, por otro lado, deja mucho espacio para la ambigüedad y las diferentes interpretaciones de diferentes personas. Con los lenguajes de programación, no tienes esa ambigüedad.



    Cómo hacer páginas web dinámicas con JavaScript

    Es posible que haya notado que usé la palabra estática para describir el tipo de páginas web creadas cuando usaba solo HTML y CSS.
    Para agregar comportamientos dinámicos e interactividad a las páginas web, debe usar JavaScript junto con HTML y CSS.
    JavaScript es un lenguaje de secuencias de comandos diseñado para ejecutarse en el navegador. Agrega funciones interactivas a páginas web estáticas.
    Algunas características interactivas que agrega JavaScript son:

  • Un mapa con la ubicación actual de un usuario.
  • Un mensaje que se muestra a un usuario una vez que llega a la página.
  • Un cambio en la página basado en la entrada del usuario.
  • Una animación cuando un usuario hace clic en un botón.
  • Un efecto de desplazamiento suave cuando hay un botón para desplazarse hacia atrás hasta la parte superior de la página.


  • Para comenzar a aprender JavaScript, comience a estudiar la sintaxis básica, o lo que se conoce como Vanilla JavaScript.
    Hay muchos conceptos para aprender, y esta no es una lista completa, pero algunos de los temas a los que se debe prestar atención son:
  • Tipos de datos
  • Variables y Alcance
  • Declaraciones condicionales
  • Bucles
  • Iteradores
  • Funciones
  • Objetos
  • Manipulación de DOM
  • JS asíncrono
  • Manejo de eventos
  • Sintaxis ES6
  • Arreglos
  • Métodos de matriz
  • Devoluciones de llamada
  • Promesas


  • Bibliotecas y marcos de JavaScript

    Antes de pasar a diferentes tecnologías, debe familiarizarse con los conceptos básicos de JavaScript. Tómese el tiempo para practicar y construir algunos proyectos usando el idioma.
    Luego, puede aprender una de las bibliotecas o marcos de JavaScript.
    Las bibliotecas y marcos de JavaScript proporcionan código preescrito que implementa funcionalidades específicas. Lo ayudan a desarrollar aplicaciones web de manera mucho más fácil y rápida y con más coherencia en las diferentes partes mediante la creación de lo que se conoce como componentes de interfaz de usuario.
    La biblioteca de JavaScript más popular y utilizada para aprender es ReactJS.



    Lenguajes de secuencias de comandos del lado del servidor

    Como desarrollador web full-stack, necesitará conocer tanto las tecnologías front-end como las herramientas back-end. También deberá poder trabajar con lenguajes de programación de secuencias de comandos del lado del servidor.
    Hay muchos para elegir, como PHP, Ruby y Java, por nombrar algunos.
    Y solo una nota sobre JavaScript: se usa ampliamente en el desarrollo de front-end, pero en los últimos años muchos desarrolladores también han comenzado a usarlo para el desarrollo de back-end.
    Todo esto es gracias a NodeJS (un entorno de tiempo de ejecución de JavaScript) que lo hace posible al proporcionar funcionalidad de back-end.
    Al emparejar NodeJS con el marco web del lado del servidor ExpressJS, ahora puede crear aplicaciones web de pila completa.



    Conocimiento de SQL y bases de datos relacionales

    Como desarrollador Full Stack, deberá saber cómo interactuar con las bases de datos.
    Las bases de datos se dividen en dos categorías, relacionales y no relacionales.
    Las bases de datos relacionales (también conocidas como bases de datos SQL) almacenan datos en un formato tabular estructurado y organizado.
    Hay relaciones claramente definidas entre los puntos de datos, lo que facilita la búsqueda de datos.
    Algunas bases de datos relacionales incluyen:

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server de Microsoft
  • SQLLite


  • La forma de comunicarse con las bases de datos relacionales y manipular los datos almacenados es consultarlos mediante un lenguaje de consulta como SQL (abreviatura de lenguaje de consulta estructurado).



    Conclusión

    Con suerte, este artículo le resultó útil y ahora tiene una mejor comprensión de lo que implica el desarrollo web Full Stack.
    En este artículo, repasamos la definición de desarrollo de Full Stack y vio una ruta de aprendizaje sugerida para comenzar con el desarrollo Full Stack.
    Si has leído hasta aquí, ¡te lo agradezco mucho!

    Otros artículos que te pueden interesar

    ¿Cuál es la diferencia entre un sitio web y una aplicación web?

    Adoptaremos un enfoque técnico y básico en este artículo. E intentaré resaltar algunas de las diferencias clave que me ayudaron a comprender en qué se diferencian los sitios web y las aplicaciones web.

    Cómo escribir un archivo README para tu proyecto de GitHub

    Si está usando GitHub, habrás comprobado que, para ayudar a otros usuarios a entender tu proyecto, necesitas escribir una buena documentación. Aprenderemos sobre qué es y cómo escribir un archivo README.

    CRUD

    CRUD no es una palabra. Es una abreviatura en inglés que significa Crear (Create), Leer (Read), Actualizar (Update) y Eliminar o Destruir (Delete).

    Comentarios

    Para comentar debe iniciar sesión.