Update: The book is stable now and available both as an ebook and on paper.

It took two years for me. In the last 6 months, writing and researching this topic was my half-time job. It was reviewed by 12 people, and 6 alpha testers. Hundreds left their emails to be notified once it is published. I was asked about it at every conference and meetup. And it is finally here. Today the first official version of Effective Kotlin is finally in distribution.

It is a beta version, meaning that it might still change at some points. The main reason for that is to give myself a bit more time until I freeze item titles and numbers. I would also love to hear your feedback. This is the time we can still modify some suggestions before they popularize in our community.

This book is meant to change how we use Kotlin for better, how to use it more responsibly. This is not an easy goal. This is why I started by analyzing the most influential best practices books for other languages:

Effective Java by Joshua Bloch

Effective C# by Bill Wagner

Effective Python by Brett Slatkin

Effective C++ by Scott Meyers

This book was also highly influenced by other books:

Code Complete by Steve McConnell

Clean Code by Robert C. Martin

Clean Architecture by Robert C. Martin

Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman, Julie Sussman

My goal was to distill the most important rules and knowledge that can be applied for Kotlin development. I have my own experiences as a developer, teacher and as a consultant, but I am not afraid to stand on the shoulders of giants to see more. My goal was to make the best book to change the Kotlin community for better, and I believe I did everything I could.

Even the best rules can cause trouble when they are misunderstood or used to the extreme. I felt this responsibility, especially in the last 6 months when I was rethinking every single rule to get sure it will do no harm. I also consulted many of those rules with important figures from Kotlin world. And, of course, with reviewers who are all experienced developers and some are tech leads in their companies. All rules were also to some degree checked in practice. I was already teaching them as a teacher and suggesting them as a consultant. This way I could see how do they work when people apply them, and I had many interesting conversations about them. This all made me confident about the practical aspect of this book.

The version of this book is 0.7-beta it is now available only as an ebook. Beta status means that its TOC can change. It also means that I am especially interested in your feedback and suggestions. It is also cheaper now — the minimal price for the ebook is set to 15$. Once it will reach the stable version, all those who bought it earlier will be updated, and the minimal price for the ebook will be changed to 20$.

This book will be available in print in November, and the printed version will cost 30$.

On the end, I am really proud of this book and I received very enthusiastic feedback from all my reviewers and testers. I hope you will enjoy it as well, and when you do, remember to spread the word about this book. It is self-published, so your help is especially important.

If you want to buy this beta release, here is the link:

Here, on the other hand, is a link to the free sample: