Самое сложное, чтобы было для меня при погружении в Kotlin Coroutine - это отвыкнуть от подходов Java Multithreading и начать мыслить в стиле Coroutine и использовать их подходы для решения операций.
В статье автор раскрывает разницу и в чем отличие Coroutine от Java Multithreading