¿Cómo comenzar a hacer aplicaciones como Instagram o Path? ¿Cuáles son las cosas más importantes que necesito saber y cuál es el lenguaje de programación importante que necesito aprender?

El objetivo C (para iOS) o Java (para Android) sería un buen punto de partida si desea crear aplicaciones móviles nativas. Android e iOS deben tener los respectivos SDK.

También puede aprender JavaScript y crear aplicaciones de una sola página que luego se pueden convertir en aplicaciones móviles mediante PhoneGap, Appgyver, Appcelerator, etc.

Para el marco front-end (si elige ir a la ruta de escritura única), puede elegir entre Angular.js, ember.js, backbone.js, etc.

También debe aprender cómo crear un servidor API para manejar cosas RESTful. Para el back-end, JS en Node.js, Scala, C ++ (si quieres ponerte elegante) o Go. También podrías intentar hacer un back-end con Ruby.

Hay algunos marcos de servidor API útiles como hapi by walmartlabs y StrongLoop.

También debe aprender a trabajar con una base de datos de su elección, ya sea Cassandra, SQL u otras soluciones noSQL.

Probablemente te ayudará a aprender algo de awk o sed también.

Puede leer sobre la arquitectura de Instagram aquí y puede comenzar a aprender sobre todas las cosas que no comprende allí.
Lo que impulsa Instagram: cientos de instancias, docenas de tecnologías. Otra versión del mismo artículo – Arquitectura de Instagram: 14 millones de usuarios, Terabytes de fotos, cientos de instancias, docenas de tecnologías – Alta escalabilidad -.
Sí, eso lleva tiempo.
Y también puede leer acerca de cómo las personas crean sitios web escalables en Alta escalabilidad.
Luego, aprenderá cómo crear front-end web y móviles para sus usuarios finales.
Buena suerte !.