Big Kotlin Challenge
I have a challenge for you. Five Kotlin books, over a hundred exercises, only one year to read them all and complete all the exercises. Is it possible? I think so. Is it a hard challenge? Extremely. But I would not give you an easy one, would I? The goal of this challenge is ambitious: to become one of the most skilled Kotlin developers.
The path
The path starts from the basics. Kotlin Essentials presents all the essential Kotlin features, including classes, functions, properties, nullability, generics, and more. It also includes 18 exercises, which will make sure you understand and can use the presented knowledge.
The next step is functional programming in Kotlin, with Functional Kotlin. This book covers all the functional features of Kotlin, including function types, lambda expressions, collection processing, DSLs, and scope functions. It also includes 22 exercises, which include require creating higher-order functions, getting fluent with advanced collection processing, creating DSLs, making functional services and many more.
The next step is Kotlin Coroutines: Deep Dive. This book covers all the features of Kotlin Coroutines, including deep understanding of how suspension works, structured concurrence, using flow, testing coroutines, best practices, and the most common mistakes. I am still adding exercises to this book, but I am sure there will be over 30 of them.
The next step is Advanced Kotlin. This book is dedicated to advanced Kotlin features, including generic variance modifiers, delegation, multiplatform programming, annotation processing, KSP, and compiler plugins. It also includes 18 exercises, including creating a custom annotation processor, creating a simple mocking library, a dependency injection framework, and more.
The last step is Effective Kotlin: Best Practices. This book is about the best practices of Kotlin programming. Some exercises I use in my workshops can be found here. They help practicing securing code from potential concurrency issues, potential bugs, fixing performance issues, eliminating memory leaks, and more.
All exercises can be found here.
Is there any reward?
The knowledge is the reward. However, if you let me know that you completed all the exercises, I will be proud to share your story and reflections with the community. I can also send you a certificate of completion if you show me your solutions.
Excited? I hope you are.
Let’s get it started then!