@kbono Я стараюсь применять на практике простое человеческое общение как способ обучения. Я не уверен, известно ли, что это работает. По сути, я стараюсь общаться с людьми о программировании. На основе их отзывов я корректирую то, что им говорю, до тех пор, пока они не смогут реализовать идеи на практике. Обычно я начинал с описания того, что такое переменные и как их использовать с числами. Затем я говорю о типах, операторах и синтаксисе. Обычно я перехожу от структурного программирования (в основном условных выражений и циклов) к простым понятиям первоклассных функций и рекурсии. Я продолжаю учить их решать первую задачу из Проекта Эйлера, затем прошу сделать еще пару упражнений с этого сайта. Позже я прошу их решить упражнения из HackerRank, а затем заставляю их делать небольшие проекты, основанные на том, что, по моему мнению, может быть для них более интересным. Все происходит, не выходя из WhatsApp/Telegram, но если они действительно хотят попробовать что-то вживую, я связываю их с JSBin/JSFiddle или подобными сайтами. Как только они доходят до того, чтобы сделать что-то полезное, я устанавливаю виртуальный сервер на Google Compute Engine или Amazon и обучаю их SSH, Git и Node.js. На этом этапе они узнают о протоколе HTTP, RESTful API и так далее. Это более или менее рецепт, которому я следовала!