Contenido del curso
Ethereum Fundamentals
Week 1: Kick off the program
Week 2: Smart Contracts: Upgradables with Oracles
Week 3: Ethereum Virtual Machine
Week 4: Mastering Solidity
Week 5: QA Solidity
Week 6: Descentralized applications
Week 7: Fleek and Pocket
Week 8: MakerDAO
Week 9: Push Notifications
Week 10: IPFS and ENS
Week 11: layer 2
Week 12: Modular Blockchains
Week 13: Zero Knowledge
Week 14: Community projects
Contenido complementario
Manejo de memoria antes de programar en Web3
Resumen
Antes de escribir tu primer smart contract, necesitas dominar algo más profundo: el manejo de memoria en Web3 y la lógica que sostiene cada transacción. En esta sesión del Ethereum Developer Program, Ana Belisa Martínez explica por qué optimizar recursos es la habilidad que más buscan los reclutadores de blockchain y cómo prepararte para construir, no especular.
¿Por qué el manejo de memoria es crítico en Web3?
En Web2 puedes permitirte un script que tarda un segundo extra o una variable global mal usada. En Web3 ese descuido cuesta dinero real y datos sensibles que no se recuperan. Y aquí viene lo interesante: los reclutadores en blockchain prefieren perfiles con background en ingeniería eléctrica, porque están entrenados para trabajar con recursos limitados [3:30].
La razón es simple. En computación tradicional el recurso se extiende, cometes errores y reinicias. En electrónica no. Web3 mezcla ambos mundos: usas JavaScript y React como en Web2, pero piensas en optimización como si cada slot de memoria fuera oro.
¿Qué es el manejo de memoria? Es el proceso para controlar correctamente los espacios necesarios para el sistema operativo, aplicaciones y procesos activos. Ocurre a nivel de hardware (RAM, caché), a nivel de sistema operativo (disco duro priorizando tareas) y a nivel de programas (controlado por la aplicación que escribes).
¿Cómo se asignan los espacios en memoria?
Imagina los slots como una hilera de círculos que se ocupan y liberan constantemente. Cada vez que declaras una variable global, abres un ciclo o defines una estructura de datos, estás reservando uno de esos espacios. Si lo haces mal en Web2, tu app va lenta. Si lo haces mal en un smart contract, la transacción se rompe y el usuario pierde gas.
¿Qué relación hay entre pensamiento lógico y optimización de recursos?
El pensamiento lógico no es un adorno académico. Es la herramienta que te permite construir flujos de trabajo que aprovechan al máximo lo que tienes. Ana lo explica con un ejemplo cotidiano: ir de tu casa a la escuela [22:00].
Puedes llegar en bici, autobús o taxi. Todas las opciones funcionan, pero solo una optimiza tu presupuesto, tiempo y energía. La mejor solución no es la más larga ni la más bonita: es la que usa menos estructuras de control y mejor el almacenamiento.
Esto aplica idéntico cuando diseñas una base de datos, un algoritmo o un contrato inteligente. Antes de teclear, pregúntate: ¿qué recursos tengo, qué necesito devolver y cuál es el camino más corto entre ambos?
¿Cómo entreno mi pensamiento lógico antes de tocar Solidity?
La primera tarea de Ana es construir el flujo de procesos de un elevador optimizando recursos. El truco está en hacerlo varias veces:
- Primero, como se te ocurra. Saldrá funcional pero ineficiente.
- Segundo, identifica qué ciclos puedes reemplazar por condicionales.
- Tercero, evalúa si una decisión por default ahorra pasos.
Un elevador que para en cada piso funciona, pero desperdicia energía y tiempo. Uno que prioriza la cola de peticiones según dirección de movimiento usa los mismos recursos físicos con resultados muy distintos.
¿Qué pasa si una transacción en blockchain se rompe a mitad de camino?
Una transacción en blockchain sigue un flujo claro: se crea el request, se empaqueta en un bloque, se envía a cada nodo de la red, se valida, se genera la prueba de trabajo (proof of work) y se completa [38:00]. Si ese proceso se rompe en el tercer paso, no es como recargar una página web. Hay implicaciones de datos, de gas y de estado de la red.
¿Qué es un smart contract en términos de memoria? Es un programa que depende del uso correcto de la memoria para ejecutar sus instrucciones. No está pegado físicamente a la RAM, pero su rendimiento, velocidad y seguridad dependen de qué tan bien manejes los recursos en su lógica.
Conceptos que debes dominar antes de programar
La segunda tarea es convertir en palabras clave todo lo que no entiendas de ese flujo de transacción. Ana propone definir en formato tuit estos términos:
- Escalabilidad: capacidad de un sistema de crecer sin perder rendimiento.
- Optimización: usar lo mínimo necesario para obtener el mejor resultado.
- Proceso: secuencia de instrucciones con un objetivo definido.
- Sistema: conjunto de procesos conectados que forman un ecosistema.
- Operación: acción concreta dentro de un proceso, con entradas y salidas.
Si puedes explicar cada uno en pocos caracteres, lo entendiste de verdad.
¿Por qué Web3 exige menos código pero más arquitectura?
Un dato que cambia la perspectiva: plataformas como Uniswap tienen alrededor de 500 líneas de código en su core y un equipo de 100 desarrolladores [1:18:00]. Compáralo con proyectos Web2 que manejan miles de líneas y equipos de más de 500 personas. La diferencia no es productividad: es densidad lógica.
Hoy existen aproximadamente 150.000 blockchain developers activos en el mundo construyendo en Web3. El campo está abierto, pero la barrera de entrada no es la sintaxis de Solidity. Es la capacidad de pensar en optimización antes de tipear.
Ana lo cierra con un consejo que vale repetir: cuando puedes enseñar un concepto, es porque ya lo dominas. Comparte tus diagramas de flujo, debate las definiciones con tus compañeros y autoevalúa tu aprendizaje explicándolo en voz alta.
¿Ya hiciste el diagrama del elevador? Déjalo en los comentarios junto con tu definición favorita de optimización y comenta el de alguien más.