Aprendí HTML5 y CSS3 (casi completo), JavaScript, C y C ++ arriba de lo básico. ¿Qué debo hacer / aprender a continuación?

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 .

  • 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.

C y C ++ son lenguajes de programación y HTML es un lenguaje de marcado, ¡ambos lo llevan en diferentes direcciones!

Si desea hacer una carrera o tener interés en el Desarrollo de Software o Pruebas, busque lenguajes de programación como Java, Python, .NET , etc. Depende de ti !

¡Aunque el desarrollo web es fácil y se puede aprender rápidamente, pero tiene menos escala de pago que el desarrollo S / w!

¡Mi opinión es para ese campo en el que tienes interés!

Es realmente bueno que hayas aprendido todas estas cosas.

Aprendemos cosas para lograr algo.

Mi sugerencia es que construyas algo con las cosas que has aprendido hasta ahora.

Hasta y a menos que construyas algo, no sabrías lo que te está limitando.

Cuando construí mi primer sitio web, no sabía que existía algo como WordPress (aunque existía).

Solía ​​construir sitios desde cero, usando nada más que el bloc de notas.

Aprendí mucho de esos esfuerzos.

Estaba muy feliz cuando aprendí HTML por primera vez. Pero luego me di cuenta de que CSS hará las cosas muy fáciles y organizadas. Entonces aprendí CSS.

Entonces necesitaba algunos efectos secundarios del cliente como “al hacer clic”, etc. Por lo tanto, aprendí Javascript.

Luego necesitaba recuperar datos de la base de datos. Entonces, aprendí PHP y MySQL.

Entonces, jQuery, AJAX, etc.

Habrá una diferencia entre las personas que simplemente aprenden y las que aprenden mientras construyen cosas. Este último se convertirá en expertos.

Quiero que pertenezcas al segundo grupo: aprende mientras construyes cosas.