Cómo convertirse en un desarrollador de pila completa: Parte 2

Publicado: 2017-12-02

Esta es la segunda de una serie de publicaciones sobre cómo aprender a programar y desarrollar full-stack. Si no ha consultado la primera parte, sobre el aprendizaje de los fundamentos de CS, los algoritmos, los principios de diseño y el desarrollo front-end, puede hacerlo aquí.

Motivación

Ahora sabe cómo crear sitios web estáticos utilizando HTML, CSS y Javascript. Aunque Internet se diseñó originalmente para compartir páginas web estáticas, las capacidades (y expectativas) de una aplicación web moderna han aumentado enormemente. Casi todas las aplicaciones requieren que autentique a los usuarios, les responda y replique los escenarios del mundo real lo más fielmente posible.
Para hacer lo mencionado anteriormente, debe obtener datos de un usuario (o una API), procesarlos y producir una salida. También debe guardar estos datos y tener un mecanismo para identificar al usuario la próxima vez que vuelva a usar su aplicación. Para realizar estas funciones, nuestra pila actual no es suficiente.
Entrevista con Ankit Tomar, Co-Fundador y CTO, Bizongo

Se requieren servidores para procesar datos de usuario, almacenar archivos, convertirlos a HTML/CSS/JS. Luego, estos servidores lo sirven al navegador en una forma que se puede presentar al usuario. Se requiere una base de datos para almacenar datos importantes para su aplicación. Para programar el servidor, requerimos un lenguaje de secuencias de comandos del lado del servidor y para la base de datos, requerimos una base de datos (duh) y un lenguaje para comunicarnos con ella. Esto es exactamente lo que vamos a hacer en los próximos pasos. ¡Para los primeros siete, consulte la publicación anterior!

Tabla de contenido

Paso 8: lenguajes de secuencias de comandos del lado del servidor

Como se mencionó anteriormente, para programar y comunicarse con su servidor, necesitará saber un idioma que comprenda. A diferencia del front-end, donde Javascript es la única opción, hay una gran cantidad de opciones disponibles para programar en el backend. Los más populares son Java, PHP, Python, JavaScript y Ruby.
PHP tiene sus defectos, pero tiene la curva de aprendizaje más suave de todos los lenguajes y marcos que he usado hasta ahora. Y PHP se trata de codificar soluciones rápidas (y sucias). Entonces, en un período de tiempo extremadamente corto, puede crear una aplicación web de la que estar extremadamente orgulloso.
Cómo convertirse en un desarrollador de software web de pila completa UpGrad Blog front end backend
Java es un lenguaje de programación de propósito general y probablemente el lenguaje más popular de todos los tiempos. Es extremadamente popular para crear aplicaciones móviles (en la plataforma Android) y se usa ampliamente en la mayoría de las principales empresas de tecnología. Head First Java es un lugar excelente para aprender este lenguaje omnipresente.
Para aprender Python, recomiendo encarecidamente Learn Python the Hard Way de Zed Shaw. y Automatizar las cosas aburridas con Python de Albert Sweigart. Si ha decidido optar por PHP, puede aprender los conceptos básicos del lenguaje en Codecademy.
Ya conoce suficiente sintaxis de JavaScript para ensuciarse las manos con los marcos JS de Node y backend (como Express). Cubriré Ruby más adelante junto con Rails, ya que rara vez se usa como un lenguaje independiente.

Paso 9: Aprenda SQL

Para el siguiente paso, probablemente debería aprender un poco de SQL (lenguaje de consulta estructurado). Es el idioma con el que se comunican las bases de datos. Y aunque es posible que no lo use directamente cuando cambie a usar marcos, todavía es útil saber cómo comunicarse directamente con su base de datos. La buena noticia es que SQL es increíblemente fácil de aprender. Debería poder entenderlo bien en cuestión de horas. Head First SQL es un gran recurso para este propósito.
Cómo convertirse en un desarrollador de pila completa: Parte 1

Paso 10: aprenda un marco web de pila completa 'convencional'

Ahora es un buen momento para experimentar con marcos web que pueden hacer la mayor parte del trabajo de nivel inferior por usted.
No hay escasez de grandes marcos que puedan satisfacer todos los propósitos imaginables. Rails (escrito en Ruby), Spring (escrito en Java) y Django (escrito en Python) se encuentran entre los marcos de trabajo más utilizados en la actualidad. Puede echar un vistazo al tutorial The Rails de Michael Hartl, disponible de forma gratuita.
En lo que respecta a Django, el tutorial en el sitio web oficial es un buen lugar para comenzar. Una vez que se sienta cómodo con los conceptos básicos del marco, lea Two Scoops of Django . Es uno de los mejores libros de tecnología de todos los tiempos.
Si ha decidido seguir la ruta de primavera, le sugiero que se inscriba en el programa de desarrollo de software de UpGrad & IIIT-B. El programa le brinda una visión general muy holística del marco y lo ayuda a construir un backend robusto y escalable.

Paso 11: Marcos Javascript Full-Stack y MEAN Stack

No hace mucho tiempo, el desarrollo de backend se basaba en el concepto del ciclo de solicitud-respuesta. Por ejemplo, el navegador envió una solicitud y el servidor respondió escupiendo una página web en HTML. Sin embargo, desde principios de 2010, cada vez más aplicaciones se han convertido en tiempo real.
La estructura de una página web completa cambia sin actualizarse y se comporta de forma dinámica en función de la entrada y la interacción del usuario (Piense en chat, me gusta, comentarios, videos en vivo y reacciones, etc.).
Cómo convertirse en un desarrollador de software web de pila completa Back-end UpGrad Blog
En tal escenario, un simple ciclo de solicitud y respuesta simplemente no es suficiente. Por lo tanto, ha habido un reciente aumento del interés por la programación asincrónica y por hacer que las solicitudes de AJAX sean la norma. Los marcos de Javascript tienden a sobresalir en esto. Por lo tanto, tiene sentido familiarizarse con uno de los principales marcos JS disponibles en el mercado. Los dos más populares son MEAN Stack y MeteorJS.
Entrevista con Farooq Adam, cofundador, Fynd

Aprender MEAN es un poco más complicado debido a su naturaleza asincrónica y el infierno de devolución de llamada que Node generalmente tiende a desatar. Pero ahora que eres un desarrollador experimentado, eres lo suficientemente maduro para lidiar con sus idiosincrasias.
Meteor es un marco JS de pila completa con el que estoy experimentando actualmente. El concepto de Meteor es absolutamente encantador: un marco en un idioma que se encarga de todos los componentes de una aplicación (front-end, back-end y base de datos). Sin embargo, esto tiene el costo de la libertad de personalización. Una vez que haya creado algo en Meteor, es prácticamente imposible cambiar la base de datos o el marco de back-end si decide hacerlo. Sin embargo, sigo pensando que esta es una tecnología que vale la pena aprender. Se sabe que Meteor es extremadamente poderoso. Es capaz de hacer cosas en cientos de líneas de código donde otros marcos convencionales habrían requerido mil.

Conclusión

Este es el final de la parte 2. En esta publicación, hemos cubierto los recursos relacionados con el desarrollo de back-end y las diversas tecnologías de pila completa disponibles. Ahora puede llamarse con orgullo un desarrollador de pila completa. ¡Felicidades!
Pero la historia del desarrollo web full-stack no termina aquí. Con la introducción del iPhone, ha habido una revolución de teléfonos inteligentes en todo el mundo. Cada vez más personas se están desplazando hacia el uso de teléfonos inteligentes en lugar de computadoras de escritorio. En tal escenario, es imperativo que aprenda a crear aplicaciones para dos de las plataformas más populares que existen: Android e iOS. Cubriremos esto en la próxima y última parte de esta serie. Además, también buscaremos marcos que nos permitan crear aplicaciones nativas usando Javascript (Ionic, React Native, etc.).
Hasta entonces, es un adiós.
¡Tus comentarios y sugerencias son bienvenidos!

Conviértase en un desarrollador de pila completa

Diploma PG de UpGrad y IIIT-Bangalore en desarrollo de software
Aprende más