Depois de implementar seu primeiro exercício de conceito, os próximos exercícios devem se basear nele.
Gostamos de ter de três a cinco exercícios que não tenham nenhum pré-requisito além do conceito basics.
Boas opções são as primitivas ou os tipos de dados centrais da sua linguagem. Por exemplo: booleans, tipos numéricos básicos, strings e átomos.
Vale a pena conferir os exercícios de conceito de outras trilhas para ver se há algum adequado para a sua trilha.
Repare que introduzir um conceito não significa que você precise explicá-lo em todos os seus detalhes. Você sempre pode adiar a complexidade. A linguagem pode ter uma dúzia de tipos numéricos diferentes, úteis em cenários distintos. O exercício pode simplesmente mencionar que existem outros, introduzindo apenas o tipo inteiro mais usado e o tipo de ponto flutuante mais usado.
Alguns tipos de dados centrais são complexos demais para serem introduzidos de imediato. Por exemplo, strings podem ser listas de caracteres. Nesse caso, você precisaria adiar a introdução de strings e criar um exercício de conceito para caracteres e outro para listas. Depois, você pode adicionar um exercício de strings que tenha esses dois exercícios como pré-requisitos.
Às vezes, enquanto trabalha em um exercício, você percebe que ele é mais complexo do que esperava. Não tem problema nenhum. Anote o conceito que precisa ser ensinado como pré-requisito. Depois, finja que esse exercício já existe e termine o exercício em que está trabalhando com essa simplificação em mente. Em seguida, volte e crie um novo exercício para o conceito pré-requisito. Lembre-se de marcar o exercício como wip até o exercício de pré-requisito ter sido adicionado.
Outra coisa que pode acontecer nesse momento é você descobrir que tem dependências cíclicas. Você precisa introduzir dois conceitos, mas cada um depende do outro. Nesse caso, pode ser possível usar um stub. Aí você pode explicar que o conceito dependente existe, mas deixar claro que ainda não é preciso entendê-lo. Outra opção seria dar apenas uma introdução mínima, o suficiente para o estudante superar o obstáculo, deixando claro que o conceito será abordado com mais profundidade depois.
Se você optar por não implementar um exercício porque ele não se encaixa na sua trilha (por exemplo, um exercício de baixo nível para uma trilha de alto nível), marque-o como foregone. Para isso, adicione o slug do exercício ao array exercises.foregone no arquivo config.json da sua trilha.
Além de deixar explícita a sua escolha de não implementar um exercício, ferramentas como o configlet também vão ignorar os exercícios descartados.
Para mais informações, veja a documentação.