Una vez que hayas implementado tu primer ejercicio de concepto, los siguientes deberían construirse sobre él.
Nos gusta tener entre tres y cinco ejercicios que no tengan más requisito previo que el concepto basics.
Buenas opciones son los primitivos básicos o los tipos de datos de tu lenguaje. Por ejemplo, valores Boolean, tipos numéricos básicos, strings y átomos.
Merece la pena echar un vistazo a los ejercicios de concepto de otros tracks para ver si hay alguno que encaje en el tuyo.
Ten en cuenta que introducir un concepto no significa que tengas que explicarlo en todo su esplendor. Siempre puedes aplazar la complejidad. Puede que el lenguaje tenga una docena de tipos numéricos distintos que resulten útiles en escenarios diferentes. El ejercicio puede limitarse a mencionar que hay otros, mientras introduce solo el tipo entero más habitual y el tipo de coma flotante más habitual.
Algunos tipos de datos básicos son demasiado complejos para introducirlos directamente. Por ejemplo, los strings podrían ser arrays de caracteres. En ese caso tendrías que aplazar la introducción de los strings y diseñar un ejercicio de concepto para los caracteres y otro para los arrays. Después puedes añadir un ejercicio para los strings que tenga esos dos ejercicios como requisitos previos.
A veces, mientras trabajas en un ejercicio, te darás cuenta de que es más complejo de lo que esperabas.
No pasa nada.
Anota el concepto que hay que enseñar como requisito previo.
Luego imagina que ese ejercicio ya existe y termina el ejercicio en el que estás trabajando con esa simplificación en mente.
Después, vuelve atrás y crea un nuevo ejercicio para el concepto que es requisito previo.
Recuerda marcar el ejercicio como wip hasta que hayas añadido el ejercicio que es requisito previo.
Otra cosa que puede pasar en este punto es que descubras que tienes dependencias cíclicas. Necesitas introducir dos conceptos, pero cada uno depende del otro. En ese caso, puede que puedas usar un stub. Entonces puedes explicar que el concepto dependiente existe, pero tranquilizarlos diciéndoles que todavía no necesitan entenderlo. Otra opción sería dar un mínimo de introducción, lo justo para que el estudiante supere el obstáculo, y asegurar que el concepto se tratará con más profundidad más adelante.
Si decides no implementar un ejercicio porque no encaja en tu track (por ejemplo, un ejercicio de bajo nivel para un track de alto nivel), márcalo como foregone.
Para ello, añade el slug del ejercicio al array exercises.foregone del fichero config.json de tu track.
Además de dejar explícita tu decisión de no implementar un ejercicio, cualquier herramienta (como configlet) también ignorará los ejercicios descartados.
Para más información, consulta la documentación.