Filosofía del aprendizaje

Empecé el 20 de febrero de 2026, a los 39 años, sin bootcamp ni carrera de informática. Mi única certeza: la consistencia vale más que el talento. Cada día avanzo paso a paso, con una hora por la mañana antes del trabajo. Mi lema es "Logic is my superpower. Syntax is just the tool".

Para mí, aprender de verdad no es saber algo de memoria. Es entenderlo. Cuando algo no me queda claro, me lío. Y cuando me lío, lo desgloso paso a paso hasta que mi mente hace clic. Documento cada error, no solo el fix. Así construyo memoria real.

Mi símbolo es el Fénix: si me caigo, resurjo de mis cenizas. Mi frase: "Eso que no me mata, me hace más fuerte". Por eso llevo un diario público: para que quede constancia de que esto está pasando de verdad, con días buenos y días en blanco.

// Mi mental model cuando algo no funciona
if (algo_no_entiendo) {
desglosar_paso_a_paso();
documentar_error();
no_rendirse();
}
Dev Log 365

El Dev Log 365 es mi diario público de aprendizaje. Arrancó el 20 de febrero de 2026 y ya llevo 26 sesiones documentadas. Cada entrada es un testigo de que estoy aquí todos los días, construyéndome. Sin filtros: errores incluidos, días malos incluidos, dudas incluidas.

Cada entrada tiene tres capas. La técnica: el error con causa, síntoma y fix. La empatía: quién hay detrás de lo que construyo. No un algoritmo. La vulnerabilidad honesta: cómo me sentí. "Menuda guerra me está dando", "me quedo en blanco", "esto no ha podido conmigo".

El formato sigue STAR (Situación, Tarea, Acción, Resultado), debug log, victorias, código del día, mental model y next target. Así cada sesión deja una huella clara. Algunos hitos recientes: el motor de EquiShift validando 104 fines de semana, MiniShop JS con 6 bugs documentados, y el día que entendí arrow functions después de 5 intentos fallidos.

<article class="entry">
<h2>TruncateString me tuvo seis intentos</h2>
<p>Menuda guerra me estuvo dando...</p>
</article>
Stack técnico y progreso

Mi stack base: HTML5, CSS3 y JavaScript. Niveles honestos: Flexbox 90%, Responsive Design 80%, CSS & Grid 70%, JavaScript 60%, OOP/Clases 60%, Algoritmos 50%. Prefiero decir la verdad siempre.

Certificaciones oficiales: Meta Programming with JavaScript (Coursera, marzo 2026), freeCodeCamp Responsive Web Design, freeCodeCamp JavaScript Algorithms. Actualmente curso el Meta Front-End Developer Professional Certificate.

Proyectos que avalan mi aprendizaje: Campus & Crema (cafetería universitaria con Flexbox y responsive), Mangata & Gallo (microinteracciones y tipografía), We Playing Cards (lógica de cartas con máquina de estados), MiniShop JS (POO con clases, reduce y filter), y EquiShift Málaga (algoritmo de rotación real).

function esTurnoLegal(turnoAyer, turnoHoy) {
if (turnoAyer === "descanso") return true;
if (turnoAyer === "tarde" && turnoHoy === "mañana") return false;
if (turnoAyer === "noche" && (turnoHoy === "mañana" || turnoHoy === "tarde")) return false;
return true;
}
EquiShift Málaga

EquiShift no es un proyecto de portfolio. Es una deuda pendiente. Diego descansó el 70% de los fines de semana disponibles un año. los otros 4, el 30 por ciento restante.

El sistema intentara resolver la rotación de turnos para plantilla de hotel: 5 trabajadores, 3 turnos diarios (mañana, tarde, noche) más descanso, con mínimo 16 horas de descanso entre turnos. El algoritmo es modular y garantiza equidad matemática. Soporta contratos mixtos (37.5h y 40h) con saldo individual, y ya valida los 104 fines de semana de 2026 con un dataset completo de festivos de Málaga.

Cuando funcione con datos reales en el hotel, con Diego, Salvador, Miguel y Rafa, ese será el momento que hará que todo valga la pena. Mientras tanto, sigo desarrollando el motor paso a paso.

// Cálculo de fines de semana 2026
let findeSemana = 0;
for (let i = 1; i <= 365; i++) {
if (i % 7 === 3 || i % 7 === 4) findeSemana += 1;
}
console.log(findeSemana); // 104 ✅
Herramientas y método

Trabajo con VS Code, Git y GitHub. Despliego en GitHub Pages. Mi método es sencillo: una hora por la mañana antes del trabajo, cuando la cabeza está fresca. Ahí aprovecho para estudiar, escribir código o documentar en el diario. Los fines de semana, si el cuadrante lo permite, le meto más horas.

Cuando me enfrento a un bug, no me quedo atascado. Lo desgloso paso a paso: primero escribo qué quería que pasara, luego qué está pasando en realidad. Pruebo una cosa, luego otra. Documento cada intento. Al final, cuando encuentro el fix, anoto la lección. Así la próxima vez que me líe, tengo memoria.

Mi mayor miedo es que cuando llegue la oportunidad no esté preparado. Por eso no paro hasta que entiendo de verdad. Cada día, aunque avance poco, avanzo.

// Debug log real (MiniShop JS)
// Bug: this.name devolvía undefined
// Causa: parámetro del constructor con nombre distinto a la propiedad
// Fix: unificar el nombre del parámetro y la propiedad