Практики, реальных задач, объяснений почему это нужно.
Пример: Пытаюсь поставить на путь IT свою жену (сам являюсь программистом), заядлого филолога. При подготовке материала прохожу множество онлайн курсов.
Проблемы которые встречаются в 90% случаев:
Практика: Объяснять что такое функция, переменная, метод хорошо, но решая задачи типа "напишите функцию которая вернет 2+2" (в разных вариациях) не принесут практического опыта. Должны быть реальные задачи по курсу, как в школе. "Маша имеет 2 магазина, а Коля три. У обоих есть свой баланс. Напишите функцию которая будет возвращать сумму месячного дохода Маши и Коли учитывая такие-то параметры"
В школе мы не понимали "зачем нам эта математика" так и в курсах, нам рассказывают что это должно быть так и так, но не объясняют в каких задачах это пригодится. Пример: Синглтон, везде есть примеры как его сделать, как использовать, но хоть бы кто-то написал какую реальную задачу он решает.
Объяснений НЕ с точки зрения предмета. Попытайтесь объяснить филологу концепцию ООП. Получилось? Ага...
При объяснение материала нужно больше сравнений с реальным миром, или повседневной жизнью.
"Машина это класс, а открыть дверь это метод" куда проще воспринимается чем "Экземпляр класса юзер имеет метод логин"