¿Qué herramientas debo tener en mi arsenal para crear un sitio web similar a Facebook?

Interfaz

Ya conoce los conceptos básicos para crear un sitio web estático (uno que no cambia según lo que hagan los usuarios), es decir, HTML, CSS (estos describen cómo se deben mostrar los datos a los usuarios, no exactamente los lenguajes de programación) y JavaScript (un lenguaje de programación comúnmente utilizado en el front-end para hacer que la interfaz sea más fácil de usar).

Back End

Para crear un sitio web como Facebook que sea dinámico (los cambios dependen de lo que haga el usuario o de quién es el usuario) necesita conocer lo siguiente:

  • Marco web, un marco web toma todas las tareas complejas repetitivas necesarias en un sitio web y lo oculta para que los desarrolladores puedan llegar a su lógica y enviar y recibir solicitudes fácilmente (el conocimiento de redes / protocolos es útil para que pueda entender lo que sucede detrás las escenas con marcos web) cada desarrollador web normal los usa. Un marco web está escrito en un lenguaje de programación, y probablemente necesitará saber ese idioma para usarlo, ya que ya conoce JavaScript. Le recomiendo que eche un vistazo a Node.js , vea ejemplos, cambie las cosas, vea qué sucede y aprenda de esa manera, los tutoriales de youtube son útiles para.
  • Bases de datos, le permiten almacenar información sobre usuarios o foros, etc., hay 2 tipos principales de SQL y NoSQL. Recomiendo usar SQLite, una base de datos simple que no es exactamente útil en la mayoría de las aplicaciones, sin embargo, es fácil de configurar. Lo que aprende se puede aplicar fácilmente a bases de datos más útiles como MySQL
  • Cuando comience a aprender sobre un marco web o lenguaje de programación, recuerde que casi todo lo que quiere hacer probablemente se haya hecho, así que consulte la documentación (que se encuentra en sitios web relevantes, solo búsqueda en Google). No pierda el tiempo haciendo cosas que ya se han hecho a menos que quieres aprender cómo se hace. Saber cómo encontrar su solución que definitivamente ya se ha resuelto.
  • Los gestores de paquetes, siguiendo lo que dije anteriormente, son básicamente (a menudo) programas de línea de comandos que puede instalar rápidamente el trabajo de otras personas y vincular a su aplicación, si va a buscar en node.js, se encontrará con NPM (nodo gerente de empaquetación)
  • otras cosas como usar la línea de comando (terminal), git / github para el control de versiones de su proyecto, administración del servidor

No se preocupe por el último punto de la viñeta con mucho para comenzar, acostúmbrese a lo básico, un marco web, documentación y bases de datos.

Acostúmbrate a usar un terminal que hace que el desarrollo sea mucho más fácil a largo plazo. La instalación de paquetes y software se hace sin esfuerzo.

Resumen (usando nodo)

HTML, CSS y JS se utilizan para describir cómo se muestran los datos al usuario.

Node.js (y JS) se utiliza para atender las solicitudes web y permitir que los sitios web sean dinámicos. El nodo interactúa con una base de datos si es necesario

SQlite almacena los datos necesarios para el sitio (por ejemplo, información del usuario si era Facebook)

La documentación, los administradores de paquetes y la línea de comandos hacen que desarrollar una aplicación web sea un millón de veces más fácil.

He visto un par de preguntas como esta a lo largo de los años. Y mi respuesta siempre ha sido “Al menos llega a tu puente antes de saltar”

Ahora hagamos el salto
En 2003-2004, Facebook no ha sido de tanta calidad para mí, por lo que el fundador de Facebook tardó entre 11 y 13 años (hasta 2017) en descubrir el aspecto “avanzado” como lo llamaba. Ayudando a la comunicación en todo el mundo y mejorando el sitio web hasta la fecha para satisfacer a sus usuarios (soy un adicto), que estoy seguro de que se actualizará en un par de meses.

Aquí está mi punto.
No puedes pensar en ti mismo para construir algo tan avanzado como el sitio web de Facebook, tal vez sea más inteligente crear algo mejor a tu manera.

Sí, entiendo que estás tratando de aprender qué se necesita para poder crear algo tan avanzado como Facebook, pero todo se vuelve aburrido en el camino.

¿Cómo debo abordarlo?
Disfruta de cada sesión de codificación y crea algo como una (mini aplicación) que te encanta y no olvides compartirla. (comparte conmigo también)

¿Qué idiomas debo aprender?
Aprenda un idioma que resuelva su próximo problema, pero es muy importante conocer la fuerza del idioma antes de comenzar a aprender.

¿Qué herramienta necesito?
Necesita herramientas que funcionen mejor con sus idiomas y flujo de trabajo.

¿Cómo me combino para hacer un sitio final?
Exactamente la forma en que combinó su primera aplicación, su primer php, su primer node.js o la página de marcado básico. Todo depende de tu flujo de trabajo.

Básicamente, debes tomarlo día tras día, aprender a resolver tu próximo problema y compartir lo que has hecho con el mundo, podría terminar convirtiéndose en un facebook avanzado.

Gracias por el A2A.

Agregando a los puntos que otros chicos ya han mencionado. Un sitio web consta de tres partes principales.

  1. Front-end (Lo que ven los usuarios finales).
  2. Lógica empresarial (qué se debe hacer y cómo se debe hacer).
  3. Base de datos. (Toda la información debe almacenarse en algún lugar).

Según su pregunta, afirma que tiene una comprensión básica del Front-end. Sin embargo, un sitio como FB es complejo, por lo que es posible que deba actualizar sus habilidades allí.

En segundo lugar, debe pensar detenidamente para qué está hecho su sitio y cómo lo va a lograr. Divide todo en trozos más pequeños, los trozos más pequeños son más fáciles de construir. Puede utilizar cualquier tecnología con la que se sienta cómodo para la codificación del back-end.

Tercero, mientras divide sus tareas en fragmentos más pequeños, asegúrese de tener en cuenta su almacenamiento de datos. Asegúrese de normalizar sus tablas. Existen diferentes tipos de tecnología como SQL, No-sql. Tendrá que elegir cuál se adapta mejor a sus necesidades.

Finalmente, cuando el sitio web esté completo, necesitará un alojamiento y un dominio para que las personas lo usen. Hay muchos proveedores que brindan estos servicios.

Espero que esto ayude.

Esos son los conceptos básicos, va a necesitar experiencia en la base de datos, así como para escribir algún código que almacene publicaciones, datos, imágenes, etc. Para los blogs pequeños usan XML, mientras que los sitios web más grandes almacenan publicaciones y datos en algo así como una base de datos Mysql. Aprendería a construir una base de datos de su elección con un lenguaje de programación de su elección.

El cms Drupal combinado con el módulo de grupos orgánicos (og) proporciona muchas de las funcionalidades que tiene Facebook, por lo que puede ser un buen punto de partida. Si prefiere construirlo desde cero, estudiar los marcos de mvc es una buena opción. Tener un conocimiento profundo de las bases de datos también ayuda.

Programador

diseñador web

y equipo para trabajar 24/7

y a las personas que les gusta