Curso práctico de Python orientado a desarrolladores con experiencia en C# y .NET. Cada módulo establece puentes explícitos entre los conceptos que ya conoces y su equivalente en Python.
- Experiencia en C# y .NET (cualquier versión)
- Conocimientos básicos de POO
- Familiaridad con la línea de comandos
Instala uv (gestor de paquetes moderno, equivalente al dotnet CLI):
# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Crea el entorno virtual del curso:
uv venvActívalo según tu sistema operativo:
# Windows (PowerShell)
.venv\Scripts\Activate.ps1:: Windows (cmd)
.venv\Scripts\activate.bat# Linux / macOS
source .venv/bin/activateflowchart LR
A[Clonar repositorio] --> B[Instalar uv]
B --> C[Crear entorno virtual<br/>uv venv]
C --> D{Activar venv}
D --> E[Windows PowerShell<br/>.venv\Scripts\Activate.ps1]
D --> F[Windows cmd<br/>.venv\Scripts\activate.bat]
D --> G[Linux/macOS<br/>source .venv/bin/activate]
G --> H[Instalar dependencias dev<br/>uv sync --group dev]
F --> H
E --> H
H --> I[Ejecutar ruff / pytest / mypy]
| Módulo | Tema | Equivalente C# |
|---|---|---|
| 01 | Fundamentos | Variables, tipos, control de flujo |
| 02 | Estructuras de datos | Colecciones, LINQ |
| 03 | Funciones avanzadas | Delegates, Func, lambdas |
| 04 | POO | Clases, interfaces, herencia |
| 05 | Archivos y serialización | Streams, System.Text.Json |
| 06 | Async/await | Task, async/await en .NET |
| 07 | Testing con pytest | xUnit, NUnit, Moq |
| 08 | Packaging y distribución | NuGet, dotnet publish |
A lo largo del curso construirás una CLI de análisis de logs que lee ficheros de log, los parsea, filtra y genera un resumen. Cada módulo añade funcionalidad nueva usando los conceptos aprendidos.
- 🔵 C# — bloque de código equivalente en C#
- 🐍 Python — bloque de código Python
⚠️ Trampa común — diferencia que suele confundir a devs C#- ✅ Ejercicio — práctica propuesta
¡Las contribuciones son bienvenidas! Para mantener la calidad del material, todo cambio debe llegar a main a través de una Pull Request — los pushes directos están desactivados.
- Haz fork del repositorio
- Crea una rama descriptiva desde
main:git checkout -b fix/modulo-03-typo # o git checkout -b feat/modulo-05-nuevo-ejercicio - Realiza tus cambios y escribe un commit claro
- Abre una Pull Request hacia
maincon una descripción del cambio - Espera la revisión antes del merge
- 🐛 Correcciones de errores en el código de los ejemplos
- 📝 Mejoras en las explicaciones o comparativas C#/Python
- ➕ Nuevos ejercicios o soluciones alternativas
- 🌐 Traducciones (si el curso se expande a otros idiomas)
| Prefijo | Uso |
|---|---|
fix/ |
Correcciones de errores o typos |
feat/ |
Nuevo contenido o ejercicios |
docs/ |
Cambios solo en documentación |
refactor/ |
Reorganización sin cambio de contenido |
Este repositorio combina código y material docente, cada uno con su licencia:
- Código (ejercicios, soluciones, proyecto hilo) — MIT.
- Contenido (READMEs, explicaciones) — CC BY 4.0.
Puedes reutilizar y adaptar el material citando la fuente.