¿Qué debo aprender para poder diseñar y codificar aplicaciones web complejas (redes sociales)?

No te preocupes por hacerlo complejo. Primero debe funcionar, así que eso es en lo que debería centrarse. La complejidad vendrá con el tiempo.

En lo que respecta a lo que necesita ahora, ya lo tiene. Dijiste que tenías experiencia en el front end, así que supongo que ya sabes que necesitas HTML, CSS y JavaScript. Necesita un lenguaje de servidor, que tiene con PHP (incluso si a la gente no le gusta). Es posible que desee un marco. No conozco PHP, por lo que el framework PHP que quieras está bien. En cuanto al front end, primero determine si necesita uno.

Lo más importante es que necesitas una idea, y una muy buena. Ya hay muchas redes sociales populares, así que antes de construir cualquier cosa, debes tener eso. Pregúntese qué tan grande quiere que sea, dígase qué error espera que sea. Es decir, si te importa que crezca. Si es solo por la experiencia de aprendizaje, no te preocupes por eso.

Yo diría que ya tienes lo básico, solo comienza a construir. Comienza con un pequeño conjunto de características, haz que funcione y luego construye desde allí. Conjunto de características de ejemplo:

  • buscar / agregar / eliminar amigos
  • subir / editar fotos
  • mensajes entre amigos
  • registrarse (¿desea permitir registros a través de otras redes sociales?)