A continuación hay una guía de referencia con una lista de cosas que debe aprender :
Una nota importante: cualquiera que sea el que decida aprender, simplemente quédese y aprenda todo lo que pueda al respecto .
- ¿Qué es mejor para una carrera, SAP UI5 o AngularJs / JavaScript frameworks y Java?
- ¿Cuál es el uso de PHP aparte de la conexión a la base de datos?
- ¿Cómo es usar el framework Laravel para un proyecto de sitio de redes sociales?
- Cómo mejorar mis habilidades en desarrollo web
- ¿Cuál es el mejor libro para JavaScript?
- Node.js: esta es una gran opción porque Node.js es solo un entorno de JavaScript, lo que significa que no necesita aprender un nuevo idioma. Esta es una gran razón por la cual muchos programas en línea y bootcamps eligen enseñar Node.js. El marco más popular que probablemente aprendería para ayudarlo a desarrollar aplicaciones web es Express.
- Ruby: Algunos marcos populares para desarrollar en Ruby son Rails y Sinatra. Muchos programas enseñan a Ruby como primer lenguaje de fondo.
- Python: Algunos frameworks populares para desarrollar en Python son Django y Flask.
- Java: el lenguaje Java no se enseña mucho en estos días cuando se trata de Desarrollo Web Full-Stack, pero algunas compañías usan Java como su back-end y todavía es un lenguaje muy solicitado (ver imagen arriba).
- PHP: PHP raramente se enseña en los programas en estos días, pero al igual que con Java, todavía es muy solicitado y es una piedra angular de la web hoy en día.
4. Bases de datos y almacenamiento web
Cuando aprenda a crear aplicaciones web, en algún momento probablemente querrá almacenar datos en algún lugar y luego acceder a ellos más tarde. Debe tener una buena comprensión de los siguientes temas relacionados con las bases de datos y el almacenamiento.
- Comprenda los beneficios de los datos relacionales, por ejemplo, SQL.
- Aprenda sobre las bases de datos NoSQL, por ejemplo, MongoDB.
- Comprende cuál sería mejor en ciertas situaciones.
- Sepa cómo conectar una base de datos con el idioma de fondo elegido (por ejemplo, Node.js + MongoDB).
- Comprenda los beneficios de los almacenes de datos en memoria como Redis o memcached.
- Almacenamiento web para almacenar sesiones, cookies y datos en caché en el navegador.
- Escalado de bases de datos, ACID y ORM (todo opcional).
5. HTTP y REST
HTTP es un protocolo de aplicación sin estado en Internet: es lo que permite que los clientes se comuniquen con los servidores (por ejemplo, su código JavaScript puede hacer una solicitud AJAX a algún código de back-end que esté ejecutando en un servidor que sucederá a través de HTTP). A continuación se enumeran algunos temas importantes que debe conocer:
- Qué es REST y por qué es importante con respecto al protocolo HTTP y las aplicaciones web.
- Mejores prácticas para diseñar una API RESTful. POST / OBTENER solicitudes.
- Aprender a usar Chrome DevTools puede ser extremadamente útil.
- ¿Qué son los certificados SSL?
- HTTP / 2 y SPDY (opcional).
- WebSockets, Web Workers y Service Workers (todos opcionales).
6. Arquitectura de aplicaciones web
Una vez que crees que tienes una idea de HTML / CSS, JavaScript, programación de back-end, bases de datos y HTTP / REST, entonces viene la parte difícil. En este punto, si desea crear una aplicación web algo compleja, necesitará saber cómo estructurar su código, cómo separar sus archivos, dónde alojar sus archivos multimedia grandes, cómo estructurar los datos en su base de datos, dónde para realizar ciertas tareas computacionales (del lado del cliente frente al lado del servidor) y mucho más.
Hay mejores prácticas sobre las que puede leer en línea, pero la mejor manera de aprender realmente sobre la arquitectura de la aplicación es trabajando en una aplicación grande que contenga varias partes móviles, o incluso mejor, trabajando en equipo y desarrollando juntos un proyecto algo grande / aplicación compleja.
Esta es la razón por la cual, por ejemplo, alguien con más de 7 años de experiencia no necesariamente conoce CSS o JavaScript mejor que alguien con 2 años de experiencia, pero durante todos esos años presumiblemente han trabajado con todo tipo de aplicaciones y sitios web diferentes y he aprendido cómo diseñar y diseñar aplicaciones (entre otras cosas importantes) para ser más eficientes y poder ver el “panorama general” en lo que respecta al desarrollo. A continuación hay algunas cosas que puede leer que lo ayudarán a aprender cómo diseñar sus aplicaciones web de manera eficiente:
- Obtenga información sobre plataformas comunes como servicio, por ejemplo, Heroku y AWS. Heroku le permite cargar fácilmente su código y tener una aplicación en funcionamiento con muy poca configuración o mantenimiento del servidor, y AWS ofrece docenas de productos y servicios para ayudar con el almacenamiento, el procesamiento de video, el equilibrio de carga y mucho más.
- Optimización del rendimiento para aplicaciones y navegadores modernos.
- Algunas opiniones sobre lo que debe incluir una arquitectura de aplicación web.
- Diseño de aplicaciones web por Microsoft.
- MVC.
- Lo más importante es que debes tratar de trabajar en proyectos con personas, mirar bases de código de proyectos populares en GitHub y aprender tanto como puedas de los desarrolladores senior.
7. Git
Git es un sistema de control de versiones que permite a los desarrolladores que trabajan en un equipo realizar un seguimiento de todos los cambios que se realizan en una base de código. Es importante saber algunas cosas importantes relacionadas con Git para que comprenda cómo obtener correctamente el código más reciente que se ha perdido, actualizar partes del código, hacer correcciones y cambiar el código de otras personas sin romper las cosas. Definitivamente deberías aprender el concepto detrás de Git y jugar con él tú mismo.
- Aquí hay una lista de referencia de algunos comandos git comunes que probablemente usará.
- Aquí hay un tutorial sobre el uso de Git y GitHub para principiantes.
8. Algoritmos básicos y estructuras de datos
Este tema es algo polarizador en el mundo del desarrollo porque hay desarrolladores que no creen que deba haber un enfoque tan intenso en temas de informática como el recorrido de árboles, la clasificación, el análisis de algoritmos, la manipulación de matrices, etc. en el desarrollo web. Sin embargo, hay compañías como Google que son conocidas por hacer este tipo de preguntas en sus entrevistas. Como alguien dijo sobre la entrevista de ingeniería de Front-End en Google:
Dicho esto, como menciona Ryan McGrath, se espera que nuestros ingenieros de front-end (FE) tengan una sólida experiencia en CS, como todos nuestros ingenieros.
Si bien hay empresas que prácticamente requieren que los solicitantes tengan un título en ciencias de la computación o equivalente, hay muchas empresas que contratarán personas sin esta calificación técnica si pueden demostrar que saben cómo desarrollar aplicaciones y mostrar una comprensión de todo el dominio. Pero parte de ser un desarrollador competente y no escribir código ineficiente o usar las herramientas incorrectas es comprender algunos algoritmos básicos y estructuras de datos y poder analizar las compensaciones. Aquí hay algunas cosas que definitivamente debes aprender:
- Estudie las tablas hash e intente comprenderlas en un nivel más profundo. Esta estructura de datos subyace a los objetos en JavaScript (diccionarios en Python y hashes en Ruby).
- Comprenda cómo los árboles y los gráficos pueden ser beneficiosos como estructuras de datos.
- ¡Comprenda los conceptos básicos del análisis Big-O para que no haga cosas tontas como crear un ciclo anidado 3 niveles hacia abajo si no es necesario!
- Sepa cuándo usar un objeto frente a una matriz y comprenda las compensaciones.
- Descubra por qué el almacenamiento en caché es tan importante cuando se trabaja con una gran cantidad de datos. Aprenda también las ventajas y desventajas del almacenamiento en disco frente a memoria.
- Aprende la diferencia entre colas y pilas.