https://github.com/valentinocarmonas/rutinadelprogramador
En este repositorio guardo todos los ejercicios personales que hago.
https://github.com/valentinocarmonas/rutinadelprogramador
ci java junit leetcode-java leetcode-solutions practice practice-programming
Last synced: about 2 months ago
JSON representation
En este repositorio guardo todos los ejercicios personales que hago.
- Host: GitHub
- URL: https://github.com/valentinocarmonas/rutinadelprogramador
- Owner: ValentinoCarmonaS
- License: mit
- Created: 2025-07-31T23:45:22.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-08-17T15:45:21.000Z (about 2 months ago)
- Last Synced: 2025-08-17T17:28:23.321Z (about 2 months ago)
- Topics: ci, java, junit, leetcode-java, leetcode-solutions, practice, practice-programming
- Language: Java
- Homepage:
- Size: 588 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Rutina del Programador
**Frecuencia**: 5 días a la semana (Lunes a Viernes), con fines de semana para repasar o descansar.
**Duración por sesión**: 1.5 - 2.5 horas (adaptable a tu tiempo).### Warm-up (Calentamiento - 10-15 minutos diarios)
- **1 problema fácil de Arrays o Strings**: Para activar la mente y refrescar los conceptos básicos. Cada sesión comenzará con esto.
---
### **Día 1: Arrays y Tablas Hash (Fundamentos Sólidos)**
- **Bloque 1: Arrays (2-3 ejercicios)**
- **Ejercicios**: Problemas de búsqueda (¿existe un elemento?), manipulación básica (invertir un sub-array), o encontrar duplicados.
- **"Sets & Reps"**: Intentare una solución, luego se optimízara. Si no sale, se revisa el porque o la solución y se vuelve a intentar.
- **Bloque 2: Hash Tables (1-2 ejercicios)**
- **Ejercicios**: Problemas como "Two Sum" (si no lo has hecho), conteo de frecuencias de caracteres/números, o encontrar elementos únicos.
- **"Sets & Reps"**: en la eficiencia de la tabla hash para reducir la complejidad de tiempo.### **Día 2: Cadenas y Punteros (Manipulación Eficiente)**
- **Bloque 1: Strings (2-3 ejercicios)**
- **Ejercicios**: Palíndromos, inversión de palabras en una cadena, validación de formatos (ej. paréntesis).
- **"Sets & Reps"**: Presta atención a la inmutabilidad de las cadenas en Java y cómo manipularlas eficientemente.
- **Bloque 2: Two Pointers (1-2 ejercicios)**
- **Ejercicios**: Problemas en arrays ordenados (encontrar pares con una suma, eliminar duplicados).
- **"Sets & Reps"**: El objetivo es dominar esta técnica para resolver problemas en O(n) tiempo.### **Día 3: Ordenamiento y Búsqueda Binaria (Optimización)**
- **Bloque 1: Sorting (1-2 ejercicios)**
- **Ejercicios**: No necesitas implementar algoritmos de ordenamiento complejos, sino usarlos. Por ejemplo, problemas que requieren ordenar un array o una lista de objetos para luego procesarlos.
- **"Sets & Reps"**: Entiende cuándo usar `Arrays.sort()` o `Collections.sort()` y sus complejidades.
- **Bloque 2: Binary Search (2-3 ejercicios)**
- **Ejercicios**: Búsqueda en arrays ordenados (el elemento exacto, el primer/último elemento de un valor, un elemento en un array rotado).
- **"Sets & Reps"**: La precisión en los límites (`low`, `high`, `mid`) es clave. ¡Practica el шаблон!### **Día 4: Listas Enlazadas y Pilas/Colas (Estructuras Dinámicas)**
- **Bloque 1: Linked List (1-2 ejercicios)**
- **Ejercicios**: Invertir una lista enlazada, detectar ciclos, eliminar un nodo.
- **"Sets & Reps"**: Enfócate en la manipulación de punteros (`next`). Dibujar la lista es muy útil.
- **Bloque 2: Stack & Queue (2-3 ejercicios)**
- **Ejercicios**: Validar paréntesis (usando Stack), implementar una cola con dos pilas, o problemas de "primer entrado, primer salido" con colas.
- **"Sets & Reps"**: Piensa en los escenarios donde LIFO o FIFO son apropiados.### **Día 5: Introducción a Árboles (Jerarquías)**
- **Bloque 1: Binary Tree (2-3 ejercicios)**
- **Ejercicios**: Recorridos (Inorder, Preorder, Postorder - implementa uno o dos), encontrar la altura de un árbol, contar nodos.
- **"Sets & Reps"**: Recursión es tu mejor amigo aquí. Entender cómo funciona la llamada de pila para cada recorrido.
- **Bloque 2: Binary Search Tree (1 ejercicio)**
- **Ejercicios**: Buscar un valor, insertar un nodo, validar si un árbol es un BST.
- **"Sets & Reps"**: Aprovecha la propiedad de los BST para hacer búsquedas eficientes.---
### **Fin de Semana: Descanso Activo / Repaso / Desafío**
- **Día de Repaso**: Vuelve a intentar ejercicios que te costaron durante la semana sin mirar la solución. Consolida conceptos.
- **Día de Desafío**: Intenta un problema de dificultad media-difícil de alguna de las categorías que ya manejas, o uno de los algoritmos de búsqueda como DFS/BFS para grafos.
- **Descanso**: ¡Tan importante como el ejercicio! Desconecta para recargar energías.---
### Progresión Semanal (Después de 2-3 semanas con esta rutina)
Una vez que te sientas cómodo con las secciones anteriores, puedes empezar a integrar gradualmente más ejercicios de:
- **DFS (Depth-First Search)** y **BFS (Breadth-First Search)**: Empieza con ejercicios en árboles, luego en grafos simples.
- **Graphs**: Problemas básicos de conectividad o encontrar caminos.
- **Heap (Priority Queue)**: Problemas donde necesites gestionar elementos con prioridades.
- **Dynamic Programming**: Empieza con los problemas "introductorios" de DP, que a menudo son los más desafiantes al principio pero muy gratificantes.