La respuesta a esta pregunta es complicada. Tu pregunta es hacer un montón de cosas a la vez y decir, “¿cómo programo o cómo creo Snapchat?”.
Te daré algunas respuestas de muy alto nivel.
En primer lugar, una sola persona no podrá crear las aplicaciones que mencionó anteriormente hoy. No en su estado actual de todos modos. Es posible que pueda construir el marco original con usted mismo o con un equipo muy pequeño o dos amigos. Pero no será lo mismo que estas aplicaciones son “hoy”. Todos ellos han pasado por un proceso evolutivo y ahora son parte de grandes organizaciones con docenas y docenas de equipos que trabajan en varias partes.
- ¿Qué tipo de herramienta de depuración se puede implementar para que un depurador de software se vuelva eficiente en cuanto al tiempo para depurar un problema?
- ¿Dónde puedo encontrar agencias de outsourcing de proyectos de software en los Estados Unidos?
- ¿Cuál es la diferencia entre una entrevista de pasantía de ingeniería de software y una entrevista de pasantía de ingeniería de front-end en Google?
- ¿Cómo hacen las personas las aplicaciones?
- ¿Vale la pena emigrar a Suecia o Noruega como desarrollador de software?
Dicho esto, podrías construir cualquiera de estos. No, no solo usando Google Cloud Engine. Por cierto, una “pila” es solo un término coloquial que significa: “todas las tecnologías utilizadas para construir una aplicación determinada”. Un desarrollador de pila completa, por ejemplo, es alguien que generalmente está bien versado en el conjunto completo de herramientas necesarias para realizar el desarrollo front-end o back-end.
La mayoría de las aplicaciones modernas se crean como una plataforma de varios niveles. Ellos tienen:
- Un front-end: esta es la interfaz de usuario web. Por lo general, se construye con cosas como .Net / C #, Java / Netbeans, HTML, Javascript, CSS, etc.
- Una capa intermedia o capa de lógica de negocios: esto generalmente se hace en Java o C # o C ++ o algún otro lenguaje pesado orientado a objetos.
- Un back-end: esta es la capa de acceso a datos. La base de datos y / o lógica real para acceder a ella. Esto puede estar codificado en C # o Java y tener una base de datos como MySQL, SQL Server, Oracle, etc … o incluso puede usar algo como Hadoop o NoSQL, que son nuevos sabores de bases de datos que son parte del movimiento de big data y no relacionales establecer bases de datos basadas.
- Todo esto se ejecuta en una plataforma de servidor web (Linux / Apache para una aplicación Java o Python normalmente y Win / IIS para una aplicación .Net). Es probable que haya una serie de servidores web con carga equilibrada. Junto con servidores de bases de datos o sql agrupados en un centro de alojamiento de datos y, probablemente, múltiples centros de datos o algo de esto en una plataforma de alojamiento virtualizado / en la nube como Amazon Web Services o la plataforma Google Cloud.
Existen muchas metodologías diferentes para la forma de crear aplicaciones de varios niveles, como MVC, MVVM, MVP, .Net WebForms, Java Beans, etc.