Реально учат, если ребенок не просто играет, а собирает команды, проверяет результат и исправляет ошибки. Это и есть основа программирования: алгоритм, цикл, условие, тестирование. Игрушки дают мягкий вход в тему, а дальше уже легче переходить к более системным занятиям и проектам.