Quisiera que me expliques detalladamente la regla del 80/20, necesito entender de
que trata y si puedes usar ejemplos reales, estaria mucho mejor.
Me gustaria poder usarla en mi aprendizaje y rutinas de salud diarias. Porque tengo
la meta de en 4 semanas poder optar por una posicion junior como programador
python.
---
La **regla del 80/20**, también conocida como el **Principio de Pareto**, establece
que **el 80% de los resultados proviene del 20% de las causas**. No siempre las
cifras son exactas, pero reflejan una idea clave: **una pequeña parte de tus
esfuerzos produce la mayor parte de tus resultados**.
A continuación te doy una explicación clara, ejemplos reales y cómo aplicarlo en
**aprendizaje** y **rutinas de salud**, especialmente orientado a tu objetivo de
conseguir una posición junior en Python en 4 semanas.
---
# 🧠 ¿Qué es exactamente la regla del 80/20?
El principio surge de observaciones en distintos campos. Por ejemplo:
* En economía, Vilfredo Pareto notó que **el 20% de la población poseía el 80% de
la riqueza**.
* En empresas, frecuentemente **el 20% de los clientes produce el 80% de los
ingresos**.
* En software, muchas veces **el 20% de los bugs generan el 80% de los fallos**.
### 🎯 La idea central:
**En casi cualquier área, hay un pequeño conjunto de acciones o factores que
generan la mayor parte de los beneficios o resultados.**
---
# 🧩 Ejemplos reales y prácticos
### 📚 **Aprendizaje**
* De un lenguaje de programación, normalmente **el 20% de las funciones, conceptos
o herramientas se usan en el 80% de los proyectos reales**.
* Ejemplo: En Python, dominar **listas, diccionarios, funciones, loops, módulos
estándar y manejo de archivos** te permite resolver la mayoría de problemas
iniciales.
### **Salud / Fitness**
* El 20% de tus hábitos pueden generar el 80% de tus mejoras.
* Ejemplo: Dormir bien + caminar 30 minutos + comer más proteína → Produce la
mayor parte de tus cambios positivos, incluso sin rutinas complejas.
### **Gestión del tiempo**
* El 20% de tus tareas son las que realmente mueven la aguja en tu progreso.
* Ejemplo: Si quieres ser programador, escribir código todos los días vale mucho
más que ver tutoriales pasivamente.
---
# Cómo aplicar el 80/20 en tu meta de ser Python Junior en 4 semanas
Para lograrlo, debes identificar **cuál es ese 20% “crítico”** que te dará el 80%
de preparación.
## 🔍 El 20% más importante para un Python Junior:
### 1) **Conceptos esenciales de Python**
Lo mínimo indispensable que se usa todo el tiempo:
* Variables y tipos de datos
* Condicionales (`if`)
* Bucles (`for`, `while`)
* Listas, diccionarios, tuplas
* Funciones
* Módulos y paquetes
* Lectura y escritura de archivos
* Manejo de errores básico
Este 20% te prepara para el 80% de las tareas junior.
### 2) **Proyecto práctico (tu 20% de impacto máximo)**
Hacer **1–2 proyectos pequeños** vale más que 20 horas de teoría.
Ejemplos (elige uno):
* Un CRUD simple (crear/leer/actualizar/borrar) usando archivos JSON.
* Un scraper básico con `requests` + `BeautifulSoup`.
* Una pequeña API con **FastAPI**.
* Un sistema de automatización (ej. ordenar archivos, leer facturas, etc.).
### 3) **Práctica de problemas (otro 20% vital)**
Resuelve 5–10 ejercicios diarios en:
* LeetCode (nivel fácil)
* HackerRank
* Codewars
Esto construye la base lógica que piden en entrevistas.
---
# 🧘 Cómo aplicar 80/20 a tus rutinas de salud para potenciar tu aprendizaje
El aprendizaje profundo requiere un cuerpo y mente bien cuidados. Aquí también
funciona Pareto.
## El 20% de hábitos de salud que te dará el 80% de energía y claridad mental
### ✔ 1. Dormir 7–8 horas
El impacto en concentración, memoria y estrés es enorme.
### ✔ 2. Moverte 20–30 minutos diarios
No necesitas gimnasio; caminar o estiramientos es suficiente.
### ✔ 3. Comer proteína en cada comida
Te estabiliza la energía y mejora el estado de ánimo.
### ✔ 4. Bloques de trabajo enfocados (Pomodoro 50/10)
Mejor 2 horas de foco real que 6 horas distraído.
### ✔ 5. Evitar multitarea
Una sola tarea a la vez mejora el rendimiento hasta el 80%.
---
# 📅 Ejemplo de rutina diaria optimizada (80/20)
**Mañana**
* 5 min respiración / despertar suave
* 🚶 20 min caminata
* ☕ Café + desayuno con proteína
* 💻 1 bloque de estudio: Python fundamentals (50 min)
**Tarde**
* 💻 Practicar ejercicios 1 hora
* 💻 Trabajar en tu mini-proyecto 1 hora
* 🧩 Repaso de conceptos
**Noche**
* 🛌 Alejar pantallas 30 min antes
* 📓 Planear el día siguiente
---
# 👉 Si quieres, puedo ayudarte más
Puedo armarte:
* Un plan **día por día** para las 4 semanas.
* Una **lista de ejercicios** clasificados por nivel.
* Una **ruta de aprendizaje 80/20** para Python Junior.
* O puedo ayudarte a elegir un proyecto y guiarte paso a paso.
¿Quieres que te prepare un plan personalizado de 4 semanas?
---
Perfecto. Aquí tienes **todo el plan completo**, estructurado para que en **4
semanas** llegues al nivel necesario para postular a un puesto **Python Junior**,
aplicando el **principio 80/20** para aprender más rápido y con foco.
---
# 🧭 1. Ruta de aprendizaje 80/20 para Python Junior
Esta es la lista **priorizada**, de lo más importante (20% que da 80% de
resultados).
### 📌 Semana 1 — Fundamentos imprescindibles (tu verdadero 20%)
* Sintaxis básica
* Tipos de datos
* Condicionales
* Bucles
* Listas, diccionarios, tuplas
* Funciones
* Módulos
* Manejo de archivos
* Errores y excepciones
* Comprensión de listas
### 📌 Semana 2 — Python aplicado (lo que usan en trabajos reales)
* Librerías estándar: `os`, `json`, `datetime`, `pathlib`
* Requests HTTP (`requests`)
* Web scraping básico
* Entornos virtuales
* Instalación de paquetes (`pip`)
* Introducción a APIs (FastAPI)
### 📌 Semana 3 — Proyecto principal (clave para CV y entrevistas)
* Diseño del proyecto
* Implementación por módulos
* Lectura/escritura de datos
* Lógica principal del sistema
* Validaciones
* Documentación
### 📌 Semana 4 — Preparación para entrevistas
* Estructuras de datos básicas
* Problemas de manipulación de strings y listas
* Preguntas típicas de Python Junior
* Buenas prácticas (PEP8)
* Revisión final + portfolio + CV
---
# 🔥 2. Tu proyecto principal (para CV y GitHub)
## 🧩 Proyecto elegido: **Gestor personal de tareas con API + almacenamiento en
JSON**
Este proyecto demuestra:
* Manejo de archivos
* Manipulación de datos
* FastAPI
* Endpoints REST
* Validación
* Mantenimiento de estado
* Estructura de proyecto profesional
### Características:
* Crear/Leer/Actualizar/Eliminar tareas (CRUD)
* Guardarlas en un archivo `[Link]`
* Exponer endpoints con FastAPI
* Validación de datos de entrada
* Filtros (pendientes/completadas)
* Documentación automática con Swagger
### Tecnologías:
* Python 3.x
* FastAPI
* Uvicorn
* json / pathlib
### Entregables:
* Código en GitHub
* README profesional
* Un video corto mostrando su uso (opcional pero muy útil)
Si quieres, luego te genero toda la estructura base del proyecto y te voy guiando
**paso a paso**.
---
# 🧠 3. Lista de ejercicios clasificados por nivel
### Nivel 1 — Básico (Semana 1)
1. Sumar números de una lista
2. Contar vocales en un string
3. Encontrar el número más grande
4. Filtrar números pares
5. Crear un diccionario con conteo de palabras
6. Calcular promedio
7. Invertir una cadena
8. Crear una función que valide contraseña
9. Simular un cajero básico
10. Leer un archivo y mostrar sus líneas
### Nivel 2 — Intermedio (Semana 2)
1. Consumir una API pública con `requests`
2. Web scraping básico (extraer titulares de una noticia)
3. Validación de emails
4. Conversor de divisas usando una API
5. Mini CRUD usando listas/diccionarios
6. Ordenar tareas por fecha
7. Analizar texto y encontrar palabras más usadas
8. Simular inventario de productos
9. Convertir CSV a JSON
10. Crear decoradores simples
### Nivel 3 — Avanzado / Entrevistas (Semana 4)
1. Two Sum (LeetCode easy)
2. Remove duplicates in list
3. FizzBuzz
4. Valid parentheses
5. Palíndromos
6. Rotar una lista
7. Flatten list
8. Contar elementos únicos
9. Merge two sorted lists
10. Contar frecuencia de caracteres
---
# 📅 4. Plan día por día (4 semanas completas)
---
# 📆 **SEMANA 1 — Fundamentos (Base sólida)**
### **Día 1**
* Instalar Python
* Instalar VSCode
* Escribir tus primeros scripts
* Variables y tipos
### **Día 2**
* Operadores
* Condicionales
* Ejercicios del nivel 1 (1–3)
### **Día 3**
* Bucles for / while
* break / continue
* Ejercicios del nivel 1 (4–6)
### **Día 4**
* Listas y tuplas
* Métodos comunes
* Ejercicios (2–3 del nivel 1)
### **Día 5**
* Diccionarios
* Ejercicios del nivel 1 (del 7 al 10)
### **Día 6**
* Funciones
* Retorno de valores
* Args / kwargs
* Ejercicios libres
### **Día 7 (Repaso)**
* Mini test personal de todo lo aprendido
* Hacer 5 ejercicios nuevos
---
# 📆 **SEMANA 2 — Python aplicado (vida real)**
### **Día 8**
* Módulos
* Librerías estándar: `os`, `json`, `datetime`
### **Día 9**
* Lectura y escritura de archivos
* Manejo de errores
* Crear un mini CRUD en JSON
### **Día 10**
* Uso de APIs con `requests`
* Ejercicio: consultar clima o criptomonedas
### **Día 11**
* Web scraping con BeautifulSoup
* Extraer titulares o precios
### **Día 12**
* Entornos virtuales
* pip
* Instalación de paquetes
### **Día 13**
* Introducción a FastAPI
* Crear tu primer endpoint
### **Día 14 (Repaso + Proyecto)**
* Preparar estructura del proyecto final
* Testear FastAPI localmente
---
# 📆 **SEMANA 3 — Proyecto principal**
### **Día 15**
* Crear estructura:
`app/[Link]`
`app/[Link]`
`data/[Link]`
### **Día 16**
* Crear modelo de tarea
* Crear función para leer/escribir JSON
### **Día 17**
* Endpoint: Crear tarea
* Validaciones
### **Día 18**
* Endpoint: Leer todas las tareas
* Filtros
### **Día 19**
* Endpoint: Actualizar tarea
* Manejo de errores
### **Día 20**
* Endpoint: Eliminar tarea
* Limpieza del código
### **Día 21**
* Documentar proyecto
* Probar con Swagger
* Subir a GitHub
---
# 📆 **SEMANA 4 — Entrevistas / Perfeccionamiento**
### **Día 22**
* Repaso de estructuras de datos
* Ejercicios LeetCode (3)
### **Día 23**
* Práctica de problemas sobre listas y strings
### **Día 24**
* Buenas prácticas: PEP8
* Tipos de errores comunes
### **Día 25**
* Simulación de entrevista técnica
### **Día 26**
* Completar documentación del proyecto
* Crear README profesional
### **Día 27**
* Optimizar CV + LinkedIn
* Preparar carpeta de proyectos
### **Día 28**
* Simular entrevista final
* Ajustes y envío de primeras aplicaciones
---
# 🎯 ¿Qué sigue?
Si quieres, puedo continuar con:
👉 **Generarte la estructura completa del proyecto (carpetas y archivos).**
👉 **Escribir contigo el código paso a paso.**
👉 **Prepararte ejercicios diarios progresivos.**
👉 **Enviarte versiones más detalladas del plan o adaptarlo a tu horario.**
---
Perfecto. Voy a **ajustar todo el plan a 2 horas diarias** y además te prepararé
**ejercicios progresivos para cada día**, de modo que tu avance sea constante,
realista y orientado a tu meta de Python Junior en 4 semanas.
Aquí tienes un **plan diario optimizado 80/20**, con bloques de estudio que caben
exactamente en **2 horas por día**.
---
# 🧭 **Estructura diaria (2 horas exactas)**
Cada día tendrá:
### **Bloque 1 (50 min)** — Aprendizaje guiado
Leer, estudiar, ver ejemplos, practicar conceptos.
### **Descanso (10 min)**
### **Bloque 2 (50 min)** — Ejercicios progresivos
Los ejercicios serán hechos para que **no te frustren**, pero que aún así te
empujen un nivel más arriba.
### **Descanso (10 min opcional)**
O lo usas para repasar.
---
# 📆 **SEMANA 1 — Fundamentos sólidos (bases reales para trabajar)**
---
## 🟦 **Día 1 (2h) — Sintaxis básica + Variables**
**Bloque 1 (50 min)**
* Instalar Python
* Instalar VSCode
* Impresión por pantalla (`print`)
* Variables y tipos de datos básicos
* Conversión de tipos (`int()`, `str()`, etc.)
**Bloque 2 (50 min) — Ejercicios**
1. Crear un script que imprima tu nombre y edad.
2. Sumar dos números ingresados por el usuario.
3. Convertir grados Celsius a Fahrenheit.
4. Determinar el tipo de dato de varias variables.
5. Crear un mini programa que reciba nombre y apellido y muestre ambos juntos.
---
## 🟦 **Día 2 — Operadores + Condicionales**
**Bloque 1**
* Operadores aritméticos
* Operadores lógicos
* `if`, `elif`, `else`
**Bloque 2 — Ejercicios**
1. Comprobar si un número es par o impar.
2. Simular un acceso: si password=="python123".
3. Determinar si una persona es mayor de edad.
4. Convertidor simple de moneda (tasa fija).
5. Identificar si un número es positivo, negativo o cero.
---
## 🟦 **Día 3 — Bucles for/while**
**Bloque 1**
* For
* While
* Break / Continue
* Range()
**Bloque 2 — Ejercicios**
1. Imprimir del 1 al 20.
2. Sumar todos los números de una lista.
3. Crear una tabla de multiplicar.
4. Pedir números al usuario hasta que escriba "salir".
5. Contar cuántas veces aparece una letra en una palabra.
---
## 🟦 **Día 4 — Listas y Tuplas**
**Bloque 1**
* Listas
* Indexación
* Métodos (`append`, `remove`, `sort`, etc.)
**Bloque 2 — Ejercicios**
1. Crear una lista con 5 nombres y mostrar el 1ro y último.
2. Ordenar una lista de números.
3. Contar cuántos elementos tiene una lista.
4. Crear una lista y agregar un elemento.
5. Hacer una lista de tareas simples y mostrar la 2da.
---
## 🟦 **Día 5 — Diccionarios**
**Bloque 1**
* Clave → valor
* Métodos (`keys`, `values`, `items`)
**Bloque 2 — Ejercicios**
1. Crear un diccionario con datos personales.
2. Añadir una llave nueva.
3. Eliminar una llave.
4. Contar palabras en una frase.
5. Diccionario de productos y precios.
---
## 🟦 **Día 6 — Funciones**
**Bloque 1**
* `def`
* Parámetros
* Retorno
* Scope
**Bloque 2 — Ejercicios**
1. Función que sume 2 números.
2. Función que cuente vocales.
3. Función que devuelva si un string es palíndromo.
4. Función que convierta minutos en horas.
5. Función que reciba una lista y devuelva el mayor.
---
## 🟦 **Día 7 (Repaso + Mini test)**
**Bloque 1**
* Repaso rápido de todo
* Mini examen personal (yo te lo puedo armar si quieres)
**Bloque 2 — Ejercicios de integración**
1. Programa que pida nombre, edad, país, devuelva un diccionario con todo.
2. Recorrer el diccionario e imprimir “clave → valor”.
3. Crear función que reciba una lista de números y devuelva pares, impares y suma
total.
4. Crear mini menú (texto) con 3 opciones.
5. Simular un login (3 intentos).
---
# 📆 **SEMANA 2 — Python útil para el mundo real**
---
## 🟧 **Día 8 — Archivos (JSON, TXT)**
**Bloque 1**
* Abrir y leer archivos
* Escribir y sobrescribir
* JSON: `[Link]()` y `[Link]()`
**Bloque 2 — Ejercicios**
1. Leer archivo .txt y mostrar sus líneas.
2. Escribir un archivo con notas del día.
3. Guardar lista en JSON.
4. Leer JSON y convertir a diccionario.
5. Crear CRUD básico en archivo JSON.
---
## 🟧 **Día 9 — Librerías estándar**
**Bloque 1**
* `os`
* `datetime`
* `pathlib`
**Bloque 2 — Ejercicios**
1. Crear carpeta con `[Link]`.
2. Mostrar archivos de un directorio.
3. Obtener fecha/hora actual.
4. Combinar rutas con `pathlib`.
5. Crear registro de actividad con fecha.
---
## 🟧 **Día 10 — Requests (APIs)**
**Bloque 1**
* `[Link]`
* JSON de respuesta
* Errores comunes
**Bloque 2 — Ejercicios**
1. Consultar API de clima.
2. Obtener precio de Bitcoin.
3. Guardar respuesta en JSON local.
4. Filtrar campos específicos.
5. Crear una función que devuelva datos limpios.
---
## 🟧 **Día 11 — Web Scraping**
**Bloque 1**
* Instalar BeautifulSoup
* Obtener HTML
* Extraer texto
**Bloque 2 — Ejercicios**
1. Extraer titulares de un periódico.
2. Obtener precios de productos de ejemplo.
3. Guardar datos en JSON.
4. Extraer enlaces de una página.
5. Crear función “scrape_titulos(url)”.
---
## 🟧 **Día 12 — Entornos virtuales + pip**
**Bloque 1**
* Crear venv
* Activar / desactivar
* Instalar dependencias
**Bloque 2 — Ejercicios**
1. Crear entorno.
2. Instalar `requests`, `bs4`, `fastapi`.
3. Congelar dependencias con `pip freeze`.
4. Crear [Link].
5. Explicar para qué sirve.
---
## 🟧 **Día 13 — FastAPI básicas**
**Bloque 1**
* Instalar FastAPI
* Primer endpoint
* Swagger UI
**Bloque 2 — Ejercicios**
1. GET /saludo
2. GET /suma?a=1&b=2
3. POST /usuario
4. Validar datos de entrada
5. Crear estructura de app básica
---
## 🟧 **Día 14 — Proyecto: estructura inicial**
**Bloque 1**
* Crear carpetas: app/, data/
* Crear [Link]
**Bloque 2 — Ejercicios**
1. Crear `[Link]`.
2. Crear endpoint que lea las tareas.
3. Probar en Swagger.
4. Subir avance a GitHub.
5. Revisar logs de errores.
---
# 📆 **SEMANA 3 — Proyecto real (tu pieza fuerte)**
---
## 🟩 **Día 15 — Modelos**
**Bloque 1**
* Definir estructura de tarea
* Crear funciones de lectura/escritura
**Bloque 2 — Ejercicios**
1. Crear clase Task.
2. Crear función load_tasks().
3. Crear save_tasks().
4. Probar con datos falsos.
5. Verificar que guarda correctamente.
---
## 🟩 **Día 16 — Endpoint crear tarea**
**Bloque 1**
* POST
* Validaciones
**Bloque 2 — Ejercicios**
1. Crear `POST /task`.
2. Validar campos: título, estado, fecha.
3. Guardar en JSON.
4. Probar en Swagger.
5. Manejar errores.
---
## 🟩 **Día 17 — Endpoint obtener tareas**
**Bloque 1**
* GET
* Parámetros opcionales
**Bloque 2 — Ejercicios**
1. `GET /tasks`.
2. Filtro por estado.
3. Ordenar por fecha.
4. Manejar JSON vacío.
5. Probar todo.
---
## 🟩 **Día 18 — Endpoint actualizar**
**Bloque 1**
* PUT
* Validación
**Bloque 2 — Ejercicios**
1. `PUT /task/{id}`
2. Validar id correcto
3. Actualizar campos
4. Guardar
5. Probar errores
---
## 🟩 **Día 19 — Endpoint eliminar**
**Bloque 1**
* DELETE
* Manejo de errores
**Bloque 2 — Ejercicios**
1. `DELETE /task/{id}`
2. Validar id
3. Actualizar JSON
4. Probar en Swagger
5. Hacer pruebas por ID inexistente
---
## 🟩 **Día 20 — Limpieza de código**
**Bloque 1**
* Refactor
* Separar módulos
**Bloque 2 — Ejercicios**
1. Mover lógica a [Link]
2. Crear carpeta routers/
3. Mejorar modelos
4. Documentar funciones
5. Probar todo de nuevo
---
## 🟩 **Día 21 — Subir versión final a GitHub**
**Bloque 1**
* Crear README
* Explicar endpoints
* Capturas
**Bloque 2 — Ejercicios**
1. Subir repo.
2. Crear tags.
3. Probar clonarlo en otra carpeta.
4. Ejecutar desde cero.
5. Revisar que todo funcione.
---
# 📆 **SEMANA 4 — Nivel Junior + Entrevistas**
---
## 🟪 **Día 22 — Estructuras de datos**
**Bloque 1**
* Listas
* Diccionarios
* Tuplas
* Sets
**Bloque 2 — Ejercicios**
1. FizzBuzz
2. Two Sum (fácil)
3. Contar frecuencia de caracteres
4. Palíndromos
5. Invertir lista
---
## 🟪 **Día 23 — Lógica y entrevistas**
**Bloque 1**
* Buenas prácticas
* Errores comunes
**Bloque 2 — Ejercicios**
1. Valid parentheses
2. Merge two sorted lists
3. Rotar lista
4. Eliminar duplicados
5. Flatten list
---
## 🟪 **Día 24 — PEP8 + Limpieza**
**Bloque 1**
* Reglas PEP8
* Nombrado
* Comentarios
**Bloque 2 — Ejercicios**
1. Detectar errores en un código sucio.
2. Reescribirlo elegante.
3. Crear script con logs.
4. Añadir typing hints.
5. Escribir docstrings.
---
## 🟪 **Día 25 — Simulación de entrevista técnica**
**Bloque 1**
* Preguntas teóricas
* Yo te puedo simular una entrevista
**Bloque 2 — Ejercicios**
1. 10 preguntas rápidas de Python
2. Resolver 2 ejercicios en vivo
3. Explicar tu proyecto
4. Hacer preguntas al entrevistador
5. Feedback
---
## 🟪 **Día 26 — Portafolio + CV**
**Bloque 1**
* Actualizar proyectos
* Organizar repos
**Bloque 2 — Ejercicios**
1. Crear README de portafolio
2. Incluir links
3. Agregar capturas
4. Ordenar repos
5. Revisar que el proyecto funcione desde cero
---
## 🟪 **Día 27 — LinkedIn + Perfil profesional**
**Bloque 1**
* Optimización de perfil
* Título profesional
**Bloque 2 — Ejercicios**
1. Publicar tu proyecto
2. Escribir post corto
3. Conectar con reclutadores
4. Activar alertas
5. Buscar 10 ofertas Junior
---
## 🟪 **Día 28 — Aplicaciones + Cierre**
**Bloque 1**
* Simulación final
* Revisión de CV
**Bloque 2 — Ejercicios**
1. Aplicar a 5 ofertas reales
2. Enviar mensaje a reclutadores
3. Preparar speech de presentación
4. Mejorar README si es necesario
5. Trazar metas del siguiente mes
---
# 🎯 ¿Qué sigue?
Puedo hacer cualquiera de estas cosas si quieres:
👉 Generarte el **código completo del proyecto base**.
👉 Simular entrevistas contigo.
👉 Crear una **versión imprimible del calendario**.
👉 Prepararte un **cuaderno de ejercicios diario descargable**.
👉 Ajustar esto según tu horario exacto.
¿Quieres que empecemos ya con la **creación de la estructura del proyecto**?
---
¡Perfecto! Te preparo un **cuaderno de ejercicios diario** en formato **PDF-ready**
(lista en Markdown para que puedas copiar y exportar fácilmente desde cualquier
editor a PDF**).
Está organizado **día por día (28 días)**, con **2 horas de trabajo**, ejercicios
progresivos y espacio para respuestas.
Puedes copiar este contenido en:
* Google Docs → “Archivo > Descargar > PDF”
* Notion → Exportar PDF
* Word → Guardar como PDF
* VSCode con extensión Markdown PDF
---
# 📘 **CUADERNO DE EJERCICIOS — 4 Semanas (2h por día)**
**Ruta Python Junior — Método 80/20**
---
# 🟦 **SEMANA 1 — Fundamentos de Python**
---
## **Día 1 — Sintaxis + Variables**
**Ejercicios**
1. Imprime tu nombre, edad y país.
2. Suma dos números ingresados por teclado.
3. Convierte grados Celsius a Fahrenheit.
4. Muestra el tipo de dato de: `"42"`, `3.14`, `True`.
5. Concatenar nombre + apellido en un mensaje.
**Notas personales:**
```
```
---
## **Día 2 — Operadores + Condicionales**
**Ejercicios**
1. Verifica si un número es par o impar.
2. Login simple: contraseña = "python123".
3. Compara dos números e imprime cuál es mayor.
4. Conversor de USD → ARS con una tasa fija.
5. Clasifica un número en positivo/negativo/cero.
**Notas:**
```
```
---
## **Día 3 — Bucles**
**Ejercicios**
1. Imprime los números del 1 al 20.
2. Suma los elementos de una lista.
3. Tabla de multiplicar del 7.
4. Pide números hasta teclear “salir”.
5. Cuenta cuántas veces aparece una letra en una palabra.
**Notas:**
```
```
---
## **Día 4 — Listas + Tuplas**
**Ejercicios**
1. Crea una lista con 5 nombres y muestra el primero y último.
2. Ordena una lista de números (ascendente).
3. Cuenta elementos de una lista.
4. Agrega un elemento a una lista.
5. Recibe una lista de tareas y muestra la segunda.
**Notas:**
```
```
---
## **Día 5 — Diccionarios**
**Ejercicios**
1. Crear diccionario con nombre, edad y país.
2. Añadir la clave “email”.
3. Eliminar “edad”.
4. Contador de palabras en una frase.
5. Diccionario: producto → precio.
**Notas:**
```
```
---
## **Día 6 — Funciones**
**Ejercicios**
1. Función que sume 2 números.
2. Función que cuente vocales.
3. Función que diga si un texto es palíndromo.
4. Convertir minutos en horas.
5. Función que devuelva el número mayor en una lista.
**Notas:**
```
```
---
## **Día 7 — Integración**
**Ejercicios**
1. Crea programa interactivo que devuelva un diccionario con datos personales.
2. Imprime “clave → valor” recorriendo ese diccionario.
3. Función que tome una lista y devuelva pares, impares y suma.
4. Mini menú con 3 opciones.
5. Login con 3 intentos.
**Notas:**
```
```
---
# 🟧 **SEMANA 2 — Python aplicado**
---
## **Día 8 — Archivos (TXT y JSON)**
**Ejercicios**
1. Leer archivo .txt y mostrarlo.
2. Escribir un archivo “[Link]”.
3. Guardar una lista en JSON.
4. Cargar un archivo JSON.
5. CRUD simple usando JSON.
**Notas:**
```
```
---
## **Día 9 — Librerías estándar**
**Ejercicios**
1. Crear carpeta con `[Link]()`.
2. Listar archivos del directorio actual.
3. Mostrar fecha/hora actual.
4. Usar `pathlib` para unir rutas.
5. Log con fecha y acción en texto.
**Notas:**
```
```
---
## **Día 10 — APIs con Requests**
**Ejercicios**
1. Consumir API del clima.
2. Obtener precio de Bitcoin.
3. Guardar respuesta en JSON.
4. Filtrar campos relevantes.
5. Crear función `obtener_clima(ciudad)`.
**Notas:**
```
```
---
## **Día 11 — Web Scraping**
**Ejercicios**
1. Extraer titulares de un periódico digital.
2. Extraer precios de un producto cualquier.
3. Guardar resultados en JSON.
4. Extraer todos los enlaces de una página.
5. Función `scrape_titulos(url)`.
**Notas:**
```
```
---
## **Día 12 — venv + pip**
**Ejercicios**
1. Crear entorno virtual.
2. Activarlo y desactivarlo.
3. Instalar requests, bs4, fastapi.
4. Crear [Link].
5. Explicar para qué sirve.
**Notas:**
```
```
---
## **Día 13 — FastAPI básico**
**Ejercicios**
1. Crear endpoint GET /saludo.
2. Endpoint GET /suma?a=1&b=2.
3. Endpoint POST /usuario.
4. Validación de datos.
5. Ver endpoints en Swagger.
**Notas:**
```
```
---
## **Día 14 — Proyecto: Estructura**
**Ejercicios**
1. Crear carpetas: app/, data/.
2. Crear [Link].
3. Crear endpoint que lea tareas.
4. Probar en Swagger.
5. Subir avance a GitHub.
**Notas:**
```
```
---
# 🟩 **SEMANA 3 — Proyecto profesional (CRUD FastAPI)**
---
## **Día 15 — Modelos**
**Ejercicios**
1. Crear clase Task o modelo Pydantic.
2. Función load_tasks().
3. Función save_tasks().
4. Probar guardar y cargar datos.
5. Validar estructura.
---
## **Día 16 — POST crear tarea**
**Ejercicios**
1. Crear `POST /task`.
2. Validar campos.
3. Guardar en JSON.
4. Manejar errores.
5. Probar en Swagger.
---
## **Día 17 — GET obtener tareas**
**Ejercicios**
1. `GET /tasks`.
2. Filtro por estado.
3. Orden por fecha.
4. Manejo de JSON vacío.
5. Test con datos reales.
---
## **Día 18 — PUT actualizar tarea**
**Ejercicios**
1. `PUT /task/{id}`
2. Validar ID
3. Actualizar campos
4. Guardar
5. Probar errores
---
## **Día 19 — DELETE eliminar tarea**
**Ejercicios**
1. `DELETE /task/{id}`
2. Validar ID
3. Actualizar JSON
4. Probar en Swagger
5. Manejar “ID no existe”
---
## **Día 20 — Refactor + limpieza**
**Ejercicios**
1. Separar routers
2. Mover lógica a [Link]
3. Añadir docstrings
4. Mejorar modelos
5. Probar todo de nuevo
---
## **Día 21 — Documentación + GitHub**
**Ejercicios**
1. Escribir README profesional
2. Agregar capturas
3. Subir repo final
4. Testear clonando
5. Revisar todo
---
# 🟪 **SEMANA 4 — Nivel Junior + Entrevistas**
---
## **Día 22 — Estructuras de datos**
**Ejercicios**
1. FizzBuzz
2. Two Sum
3. Contar caracteres
4. Palíndromos
5. Invertir lista
---
## **Día 23 — Lógica + resolución**
**Ejercicios**
1. Valid parentheses
2. Merge sorted lists
3. Rotar lista
4. Eliminar duplicados
5. Flatten lista
---
## **Día 24 — PEP8**
**Ejercicios**
1. Detectar errores en un código.
2. Reescribir con PEP8.
3. Añadir typing.
4. Crear archivo con logs.
5. Documentar funciones.
---
## **Día 25 — Simulación de entrevista**
**Ejercicios**
1. 10 preguntas de Python (las preparo si quieres).
2. Resolver 2 ejercicios.
3. Explicar tu proyecto.
4. Hacer preguntas inteligentes.
5. Feedback escrito.
---
## **Día 26 — Portfolio + CV**
**Ejercicios**
1. Organizar repos.
2. Crear README del portfolio.
3. Adjuntar capturas.
4. Explicar tecnologías usadas.
5. Validar que proyecto corre desde cero.
---
## **Día 27 — LinkedIn**
**Ejercicios**
1. Actualizar titular.
2. Publicar sobre tu proyecto.
3. Conectar con recruiters.
4. Enviar mensajes.
5. Guardar ofertas.
---
## **Día 28 — Aplicaciones reales**
**Ejercicios**
1. Aplicar a 5 vacantes.
2. Enviar mensaje a reclutador.
3. Practicar entrevista final.
4. Ensayar intro profesional.
5. Plan de crecimiento 30 días.
---
# 📥 ¿Quieres que te genere ahora un **PDF listo** con este cuaderno?