Проблема в том, что начальный этап обучения программированию существует. Это хороший способ для ребёнка, понять его это или нет.
А вот со следующим этапом как раз всё не особо.
У нас любят подходить к программированию со стороны алгоритмов и олимпиад. И поэтому дальше для начинающих начинается эпоха математики.
Тогда как логично (математика не вредна, разумеется) углублять понимание работы с программами (как они компилируются, какие этапы, почему некоторые интерпретируются, что такое отладчик, профайлер); с инструментами (git, командная работа, to-do, bug tracker); рассказывать и давать потрогать многообразие направлений: desktop (console, gui), web, embedded, database, machine learning.
Есть много интересного помимо алгоритмов и олимпиад. Но вот кружков таких особо не наблюдается...
Воу воу это прям для продолжающих
Начинающим лучше пробовать игру писать