Skip to content

🗺️ Ruta de aprendizaje — Python

Mapa de temas ordenados por una línea evolutiva: cada fase se apoya en la anterior. Es una guía, no una cárcel — puedes explorar en el orden que quieras, pero si un tema se te hace difícil, seguro te falta algo de una fase previa. Marca [x] lo que vayas dominando.

📍 Dónde estás ahora

FASE 0 ✅ ──▶ FASE 1 ⬅️ (aquí vas) ──▶ FASE 2 ──▶ FASE 3 ──▶ FASE 4 ──▶ FASE 5 ──▶ 🎯 Especialización
 base         datos y          funciones    POO        archivos    Python
 lista        bucles           a fondo                 y mundo     "pro"
                                                        exterior

Ya tienes la Fase 0 (variables, funciones, if/else, GUI básica). Estás entrando a la Fase 1 con el Ejercicio 2 (listas y bucles). El resto es lo que sigue.


✅ Fase 0 — Base (ya la tienes)

TemaDónde lo viste
Variables, tipos, = vs ==02-Conceptos
Funciones (def), callbacks02-Conceptos
if / else, truthy/falsy, f-strings02-Conceptos
Entorno: venv, pip01-Comandos
GUI: CustomTkinter, layouts, frames05-CustomTkinter

🔵 Fase 1 — Estructuras de datos y bucles (lo siguiente)

El corazón de cualquier programa: guardar colecciones de datos y recorrerlas.

  • [ ] Listas[], .append(), .remove(), .pop(), indexar lista[0], len()Clase 01
  • [ ] Bucles for — recorrer listas, range(), enumerate()Clase 02
  • [ ] Bucles while — repetir mientras se cumpla una condición → Clase 03
  • [ ] Diccionarios{"clave": valor}, la estructura más usada de Python → Clase 04 · Ejercicio 3
  • [ ] Tuplas y sets — listas inmutables y colecciones sin repetidos → Clase 05
  • [ ] Slicinglista[1:3], texto[::-1]Clase 06
  • [ ] List comprehensions[x*2 for x in lista] (forma pythónica de crear listas) → Clase 07

📚 Todas estas clases están detalladas en el índice de clases, cada una con teoría + su uso en tu app de escritorio + caso de uso con base de datos.

💡 El Ejercicio 2 (Lista de tareas) ya te mete de lleno en listas y for. Es tu puerta de entrada a esta fase.

🧪 Tip de entrevista: ¿Diferencia entre lista, tupla y set? Lista = ordenada y mutable; tupla = ordenada e inmutable; set = sin orden y sin duplicados.


🟢 Fase 2 — Funciones a fondo y organizar el código

Pasar de "funciones que hacen algo" a "funciones bien diseñadas y código en módulos".

  • [ ] return — devolver valores (no solo print) → Clase 08
  • [ ] Parámetros y argumentos — por defecto, por nombre, *args y **kwargsClase 09
  • [ ] Scope — locales vs globales, global, el gotcha del lambda → Clase 10
  • [ ] Módulos e imports — separar el código en archivos, if __name__Clase 11
  • [ ] Manejo de errorestry / except / finally, raiseClase 12

⚠️ Aún no usas return de verdad: tus funciones actúan directo sobre la pantalla. Aprender return te deja separar la lógica de la interfaz (clave para código limpio).

💡 try/except conecta con tus errores reales: en vez de que la app se caiga con un ValueError, la atrapas y muestras un mensaje amable.


🟡 Fase 3 — Programación Orientada a Objetos (POO)

El salto conceptual más grande: modelar cosas como objetos con datos y comportamiento.

  • [ ] Clases y objetosclass, __init__ y selfClase 13
  • [ ] Atributos y métodos — de instancia vs de clase → Clase 14
  • [ ] Herenciaclass Hija(Padre), super()class App(ctk.CTk)Clase 15
  • [ ] Encapsulación_privado, @propertyClase 16
  • [ ] Métodos dunder__str__, __eq__, __len__Clase 17
  • [ ] El gran refactor — tus apps como clases → Clase 18

💡 Conecta con tu GUI: las apps de CustomTkinter serias se escriben como una clase que hereda de ctk.CTk. Cuando sepas POO, podrás reescribir tu formulario y tu To-Do como clases ordenadas en vez de código suelto. Es el refactor natural de tus dos ejercicios.

🧪 Tip de entrevista: ¿Qué es self? La referencia al objeto actual; permite que un método acceda a los atributos de esa instancia. Es siempre el primer parámetro.


🟠 Fase 4 — Archivos y el mundo exterior

Que tus programas recuerden datos entre ejecuciones y hablen con otros sistemas.

  • [ ] Archivosopen(), leer/escribir, el bloque withClase 19
  • [ ] JSON — guardar/cargar datos estructurados → Clase 20
  • [ ] CSV — leer/escribir tablas (Excel) → Clase 21
  • [ ] Módulos estándar útilesdatetime, pathlib, randomClase 22
  • [ ] Peticiones a internetrequests (consumir APIs) → Clase 23

💡 Reto directo de tu To-Do: uno de los retos extra del Ejercicio 2 es "guardar las tareas en un archivo para que no se pierdan al cerrar". Eso es exactamente esta fase (JSON + archivos). Es el puente perfecto entre la Fase 1 y la 4.


🔴 Fase 5 — Python intermedio / "pro"

Las herramientas que separan al que "sabe Python" del que "escribe Python idiomático".

  • [ ] lambda, map, filter — y la estrella sorted(key=)Clase 24
  • [ ] Generadores y yield — datos "bajo demanda", eficientes en memoria → Clase 25
  • [ ] Decoradores@algo, funciones que envuelven otras → Clase 26
  • [ ] Type hintsdef f(x: int) -> str:Clase 27
  • [ ] Context managers — tu propio with, transacciones → Clase 28
  • [ ] Comprehensions avanzadas — de diccionarios y sets (ya vistas en la Clase 07)

📌 Ya tocaste lambda en el truco lambda t=tarea del Ejercicio 2 — así que tienes medio pie en esta fase.


🎯 Fase 6 — Especialización: Apps de escritorio (tu camino elegido)

Camino elegido: apps de escritorio con GUI + base de datos. Las clases ya están armadas:

  • [ ] Arquitectura — 3 capas: datos/lógica/UI (MVC ligero) → Clase 29
  • [ ] SQLite I — crear la BD, INSERT, SELECTClase 30
  • [ ] SQLite IIUPDATE/DELETE, búsqueda LIKE, CRUD en la GUI → Clase 31
  • [ ] Ventanas y diálogosCTkToplevel, confirmar/avisar, abrir/guardar → Clase 32
  • [ ] Threading — tareas largas sin congelar la ventana → Clase 33
  • [ ] Empaquetar — PyInstaller: tu app como .app/.exeClase 34
  • [ ] 🏆 Proyecto final — Gestor de Gastos (todo el curso, escrito por ti) → Clase 35

Otros caminos posibles más adelante (no son parte de esta ruta, quedan como referencia):

CaminoHerramientas típicasPara qué
🌐 Web / backendFlask, FastAPI, DjangoAPIs y sitios web
📊 Datos / cienciapandas, numpy, matplotlibAnálisis y visualización de datos
🤖 Automatizaciónscripts, os, requests, SeleniumAutomatizar tareas repetitivas
🗄️ Bases de datos a fondoSQLAlchemy, PostgreSQLMás allá de SQLite

🧰 Transversal — Buenas prácticas (te acompañan siempre)

Estos no son una fase; los vas incorporando desde ya:

  • [ ] Git / control de versiones — ya lo usas en este repo 👍
  • [ ] PEP 8 — la guía de estilo oficial de Python (nombres, espacios, indentación)
  • [ ] Testingpytest, escribir pruebas automáticas
  • [ ] Debugging — leer tracebacks, usar el depurador de VSCode (breakpoints)
  • [ ] Estructura de proyectosrequirements.txt, organizar carpetas

🧭 Recomendación de orden

1. Termina Fase 1  (Ejercicio 2: listas + for)          ← estás aquí
2. Fase 2          (return, módulos, try/except)
3. Fase 3          (POO → reescribe tus 2 apps como clases)
4. Fase 4          (guarda el To-Do en archivo/JSON)
5. Fase 5          (poco a poco, según te haga falta)
6. Fase 6          (elige especialización cuando te sientas cómodo)

💡 Regla de oro del autoaprendizaje: cada tema nuevo, aterrízalo en un mini-ejercicio (como ya vienes haciendo). Leer sin programar no fija nada.

🔗 Relacionado