Convertirse en un desarrollador web autodidacta no se trata de seguir un único tutorial en línea. Depende de lo que ya sabes. Basándome en la pregunta, asumiré que en general eres un experto en temas de codificación y creación de productos digitales.
Simplifico las cosas, pero los sitios web / aplicaciones se basan en 2 capas principales:
- Front-end: con lo que los usuarios ven e interactúan
- Back-end: almacenamiento, servicio y procesamiento de datos
Interfaz
Los sitios web y las aplicaciones de navegador en línea usan HTML como estructura y marcado de contenido. Le permite describir vistas de aplicaciones componiendo bloques de código. Puedes diseñar esa estructura con CSS. Esos dos están unidos realmente fuertes. Entonces, en HTML, colocas un botón llamado “Enviar” y luego lo peinas en CSS agregando fondo azul, esquinas redondeadas y texto blanco. Ejemplo simple.
El problema es que por sí mismos esos dos tienen una naturaleza muy estática. Necesitas algunas interacciones. Java Script (en realidad, ECMA Script) es el lenguaje de secuencias de comandos nativo que entienden los navegadores. Permite, por ejemplo, agregar alguna acción cuando el usuario hace algo. Esos se llaman eventos. Digamos que si el usuario hace clic en el botón “Enviar” Muestra una ventana con “¡Gracias!”. No es útil en absoluto, pero es el ejemplo más básico.
Back-end
Por supuesto, desea que su aplicación sea más activa, recuerde los datos de los usuarios, procese los formularios enviados, etc. Ahí es donde entra en juego Back-end.
A diferencia del front-end, el código de back-end se ejecuta en el servidor. La tecnología que utiliza depende de muchos factores: costos, necesidades de rendimiento, cuánto conoce un lenguaje particular, marcos, bibliotecas, etc. En aplicaciones a gran escala, a menudo se mezcla y se divide en múltiples servicios separados. Pero para aplicaciones más pequeñas no es necesario.
Digamos que usarás Java. No solo necesita un servidor de hardware conectado a Internet, sino también un servidor de software instalado. El servidor de software es un entorno para ejecutar su aplicación. Maneja las solicitudes de los usuarios y sirve datos. Necesita saber qué y cómo servirlo, por lo que se necesita un código personalizado: su lógica empresarial. Aquí guarda los datos en la base de datos, maneja archivos, procesa formularios, etc.
Ahora conoce los conceptos básicos, lo cual es muy importante ya que le permite buscar recursos de conocimiento por frases clave.
Patrones de arquitectura
Hay algunos patrones comunes para cualquier idioma que desee utilizar, como la arquitectura basada en MVC / componentes MVCM y de front-end. Es un tema para múltiples artículos grandes o incluso libros en sí. Encontrará definiciones en Internet.
Un hecho importante es que los patrones le proporcionan alguna forma de consistencia, realmente importante en cualquier proyecto, excepto en los realmente triviales. Le permite escribir menos código mejor estructurado. Es más importante usar algunos pequeños trucos de codificación para guardar una o dos líneas de un código aquí y allá y pensar en lo inteligente que te hace.
Marcos, bibliotecas, herramientas.
Los patrones son guías genéricas, pero actualmente rara vez escribes un código desde cero. Utiliza marcos que proporcionan una implementación de patrón particular y manejan algunas tareas comunes detrás de escena más o menos. Las bibliotecas se utilizan para manejar algunas áreas de lógica comercial o técnica, como el manejo de fechas, dibujos, etc.
Para comprender la idea de las herramientas Primero debe saber que los marcos, las bibliotecas y las herramientas se crean con mayor frecuencia sobre otras. Lo llamamos dependencias. Las herramientas le brindan una forma de automatizar tareas que llevaría una eternidad hacerlo manualmente, como NPM para Node.js.
Almacenamiento de datos
Es manejado por Back-end pero Los datos se almacenan en bases de datos y archivos. Hay múltiples opciones disponibles. Las más comunes son las bases de datos basadas en SQL y NoSQL como MongoDB. Como arriba, tema para muchos libros. Para fines de aprendizaje, comience desde lo que quiera. Lo mejor es probar ambas soluciones para conocer los pros y los contras.
Algunos recursos en orden aleatorio:
- Idioma oficial, tecnología, documentación de herramientas
- Revista sensacional
- Trucos CSS
- Desbordamiento de pila
- Lynda
- Casa del árbol
No estoy afiliado a ninguno de esos. No he usado Lynda y TreeHouse, pero estos tienen paquetes de cursos si quieres que te guíen más a mano que saltar de documentos a tutoriales de múltiples fuentes.
Hay muchas más cosas que cubrir, como el control de versiones de código, el uso de IDE, el trabajo en equipo, la prueba de código, etc. Todo está fuera del alcance de una respuesta simple de Quora.