This is a text-version of the video we published on YouTube.
If anything defines me, it is my passion for learning and teaching. Even as a child, I was eager to explain and teach anyone willing to listen. At university and in school, I helped many of my friends who struggled with technical topics.
My passion took flight when I graduated from my technical university with honors and started working as a developer. My articles became popular, and I started receiving invitations to speak at international conferences.
Though I was most passionate about writing books. They become my obsession. I remember writing Effective Kotlin: Best Practices. For every item I read, I changed or rewrote it countless times. Numerous items were written, but never included in the final book. I guess if you collected everything I wrote for this book, you'd have at least four times as much as ended up in the final version. It was worth it. Effective Kotlin became the most popular book about best practices in Kotlin, and it has a very good name and sales even today.
Over the years, I have published 5 books on Kotlin (pokaż te książki), forming a complete learning experience from the basics to advanced topics. This series included the most popular book on Kotlin coroutines (zaznacz Kotlin Coroutines) and the most popular book on advanced Kotlin features (zaznacz Advanced Kotlin), such as reflection, KSP, and compiler plugins.
I am still passionate about writing books, but at some point, I realized it is a limiting format. Only a few have the self-perseverance to complete a technical book. It is also a good format for individuals, but not for teams.
Many teams struggle with a general lack of knowledge. Even if one developer educates himself, he might have trouble communicating this knowledge with others.
In 2018, a company asked me to prepare a Kotlin workshop for them. This experience changed me. (inne zjęcia z warsztató) Over those 8 years, I conducted around 200 workshops and feel I have mastered this format.
I prepared relevant materials; each section I teach has an appropriate mix of live coding, slides, and interactive challenges.
I also prepared numerous exercises, all with solid explanations, starting code, unit tests, and well-explained possible solutions.
A workshop has serious advantages for teams. In a couple of days, we can dive deep into the material that would need close to a book to explain in writing. For a team, those couple of days can make a solid difference, and, as a group, everyone ends up with a similar understanding and best practices to follow.
Of course, workshops also have their limitations. The biggest constraint is that they must fit in a couple of days. Learning in chunks is more effective because it gives our brains space to process this knowledge, relate it to current projects, and practice it properly. It is also problematic for managers that they have to stop all processes for a couple of days because the whole team is gone.
For years, I searched for a formula that would allow me to have my cake and eat it too. Then one day, my life truly changed when I learned about a new, modern format I instantly fell in love with: the cohort course.
A cohort course allows me to take the best out of all those words. Imagine you take a three-day workshop, divide it into small lessons, add some optional content, and spread them out one lesson a day over five weeks. Learners can work on their own time, spend as much time on exercises as they want, decide how much extra content they want to learn, and how many extra exercises they want to complete. However, all attendees receive lessons on the same days, participate in community discussions, attend Q&A sessions with the trainer and with experts on the topics, and generally have a group experience.
This formula is very liberating. At workshops, I could operate with my voice, slides, and live coding. Here I can choose the best format for each purpose. My key format is text, as it is faster to read than to listen, is specific and refined, and is searchable. However, if something should be visualized, I use images. I not only show code but also interactive code samples, where learners can interact with the code or its results and see how changes in the code result in different outcomes. Finally, if something is better shown, I use a video. This way, I take the best out of all those formats.
Lessons can also have quizzes, which are one form of practice. Lessons can cover all material in great detail, and learners can finish them at their own pace, one section at a time. They also include material explicitly marked as extra, which can be hidden for busy learners.
Of course, the most important form is exercises, which in my courses have unit tests that verify their completion, but each solution is also verified by the trainer and accepted or rejected with some comments. Additionally, I invented games for my courses. I have currently created 4 different games to support my cohort courses.
Cohort courses are much more convenient for both self-learners and companies. They require no days off; can decide how much time to spend on each topic, which optional sections or exercises to cover, and which to skip. Busy developers can finish the material later, as it is available for 6 months after the course if officially completed.
Group experience is also very valuable. On our Circle, we had numerous interesting discussions related to coroutines. Of course, not everyone participated; some preferred to work on their own and in their own time. Attendees have 6 months to complete the course after its official end.
All that allows me to design a perfect learning experience. It is new to companies, so some are still cautious about trying it, but after the first edition of Coroutines Mastery, with over 160 developers learning together about Kotlin coroutines and after hearing their feedback, I am now confident that this is a very good product and a very good format. I am sure this is the future, and I know I will help it come.
Marcin Moskala is a highly experienced developer and Kotlin instructor as the founder of Kt. Academy, an official JetBrains partner specializing in Kotlin training, Google Developers Expert, known for his significant contributions to the Kotlin community. Moskala is the author of several widely recognized books, including "Effective Kotlin," "Kotlin Coroutines," "Functional Kotlin," "Advanced Kotlin," "Kotlin Essentials," and "Android Development with Kotlin."
Beyond his literary achievements, Moskala is the author of the largest Medium publication dedicated to Kotlin. As a respected speaker, he has been invited to share his insights at numerous programming conferences, including events such as Droidcon and the prestigious Kotlin Conf, the premier conference dedicated to the Kotlin programming language.