Что-то какой-то у вас усложнённый код. Мне кажется достаточно простого паттерна "Потребитель-Поставщик" (с использованием очереди, готовой или самописной). Ну можно обратить внимание на Concurrency API
Как, Вы не знаете джаву? Без знаний джавы в любом случае не стоит лезть в андроид-разработку и тем более в котлин (котлин основывается на джаве, плюс можно использовать джава класса, и не всё там так хорошо работает, поэтому некоторые части программы приходится писать на котлине)
Александр, Даже в джаве есть стек и куча. Да и если расти дальше, выше джуна, то со временем нужно лучше разбираться и во внутренностях JVM, а так почти "низкоуровневость".
Montego, Ну да, но найти можно. Я видел парочку объявлений об этом в сети (вроде они все были онлайновые). Но по поводу оффлайновых - хз (если нужен именно такой), но думаю можно найти. Нужно просто искать единомышленников в своём городе, и к самым опытным проситься в ученики.
D3lphi, Ну я-то про определения, которые Вы дали. Это не просто подпрограмма, а подпрограмма, имеющая имя. Инициализатор (в джаве), например, тоже блок кода, подпрограмма, но имени не имеет, и параметров тоже, поэтому это не функция/метод.