El enlace de Manjo es genial. Sin embargo, si está entrando en esto con pocos antecedentes, encontrará la información bastante abrumadora.
Entonces, construir un sitio como Quora tiene dos fases. La primera fase es construir algo que funcione como Quora. Y la segunda fase es reconstruirlo para que pueda manejar a millones de usuarios.
Entonces, al principio solo debes enfocarte en la fase uno como programador por primera vez. Dicho esto, parte de la información en el enlace, como tener archivos CSS / JS externos, son solo buenas prácticas que debe seguir (aunque podrían hacer que las pruebas sean un poco difíciles al principio si no comprende los problemas de almacenamiento en caché del navegador) .
- ¿Existe una aplicación web que le permita administrar sus cuentas en varios sitios? Tengo varias cuentas de Twitter y Facebook para diferentes propósitos. ¿Existe una aplicación que me permita hacer un seguimiento de ellos?
- ¿Cuál es el mejor libro para iniciar el pentesting de aplicaciones web?
- ¿Es seguro usar Alipay en mi sitio para aceptar pagos de RMB para mi aplicación web?
- ¿Hay alguna manera de crear APIs, también conocido como servicio web, en algún idioma definiendo solo los esquemas? ¿Puedo obtener mi función CRUD para que pueda ser consumida por los programas?
- ¿Puede la aplicación web Meteor en la práctica escalar a más de 100,000 usuarios que compartirían ~ 1 foto (a veces video) y chatearían entre ellos (uno a uno) todos los días?
Todos los sitios web modernos tienen cierta arquitectura común. Puede dividirlo en dos componentes principales: del lado del servidor y del lado del cliente.
En el lado del servidor:
Hay una base de datos. Aquí es donde almacena todas las preguntas, respuestas, su información sobre los usuarios, el número de votos, etc. La base de datos de elección es MySQL. Por lo tanto, necesitaría lo básico para instalar MySQL, y algunos conceptos básicos sobre bases de datos, como tablas, índices y el lenguaje de interactuar con bases de datos en forma de MySQL. Sin embargo, al principio podrías escapar de esta parte de varias maneras:
Utilizo un PAAS (plataforma como servicio), este es básicamente un servicio de base de datos disponible para su uso y todo lo que le preocupa es su modelo.
2 usa un ORM (mapeo relacional de objetos) básicamente es un conjunto de código existente que conecta sus objetos (usuarios, preguntas, etc.) en un relacional (estructura de base de datos) sin preocuparse por SQL y solo se enfoca en el lenguaje de su servidor de aplicaciones.
Ahora necesita algún tipo de lógica en el servidor (por ejemplo, la capacidad de votar y aumentar el puntaje del voto en +1 por cada voto positivo). Los rieles (aún más populares) en Ruby, o Django con Python son básicamente marcos que toman gran parte del trabajo más común y te hacen concentrarte solo en la lógica de tu aplicación. Entonces, no solo necesitarías aprender Ruby (el lenguaje de programación) sino que también deberías aprender el marco Rails.
Al igual que con las bases de datos, existen opciones de PAAS que eliminan gran parte del trabajo inicial de hospedaje. Heroku sigue siendo muy popular y le permite alojar un sitio completo sin preocuparse por la instalación, los servidores, etc.
Lado del cliente:
Esto es básicamente donde los usuarios interactúan con su sitio. Cada vez más clientes están haciendo mucho más trabajo para mejorar la experiencia del usuario. Principalmente en la percepción de qué tan receptivo es un sitio. Por cierto, hay dos clientes principales ahora. Móvil que podría estar basado en HTML / Javascript / CSS o nativo (aim-c / swift en iPhone o Java en Android) O basado en la web que será HTML / Javascript / CSS. Entonces, lo mínimo que necesita para aprender los conceptos básicos de HTML / CSS y javascript. Para comenzar, puede usar Boostrap para minimizar la cantidad de CSS y HTML que necesita aprender y tener más tiempo para concentrarse en Javascript. Con javascript necesita aprender los conceptos básicos, pero también aprender marcos y bibliotecas que le faciliten la vida. JQuery es un buen comienzo. Si te vuelves aventurero, puedes aprender sobre Angular o React (que creo que es más fácil de aprender).
Ahora, si tiene poco tiempo, puede concentrarse en Javascript y HTML y crear todo, desde el lado del servidor hasta el lado del cliente, utilizando Meteor
Buena suerte.