Коли ми реалізували свою першу концептуальну вправу, наступні кілька вправ мають на неї спиратися.
Ми любимо, коли є від трьох до пʼяти вправ, які не мають інших передумов, крім концепції basics.
Гарними варіантами є базові примітиви чи типи даних нашої мови. Наприклад, булеві значення (англ. Boolean), базові числові типи, рядки тексту (англ. string) та атоми.
Варто переглянути концептуальні вправи інших треків, щоб подивитися, чи є серед них доречні для нашого треку.
Зауважмо, що ввести концепцію не означає, що її треба пояснити повністю в усій її повноті. Складність завжди можна відкласти. У мові може бути десяток різних числових типів, корисних у різних ситуаціях. Вправа може просто згадати, що є й інші, представивши лише найуживаніший тип цілих чисел і найуживаніший тип із плаваючою комою.
Деякі базові типи даних надто складні, щоб вводити їх одразу. Наприклад, рядки тексту можуть бути масивами символів. У такому разі доведеться відкласти введення рядків тексту й розробити концептуальну вправу для символів і ще одну для масивів. Тоді можна додати вправу для рядків тексту, яка має обидві ці вправи як передумови.
Іноді, працюючи над вправою, ми розуміємо, що вона складніша, ніж очікували. Це цілком нормально. Занотуймо концепцію, яку треба викласти як передумову. Тоді уявімо, що така вправа існує, і завершімо вправу, над якою працюємо, з урахуванням цього спрощення. Потім повернімося й створімо нову вправу для концепції-передумови. Не забудьмо позначити вправу як wip, доки не додано вправу-передумову.
Ще одне, що може трапитися на цьому етапі: ми виявимо циклічні залежності. Треба ввести дві концепції, але кожна з них залежить від іншої. У такому разі, можливо, вдасться використати заглушку. Тоді можна пояснити, що залежна концепція існує, але запевнити, що розуміти її поки не обовʼязково. Ще один варіант - дати самий мінімум вступу, достатній, щоб учень подолав перешкоду, і водночас запевнити, що концепцію пізніше розглянемо глибше.
Якщо ми вирішимо не реалізовувати вправу, бо вона не підходить нашому треку (наприклад, низькорівнева вправа для високорівневого треку), позначмо її як foregone. Щоб це зробити, додаймо slug вправи до масиву exercises.foregone у файлі config.json нашого треку.
Окрім того, що наш вибір не реалізовувати вправу стає явним, будь-який інструментарій (наприклад, configlet) також ігноруватиме вправи, позначені як foregone.
Докладніше див. у документації.