¿Un sitio web similar a Quora?
Seguro.
Esto es lo que haría.
- ¿Cuáles son las características más importantes para una experiencia de usuario óptima de una página web en dispositivos móviles?
- ¿Por qué hay múltiples API de dispositivos competidores para el desarrollo web móvil?
- ¿Hay proyectos comercialmente exitosos basados en el contenido de Wikipedia (sitios web, aplicaciones móviles, etc.)?
- ¿Cuáles son los costos de desarrollo aproximados de una plataforma como OpenTable?
- ¿Qué es el desarrollo de aplicaciones web?
- No quieres perder tu tiempo.
- No quieres perder tu tiempo.
- Ya pasaste al menos dos segundos leyendo la misma cosa dos veces, así que usa el resto con mucho cuidado.
Mencionaré algunos nombres (como Nginx) y palabras clave, no tiene que usarlos. Hay alternativas, pero como soy mortal, intentaré que mi respuesta sea breve.
Videos de YouTube, suscripciones pagas a sitios web de aprendizaje electrónico (SafariBooksOnline es bueno), lee blogs, mira tutoriales, sigue subreddits de Reddit, usa StackOverflow, etc.
VERSIÓN LARGA
Interfaz
- Aprende JavaScript.
- Aprende ES6. También usará ES6 en el lado del servidor, pero lo escribo aquí.
- Aprenda un marco de JavaScript. Uso Angular.js (1.x) para JavaScript y Angular Material para CSS. Dado que Angular Material es compatible con Angular, no necesito lidiar con cosas aleatorias de terceros. Si ya estoy familiarizado con Angular, no pasaría tanto tiempo aprendiendo material angular. ¿Ver?
- Hay muchos módulos y complementos de Angular.js (ui-router es obligatorio, por ejemplo), utilícelos.
Administración del servidor
- Aprenda a administrar un servidor. Seguridad, Linux, permisos de usuario, etc.
- Necesita un servidor web que pueda manejar el equilibrio de carga y que actúe como un proxy inverso. Nginx es bueno.
Backend – Idioma y plataforma
- Node.js + Express.js es bueno.
- Aprende lo que significa una promesa.
- Familiarícese con JavaScript asíncrono. Esto es importante. Use una biblioteca como async. De nada.
- Pase las próximas dos semanas aprendiendo cómo usar la biblioteca asíncrona correctamente. mapa, paralelo, serie, etc.
- Aprenda lo que significa una promesa y cómo trabajar con ellos. Otra vez. Dedos cruzados.
- Use un ORM. Si ha elegido MySQL como su RDBMS, puede usar Bookshelf.js.
- Notificaciones? ¿Cosas que salen de la nada sin actualizar una página? Websockets es la palabra clave que está buscando. Socketio es bueno.
- TDD (también se aplica a la interfaz)
- Quora no tiene una API, pero eso no significa que seguirá el mismo camino. Aprenda qué significa API, qué es y cómo puede aprovecharlo.
Backend – Base de datos
- Combine un sistema de gestión de bases de datos relacionales (como MySQL) con Redis. Use Redis para búsqueda, análisis, caché, colas de tareas, mensajería y casi todo lo que requiera la inserción masiva de datos y partes que se espera que funcionen rápido. Realmente rápido.
- Redis es bueno, pero ten cuidado con eso. Puede usar una GUI para acceder a su base de datos mientras aprende, puede ser útil.
- Aprenda lo que significa la cola de tareas.
ETA: 6 meses a un año (hice totalmente ese número)
VERSIÓN CORTA Y FEA
ETA: 2 semanas a 3 meses (hice totalmente ese número)
Interfaz
- Bootstrap y jQuery.
- Use los complementos jQuery. Ahorrarás tiempo.
Administración del servidor
- Compre un servidor VPS barato. DigitalOcean es bueno.
- Aprenda a administrar un servidor. Aprenderá lo básico en unos días. No necesita lidiar con cosas avanzadas, solo aprenda lo suficiente para que su sitio web esté en funcionamiento. Puede comenzar con DigitalOcean, es bastante fácil con tutoriales y otras cosas.
Backend – Idioma
- Aprenda el idioma más fácil para hacer algo rápido y probablemente inseguro. Duh, es PHP. No pases más de dos semanas aquí. Claro, tomará mucho más de dos semanas convertirse en un maestro (por cierto, nunca lo digas), pero de todos modos no vas a escribir una tesis en PHP.
- Elige un marco. Laravel es bueno. Es jodidamente lento, pero no tan lento.
Backend – Base de datos
- MySQL es bueno. Aprenda los conceptos básicos de SQL. Laravel tiene un ORM llamado Eloquent, es muy fácil de aprender.
- Aprenda qué significa ORM y qué puede hacer con él.
No he dormido en tres días. Intentaré ampliar esta respuesta más tarde, eso es lo que puedo hacer por ahora. Creo que otras personas escribirán respuestas, así que …