To travel the 8,000-mile overland distance from Java to Kotlin takes about a week. You're likely to be productive if you are a Java developer with experience who has also tried the Kotlin programming language.
However, you'll find that things are done differently in Kotlin. It is important to nullability, collections are different, and classes are final by default. Kotlin is functional, but what does it mean, and how can you change your programming? What about all the Java code you have to continue supporting?
Nat and Duncan, your tour guides, made the trip for the first time in 2015. Since then, many people and teams have followed their lead. As they break down the route into segments like Beans to Values and Open to Sealed Class, you can travel with them. Each of them explains a key concept, then shows you how to safely and gradually refactor production Java into idiomatic Kotlin while still maintaining interoperability.
The code results in being more concise, expressive, and easy to modify. You'll feel confident writing Kotlin from scratch and refactoring Java into Kotlin by the end of this journey.