La mayoría de las personas que quieren aprender a programar no se frenan por falta de recursos. Se frenan porque hay demasiados recursos y ninguno dice claramente por dónde empezar.
Esta guía existe para eso.
Primero: definí para qué querés programar
El primer error es arrancar a aprender sin saber qué querés hacer con eso. No porque los fundamentos cambien — no cambian — sino porque el camino más corto entre donde estás y donde querés llegar depende del destino.
Algunas motivaciones comunes y qué implican:
- Desarrollo web — la ruta con más demanda laboral y más recursos disponibles
- Aplicaciones móviles — Android o iOS tienen ecosistemas distintos y lenguajes distintos
- Automatización — scripts que te ahorran trabajo repetitivo, reportes, integración de herramientas
- Data science / IA — análisis de datos, modelos, estadística aplicada
- Videojuegos — motores como Unity o Unreal, con curvas de entrada propias
- Construir un producto — una startup, un SaaS, algo que resuelva un problema concreto
No necesitás elegir para siempre. Pero tener una dirección evita que cada tutorial nuevo parezca más urgente que el anterior.
Elegí un lenguaje — y uno solo al principio
El lenguaje de programación es el idioma en que le das instrucciones a la computadora. Hay decenas, y la mayoría de las discusiones sobre cuál es "el mejor" no tienen en cuenta para qué.
Una guía práctica por objetivo:
| Objetivo | Lenguajes para empezar |
|---|---|
| Web frontend | HTML + CSS + JavaScript |
| Web backend | JavaScript (Node.js), Python, Go |
| Mobile Android | Kotlin |
| Mobile iOS | Swift |
| Data / automatización | Python |
| Videojuegos | C# (Unity), C++ (Unreal) |
| Multiplataforma mobile | Flutter, React Native |
Python y JavaScript son los puntos de entrada más accesibles: sintaxis clara, comunidades enormes, y aplicables en múltiples contextos. Si no sabés por dónde empezar, cualquiera de los dos es una buena respuesta.
Lo que no funciona: empezar Python, ver un tutorial de Go, descubrir Rust, y terminar sin haber construido nada en ninguno. Elegí uno y quedate ahí hasta que algo funcione.
Los fundamentos que aplican a todo
Independientemente del lenguaje, hay conceptos que aparecen en cualquier programa que escribas:
Variables y tipos de datos — cómo guardás información y qué tipo de información es (número, texto, booleano, lista).
Control de flujo — if/else para decisiones, for/while para repetición. La lógica básica de cualquier programa.
Funciones — bloques de código con nombre que hacen una cosa y podés reutilizar. El mecanismo principal para no repetirte.
Estructuras de datos básicas — listas, diccionarios/objetos, cómo organizar colecciones de información.
Algoritmos básicos — ordenar, buscar, iterar. Cómo resolver problemas paso a paso.
Antes de avanzar a frameworks, librerías o especializaciones, estos cinco conceptos tienen que estar sólidos. No perfectos — sólidos.
Aprendé haciendo, no mirando
Los tutoriales son útiles hasta cierto punto. El conocimiento que queda es el que construiste algo con él.
Tres proyectos de entrada que cubren los fundamentos sin ser triviales:
- Calculadora — variables, operaciones, input del usuario, control de flujo
- Lista de tareas (to-do) — estructuras de datos, funciones, estado que persiste
- Piedra, papel o tijera contra la computadora — lógica condicional, aleatoriedad, loops
No tienen que ser bonitos. Tienen que funcionar y haberlos construido vos.
Plataformas para practicar sin instalar nada: Replit y CodeSandbox te dan un entorno de desarrollo en el browser en segundos.
Los errores son el método
Programar es resolver errores. No es una fase que se supera cuando mejorás — es el trabajo. La diferencia entre alguien con un año de experiencia y alguien con cinco no es que el segundo no rompe nada: es que el segundo sabe leer el error y encontrar dónde buscar más rápido.
Leer el mensaje de error completo (en lugar de ignorarlo y buscar en Google solo las primeras palabras) es una habilidad concreta que acelera todo lo demás.
Comunidades donde seguir aprendiendo
Programar en aislamiento es más lento y más frustrante de lo necesario. Hay comunidades donde hacer preguntas, ver cómo otros resuelven problemas, y entender que los bloqueos que tenés los tuvo todo el mundo antes:
- Stack Overflow — la base de datos de preguntas y respuestas técnicas más grande del mundo
- r/learnprogramming — comunidad de Reddit para principiantes, más permisiva con preguntas básicas
- Discord y Slack de tecnologías específicas — casi todo framework o lenguaje popular tiene uno
Construí algo que mostrar
El portfolio no es un paso final — es el proceso completo. Cada proyecto que terminás y subís a GitHub es evidencia de que sabés hacer cosas, no solo que seguiste tutoriales.
Un proyecto terminado enseña más que tres empezados. La parte que enseña es cerrarlo: es donde aparecen los detalles que ningún tutorial cubre. Uno terminado vale más que diez a medias.
El mapa completo
- Definí para qué querés programar
- Elegí un lenguaje alineado con ese objetivo
- Aprendé los fundamentos: variables, control de flujo, funciones, estructuras de datos
- Construí proyectos pequeños — con ese lenguaje, sin saltar a otro
- Rompé cosas, leé los errores, buscá, preguntá
- Subí lo que construís a GitHub
- Repetí
La curva es real. También lo es que en algún punto algo hace click y las piezas empiezan a conectarse. Ese momento no tiene atajo — solo tiene horas invertidas.