Apariencia
🗺️ 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"
exteriorYa 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)
| Tema | Dónde lo viste |
|---|---|
Variables, tipos, = vs == | 02-Conceptos |
Funciones (def), callbacks | 02-Conceptos |
if / else, truthy/falsy, f-strings | 02-Conceptos |
Entorno: venv, pip | 01-Comandos |
| GUI: CustomTkinter, layouts, frames | 05-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(), indexarlista[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
- [ ] Slicing —
lista[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".
- [ ] Parámetros y argumentos — valores por defecto, argumentos por nombre
- [ ]
return— devolver valores (no soloprint) - [ ] Scope — variables locales vs globales, la palabra
global - [ ]
*argsy**kwargs— funciones con cantidad variable de argumentos - [ ] Módulos e imports — separar el código en archivos,
import,from ... import - [ ] Manejo de errores —
try/except/finally, tipos de excepción
⚠️ Aún no usas
returnde verdad: tus funciones actúan directo sobre la pantalla. Aprenderreturnte deja separar la lógica de la interfaz (clave para código limpio).
💡
try/exceptconecta con tus errores reales: en vez de que la app se caiga con unValueError, 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 objetos —
class, crear instancias - [ ]
__init__yself— el constructor y "yo mismo" - [ ] Atributos y métodos — datos y funciones que viven dentro del objeto
- [ ] Herencia — una clase que hereda de otra (
class Hija(Padre)) - [ ] Encapsulación — atributos "privados", propiedades
💡 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.
- [ ] Archivos —
open(), leer/escribir, el bloquewith - [ ] JSON — guardar/cargar datos estructurados (
import json) - [ ] CSV — leer/escribir tablas
- [ ] Módulos estándar útiles —
datetime,os,pathlib,random,math - [ ] Peticiones a internet —
requests(consumir APIs)
💡 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— funciones anónimas y funcionales (ya vistelambda) - [ ] Generadores y
yield— producir datos "bajo demanda", eficientes en memoria - [ ] Decoradores —
@algo, funciones que envuelven otras funciones - [ ] Type hints — anotar tipos (
def f(x: int) -> str:) para código más claro - [ ] Comprehensions avanzadas — de diccionarios y sets
📌 Ya tocaste
lambdaen el trucolambda t=tareadel Ejercicio 2 — así que tienes medio pie en esta fase.
🎯 Fase 6 — Especialización (elige tu camino)
Con las fases 0–5 dominadas, eliges hacia dónde crecer. No tienes que hacer todas:
| Camino | Herramientas típicas | Para qué |
|---|---|---|
| 🖥️ Apps de escritorio | Seguir con CustomTkinter + POO | Continuar lo que ya te gusta, apps más grandes |
| 🌐 Web / backend | Flask, FastAPI, Django | APIs y sitios web |
| 📊 Datos / ciencia | pandas, numpy, matplotlib | Análisis y visualización de datos |
| 🤖 Automatización | scripts, os, requests, Selenium | Automatizar tareas repetitivas |
| 🗄️ Bases de datos | sqlite3, SQLAlchemy | Guardar datos en serio (más que archivos) |
🧰 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)
- [ ] Testing —
pytest, escribir pruebas automáticas - [ ] Debugging — leer tracebacks, usar el depurador de VSCode (breakpoints)
- [ ] Estructura de proyectos —
requirements.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
- Conceptos ya vistos → 02-Conceptos
- Ejercicios → 01-formulario-registro, 02-lista-tareas