article banner

Learn Kotlin with Marcin Moskała

Many people ask me how to learn Kotlin. Over the years, I created a range of materials and learning options. This page is a summary of all of them. I hope you will find something that will help you to learn Kotlin.

Workshops

I must have started from workshops because they are my most important contribution to sharing knowledge about Kotlin. Over the years, I conducted over 100 workshops and trained over 2000 people. The majority of my books and courses are based on the workshop materials and experiences. Here is a summary of my most popular workshops:

Kotlin for Developers is a 3-day workshop for developers with little or no experience with Kotlin. It covers all essential Kotlin features, from OOP to functional, basics to DSLs, and scope functions. Concentrating on best practices and popular mistakes.

Kotlin Pro is a 3-day workshop for experienced Kotlin developers who want to dive deeper into language, understand it, and learn about more advanced features like DSLs, delegation, generic variance modifiers, and essentials of Kotlin corotuines. It concentrates on best practices and popular mistakes.

Kotlin Coroutines is currently my most popular workshop. It covers all the essential features of coroutines, from suspending functions to SharedFlow. I offer it in two variants: intensive 2-day variant with little time for exercises, and 3-days variant that gives space for practice and covers more topics.

Kotlin Mastery is a new 2-day workshop, that already received a lot of great feedback. Its first day concentrates of safety: recognizing and solving problems with mutability and parallel access. The second day concentrates on efficiency and memory leak elimination. Great for experienced Kotlin developers.

Kotlin Expert is my most advanced workshop. In its 2 days, we cover the most advanced features, like generic variance modifiers, delegation, DSL, KMP, reflection, AP, KSP and compiker plugins. In this workshop we implement JSON serializer, a mocking library, and much more. Really fun workshop, I always love conducting it.

Most workshops are organized in-company for teams of 5–20 people. However, I also organize public workshops, where anyone can join. Though, I understand that the prices of this option might still be too high for some people. For them, I have created a range of other options.

Books

I collected my experiences from using and teaching Kotlin in the form of 5 books. Those are my magnum opus, my obsession for the past five years. I am very proud of them, and I believe they are the best materials to learn Kotlin. Each of them can be read independently, but together they form a complete picture. The whole series includes:

  • Kotlin Essentials, which covers all the basic Kotlin features.
  • Functional Kotlin, which is dedicated to functional Kotlin features, including function types, lambda expressions, collection processing, DSLs, and scope functions.
  • Kotlin Coroutines: Deep Dive, which covers all the features of Kotlin Coroutines, including how to use and test them, using flow, best practices, and the most common mistakes.
  • Advanced Kotlin, which is dedicated to advanced Kotlin features, including generic variance modifiers, delegation, multiplatform programming, annotation processing, KSP, and compiler plugins.
  • Effective Kotlin: Best Practices, which is about the best practices of Kotlin programming.

On LeanPub, they can be purchased in bundles:

Courses

Some people prefer courses to books. For them, I transformed two of my books into online courses, with programming exercises, quizzes and a certificate of completion. Those courses are:

  • Kotlin Essentials, which covers all the essential Kotlin features. It is a great course for beginners to Kotlin (with experience in other languages, but also for people who want to refresh their knowledge.
  • Functional Kotlin, which is dedicated to functional Kotlin features, including function types, lambda expressions, collection processing, DSLs, and scope functions. I am especially proud of exercises for collection processing, which are very practical and fun. Though in this course you will also build your own DSLs, use context receiver, and learn about many other functional Kotlin features.
  • Kotlin Coroutines: Deep Dive, which covers all the features of Kotlin Coroutines, including how to use and test them, using flow, best practices, and the most common mistakes. This course is especially popular because it is very practical and gives you a lot of exercises to practice your skills.
  • Advanced Kotlin, which is dedicated to advanced Kotlin features, including generic variance modifiers, delegation, multiplatform programming, annotation processing, KSP, and compiler plugins. This course is especially popular because it is very practical and gives you a lot of exercises to practice your skills.

The first two courses are combined into a single track, which you can find here.

Articles

Many chapters of my books can be found in the form of articles here. I am publishing them because my mission is to spread knowledge. Use tag filter to find articles about the topic you are interested in.