Review Of the Book Kotlin For Android Developers

This is a review of the book Kotlin For Android Developers* by Antonio Leiva, an Android Engineer working for an international company.

When you have to pick an educational book the first thing you have to understand is:

  1. what kind of book is
  2. whose the book is for

When it comes to books aimed to teach a new programming language they can roughly divided in two groups: theoretical and pragmatic ones. A theoretical book can be a 1000+ page book that teach all the aspects of the language, from the platform to each construct, usually in a logic order of ascending difficulty. Instead a pragmatic book teaches a language explaining the concepts, while you meet them in the course of building something, like an app.

A book may be too short or change arguments too quickly for a beginner audience or, vice versa, it might have a too slow pace for an advanced user. Granted, some books are just bad, but usually the problem is that the reader picked the wrong book.

Audience Of The Book

The title itself of the book Kotlin For Android Developers does a good job in clarifying its type and audience: it is a pragmatic book for experienced Android developers that want to pick up Kotlin. Which means that it builds upon your Android knowledge, to teach you how to do with Kotlin the stuff you already know how to do with Java.

To put in another way: the book does not explain how to create Android applications, if you do not already know how to do that. In fact, if you are not an experienced Android developer, you will not understand what is going on or why somethings matters. Probably you will not even understand Kotlin that well.

This also means something that might be obvious to some, but not all: there is very little theory. You should already know how the tools work (e.g., Gradle) and what things like delegates or lambda are. Only the chapter on Generics explains a bit of the theory behind them. Also, typically the issues with using a certain feature are not discussed, unless the issue is related to the Kotlin approach.

For instance, when listing the operators that you can overload that is what the book has to say about identity comparison in Kotlin:

Operators === and !== do identity checks (they are == and != in Java respectively)
and can’t be overloaded.

─ Chapter 11, p. 49

In short, if you are an expert programmer that complains constantly about filler content, you are the perfect audience for this book. If you are a novice that needs hand-holding, you should look elsewhere. Maybe you can come back later to this book, once you have covered your basis.

Structure Of The Book

The book does not really have a formal structure, for the most part: there are 30 short chapters about several aspects you will encounter developing an Android app. An Android developer might notice that the order of the chapters resembles how a real app is developed: you create a working app as soon as possible and then you refactor it to make it beautiful.

Although, to be fair, most of the time the chapters does not seem to follow any particular order. We cannot really understand if there is any reason to explain control flow expressions in chapter 22 of 30. On the other hand, given the audience of the book, this is not really a problem because you are supposed to already know your way around an Android app.

In our opinion, this approach makes sense given the audience (developers with experience on Android). Busy developers can jump quickly to the point they are interested in, while skipping parts that are not extremely important for them right now. Experts do not need someone to draw the path for them, they need pointers to find quickly the information they are looking for.

There are only a few minor issues related to the order of topics. For example, reified generics are discusses before the chapter on generics; the REPL and the online playground are not mentioned in the Getting ready chapter, but in the introduction of the chapter about classes.

The internal structure of each chapter is more consistent: there is usually a problem and the code that solve it, all related to a weather app that is used throughout the book. The code of each chapter is presented in its entirety in the companion repository of the book. The reader is constantly reminded of the repository. Also, frequently the author notes that the chapter only discuss the major modifications to the code and not everything that is in the repository. We think that code should be at the center of books about programming, so we really liked this approach.

There are a few chapters that just list, or explain, things about Kotlin, without any reference to the app. For example, chapter 11, that lists which operators you can overload, or chapter 18, that lists collections and related operations of the Kotlin standard library.

Content Of The Book

The book covers all the main aspects of Kotlin: from variables and null safety to generics and lambdas. So there is no complain to be made there. They are also covered in pragmatic terms, you are rarely going to see a few pages without any code. When this happens is usually because of the few things that needs an explanation, or a list, like the operators that you can overload. There is also a chapter for coroutines, an experimental features of Kotlin 1.1, which is a nice surprise. Of course, all the content is explained with Android development and issues in mind.

The book also covers a few essential libraries and tools: Anko and the Kotlin Android Extensions. Anko is a library composed of several modules and many of them are used in the book: Anko SQLite, Anko Coroutines, etc. The addition of this library, which will probably be used by almost all developers, is a good example of the benefits of the pragmatic approach of the book. You are going to learn most of what you are going to use in your everyday development for Android with Kotlin.

The only important thing that the book does not talk about is Anko Layouts. And the reason is that the author does not care about it, which is a perplexing choice or, at the very least, a perplexing justification.

Anko is a powerful library developed by JetBrains. Its main purpose is the generation of UI layouts by using code instead of XML. This is an interesting feature I recommend you to try, but I won’t be using it in this project. To me (probably due to years of experience writing UIs) using XML is much easier, but you could like this approach.

─ Chapter 7, p. 33

Maybe it is true that most Android developers are used to XML, just like author, but it seems an odd reason to exclude something, especially since the author itself present it as the main purpose of the library.

In any case, with this choice the author miss the chance to talk about type-safe builders, which can be useful to build also HTML layouts or any kind of type-safe hierarchical data.

Summary

Once you understand the audience of the book you are going to agree that it has only a few flaws. The content you need is all there, although you could argue that some chapters devoted to theory are a bit thin.

For instance, the first chapter, that explains why you should use Kotlin for Android is a bit short. It does not really introduce all the good things of Kotlin (e.g., Anko) that the book will talk about, and it does not present well the one it mentions (e.g. Expressiveness shows only data classes and not other features linked to expressiveness). But this is mostly nitpicking.

The structure of the book can be perplexing. However, since the book is for experienced Android developers, this might be annoying for some, but not problematic for the target audience.

On the other hand if you know Android and prefer a pragmatic and code-first approach this book is the best you can find to learn Kotlin to use it for your Android apps.

There is no filler content, not a word more than the one you need to get you going and there is no quicker way to learn how to use Kotlin in your job.

A nice touch is that the author periodically updates the book, also based on the feedback he receives. The updates are sent automatically for the digital version. Buyers of the physical one can ask the author for free access to an updated digital edition.

* Disclaimer: the author gave us a copy of the book for the review but we did not have any agreement for affiliate marketing or any other interest in recommending this book at the time we wrote the review. Now, we do have an affiliate agreement, but our review has not been modified.

The post Review Of the Book Kotlin For Android Developers appeared first on SuperKotlin.

Continue ReadingReview Of the Book Kotlin For Android Developers

Review Of the Book Kotlin For Android Developers

This is a review of the book Kotlin For Android Developers* by Antonio Leiva, an Android Engineer working for an international company.

When you have to pick an educational book the first thing you have to understand is:

  1. what kind of book is
  2. whose the book is for

When it comes to books aimed to teach a new programming language they can roughly divided in two groups: theoretical and pragmatic ones. A theoretical book can be a 1000+ page book that teach all the aspects of the language, from the platform to each construct, usually in a logic order of ascending difficulty. Instead a pragmatic book teaches a language explaining the concepts, while you meet them in the course of building something, like an app.

A book may be too short or change arguments too quickly for a beginner audience or, vice versa, it might have a too slow pace for an advanced user. Granted, some books are just bad, but usually the problem is that the reader picked the wrong book.

Audience Of The Book

The title itself of the book Kotlin For Android Developers does a good job in clarifying its type and audience: it is a pragmatic book for experienced Android developers that want to pick up Kotlin. Which means that it builds upon your Android knowledge, to teach you how to do with Kotlin the stuff you already know how to do with Java.

To put in another way: the book does not explain how to create Android applications, if you do not already know how to do that. In fact, if you are not an experienced Android developer, you will not understand what is going on or why somethings matters. Probably you will not even understand Kotlin that well.

This also means something that might be obvious to some, but not all: there is very little theory. You should already know how the tools work (e.g., Gradle) and what things like delegates or lambda are. Only the chapter on Generics explains a bit of the theory behind them. Also, typically the issues with using a certain feature are not discussed, unless the issue is related to the Kotlin approach.

For instance, when listing the operators that you can overload that is what the book has to say about identity comparison in Kotlin:

Operators === and !== do identity checks (they are == and != in Java respectively)
and can’t be overloaded.

─ Chapter 11, p. 49

In short, if you are an expert programmer that complains constantly about filler content, you are the perfect audience for this book. If you are a novice that needs hand-holding, you should look elsewhere. Maybe you can come back later to this book, once you have covered your basis.

Structure Of The Book

The book does not really have a formal structure, for the most part: there are 30 short chapters about several aspects you will encounter developing an Android app. An Android developer might notice that the order of the chapters resembles how a real app is developed: you create a working app as soon as possible and then you refactor it to make it beautiful.

Although, to be fair, most of the time the chapters does not seem to follow any particular order. We cannot really understand if there is any reason to explain control flow expressions in chapter 22 of 30. On the other hand, given the audience of the book, this is not really a problem because you are supposed to already know your way around an Android app.

In our opinion, this approach makes sense given the audience (developers with experience on Android). Busy developers can jump quickly to the point they are interested in, while skipping parts that are not extremely important for them right now. Experts do not need someone to draw the path for them, they need pointers to find quickly the information they are looking for.

There are only a few minor issues related to the order of topics. For example, reified generics are discusses before the chapter on generics; the REPL and the online playground are not mentioned in the Getting ready chapter, but in the introduction of the chapter about classes.

The internal structure of each chapter is more consistent: there is usually a problem and the code that solve it, all related to a weather app that is used throughout the book. The code of each chapter is presented in its entirety in the companion repository of the book. The reader is constantly reminded of the repository. Also, frequently the author notes that the chapter only discuss the major modifications to the code and not everything that is in the repository. We think that code should be at the center of books about programming, so we really liked this approach.

There are a few chapters that just list, or explain, things about Kotlin, without any reference to the app. For example, chapter 11, that lists which operators you can overload, or chapter 18, that lists collections and related operations of the Kotlin standard library.

Content Of The Book

The book covers all the main aspects of Kotlin: from variables and null safety to generics and lambdas. So there is no complain to be made there. They are also covered in pragmatic terms, you are rarely going to see a few pages without any code. When this happens is usually because of the few things that needs an explanation, or a list, like the operators that you can overload. There is also a chapter for coroutines, an experimental features of Kotlin 1.1, which is a nice surprise. Of course, all the content is explained with Android development and issues in mind.

The book also covers a few essential libraries and tools: Anko and the Kotlin Android Extensions. Anko is a library composed of several modules and many of them are used in the book: Anko SQLite, Anko Coroutines, etc. The addition of this library, which will probably be used by almost all developers, is a good example of the benefits of the pragmatic approach of the book. You are going to learn most of what you are going to use in your everyday development for Android with Kotlin.

The only important thing that the book does not talk about is Anko Layouts. And the reason is that the author does not care about it, which is a perplexing choice or, at the very least, a perplexing justification.

Anko is a powerful library developed by JetBrains. Its main purpose is the generation of UI layouts by using code instead of XML. This is an interesting feature I recommend you to try, but I won’t be using it in this project. To me (probably due to years of experience writing UIs) using XML is much easier, but you could like this approach.

─ Chapter 7, p. 33

Maybe it is true that most Android developers are used to XML, just like author, but it seems an odd reason to exclude something, especially since the author itself present it as the main purpose of the library.

In any case, with this choice the author miss the chance to talk about type-safe builders, which can be useful to build also HTML layouts or any kind of type-safe hierarchical data.

Summary

Once you understand the audience of the book you are going to agree that it has only a few flaws. The content you need is all there, although you could argue that some chapters devoted to theory are a bit thin.

For instance, the first chapter, that explains why you should use Kotlin for Android is a bit short. It does not really introduce all the good things of Kotlin (e.g., Anko) that the book will talk about, and it does not present well the one it mentions (e.g. Expressiveness shows only data classes and not other features linked to expressiveness). But this is mostly nitpicking.

The structure of the book can be perplexing. However, since the book is for experienced Android developers, this might be annoying for some, but not problematic for the target audience.

On the other hand if you know Android and prefer a pragmatic and code-first approach this book is the best you can find to learn Kotlin to use it for your Android apps.

There is no filler content, not a word more than the one you need to get you going and there is no quicker way to learn how to use Kotlin in your job.

A nice touch is that the author periodically updates the book, also based on the feedback he receives. The updates are sent automatically for the digital version. Buyers of the physical one can ask the author for free access to an updated digital edition.

* Disclaimer: the author gave us a copy of the book for the review but we did not have any agreement for affiliate marketing or any other interest in recommending this book at the time we wrote the review. Now, we do have an affiliate agreement, but our review has not been modified.

The post Review Of the Book Kotlin For Android Developers appeared first on SuperKotlin.

Continue ReadingReview Of the Book Kotlin For Android Developers

Review Of the Book Kotlin For Android Developers

This is a review of the book Kotlin For Android Developers* by Antonio Leiva, an Android Engineer working for an international company.

When you have to pick an educational book the first thing you have to understand is:

  1. what kind of book is
  2. whose the book is for

When it comes to books aimed to teach a new programming language they can roughly divided in two groups: theoretical and pragmatic ones. A theoretical book can be a 1000+ page book that teach all the aspects of the language, from the platform to each construct, usually in a logic order of ascending difficulty. Instead a pragmatic book teaches a language explaining the concepts, while you meet them in the course of building something, like an app.

A book may be too short or change arguments too quickly for a beginner audience or, vice versa, it might have a too slow pace for an advanced user. Granted, some books are just bad, but usually the problem is that the reader picked the wrong book.

Audience Of The Book

The title itself of the book Kotlin For Android Developers does a good job in clarifying its type and audience: it is a pragmatic book for experienced Android developers that want to pick up Kotlin. Which means that it builds upon your Android knowledge, to teach you how to do with Kotlin the stuff you already know how to do with Java.

To put in another way: the book does not explain how to create Android applications, if you do not already know how to do that. In fact, if you are not an experienced Android developer, you will not understand what is going on or why somethings matters. Probably you will not even understand Kotlin that well.

This also means something that might be obvious to some, but not all: there is very little theory. You should already know how the tools work (e.g., Gradle) and what things like delegates or lambda are. Only the chapter on Generics explains a bit of the theory behind them. Also, typically the issues with using a certain feature are not discussed, unless the issue is related to the Kotlin approach.

For instance, when listing the operators that you can overload that is what the book has to say about identity comparison in Kotlin:

Operators === and !== do identity checks (they are == and != in Java respectively)
and can’t be overloaded.

─ Chapter 11, p. 49

In short, if you are an expert programmer that complains constantly about filler content, you are the perfect audience for this book. If you are a novice that needs hand-holding, you should look elsewhere. Maybe you can come back later to this book, once you have covered your basis.

Structure Of The Book

The book does not really have a formal structure, for the most part: there are 30 short chapters about several aspects you will encounter developing an Android app. An Android developer might notice that the order of the chapters resembles how a real app is developed: you create a working app as soon as possible and then you refactor it to make it beautiful.

Although, to be fair, most of the time the chapters does not seem to follow any particular order. We cannot really understand if there is any reason to explain control flow expressions in chapter 22 of 30. On the other hand, given the audience of the book, this is not really a problem because you are supposed to already know your way around an Android app.

In our opinion, this approach makes sense given the audience (developers with experience on Android). Busy developers can jump quickly to the point they are interested in, while skipping parts that are not extremely important for them right now. Experts do not need someone to draw the path for them, they need pointers to find quickly the information they are looking for.

There are only a few minor issues related to the order of topics. For example, reified generics are discusses before the chapter on generics; the REPL and the online playground are not mentioned in the Getting ready chapter, but in the introduction of the chapter about classes.

The internal structure of each chapter is more consistent: there is usually a problem and the code that solve it, all related to a weather app that is used throughout the book. The code of each chapter is presented in its entirety in the companion repository of the book. The reader is constantly reminded of the repository. Also, frequently the author notes that the chapter only discuss the major modifications to the code and not everything that is in the repository. We think that code should be at the center of books about programming, so we really liked this approach.

There are a few chapters that just list, or explain, things about Kotlin, without any reference to the app. For example, chapter 11, that lists which operators you can overload, or chapter 18, that lists collections and related operations of the Kotlin standard library.

Content Of The Book

The book covers all the main aspects of Kotlin: from variables and null safety to generics and lambdas. So there is no complain to be made there. They are also covered in pragmatic terms, you are rarely going to see a few pages without any code. When this happens is usually because of the few things that needs an explanation, or a list, like the operators that you can overload. There is also a chapter for coroutines, an experimental features of Kotlin 1.1, which is a nice surprise. Of course, all the content is explained with Android development and issues in mind.

The book also covers a few essential libraries and tools: Anko and the Kotlin Android Extensions. Anko is a library composed of several modules and many of them are used in the book: Anko SQLite, Anko Coroutines, etc. The addition of this library, which will probably be used by almost all developers, is a good example of the benefits of the pragmatic approach of the book. You are going to learn most of what you are going to use in your everyday development for Android with Kotlin.

The only important thing that the book does not talk about is Anko Layouts. And the reason is that the author does not care about it, which is a perplexing choice or, at the very least, a perplexing justification.

Anko is a powerful library developed by JetBrains. Its main purpose is the generation of UI layouts by using code instead of XML. This is an interesting feature I recommend you to try, but I won’t be using it in this project. To me (probably due to years of experience writing UIs) using XML is much easier, but you could like this approach.

─ Chapter 7, p. 33

Maybe it is true that most Android developers are used to XML, just like author, but it seems an odd reason to exclude something, especially since the author itself present it as the main purpose of the library.

In any case, with this choice the author miss the chance to talk about type-safe builders, which can be useful to build also HTML layouts or any kind of type-safe hierarchical data.

Summary

Once you understand the audience of the book you are going to agree that it has only a few flaws. The content you need is all there, although you could argue that some chapters devoted to theory are a bit thin.

For instance, the first chapter, that explains why you should use Kotlin for Android is a bit short. It does not really introduce all the good things of Kotlin (e.g., Anko) that the book will talk about, and it does not present well the one it mentions (e.g. Expressiveness shows only data classes and not other features linked to expressiveness). But this is mostly nitpicking.

The structure of the book can be perplexing. However, since the book is for experienced Android developers, this might be annoying for some, but not problematic for the target audience.

On the other hand if you know Android and prefer a pragmatic and code-first approach this book is the best you can find to learn Kotlin to use it for your Android apps.

There is no filler content, not a word more than the one you need to get you going and there is no quicker way to learn how to use Kotlin in your job.

A nice touch is that the author periodically updates the book, also based on the feedback he receives. The updates are sent automatically for the digital version. Buyers of the physical one can ask the author for free access to an updated digital edition.

* Disclaimer: the author gave us a copy of the book for the review but we did not have any agreement for affiliate marketing or any other interest in recommending this book at the time we wrote the review. Now, we do have an affiliate agreement, but our review has not been modified.

The post Review Of the Book Kotlin For Android Developers appeared first on SuperKotlin.

Continue ReadingReview Of the Book Kotlin For Android Developers

Review Of the Book Kotlin For Android Developers

This is a review of the book Kotlin For Android Developers* by Antonio Leiva, an Android Engineer working for an international company.

When you have to pick an educational book the first thing you have to understand is:

  1. what kind of book is
  2. whose the book is for

When it comes to books aimed to teach a new programming language they can roughly divided in two groups: theoretical and pragmatic ones. A theoretical book can be a 1000+ page book that teach all the aspects of the language, from the platform to each construct, usually in a logic order of ascending difficulty. Instead a pragmatic book teaches a language explaining the concepts, while you meet them in the course of building something, like an app.

A book may be too short or change arguments too quickly for a beginner audience or, vice versa, it might have a too slow pace for an advanced user. Granted, some books are just bad, but usually the problem is that the reader picked the wrong book.

Audience Of The Book

The title itself of the book Kotlin For Android Developers does a good job in clarifying its type and audience: it is a pragmatic book for experienced Android developers that want to pick up Kotlin. Which means that it builds upon your Android knowledge, to teach you how to do with Kotlin the stuff you already know how to do with Java.

To put in another way: the book does not explain how to create Android applications, if you do not already know how to do that. In fact, if you are not an experienced Android developer, you will not understand what is going on or why somethings matters. Probably you will not even understand Kotlin that well.

This also means something that might be obvious to some, but not all: there is very little theory. You should already know how the tools work (e.g., Gradle) and what things like delegates or lambda are. Only the chapter on Generics explains a bit of the theory behind them. Also, typically the issues with using a certain feature are not discussed, unless the issue is related to the Kotlin approach.

For instance, when listing the operators that you can overload that is what the book has to say about identity comparison in Kotlin:

Operators === and !== do identity checks (they are == and != in Java respectively)
and can’t be overloaded.

─ Chapter 11, p. 49

In short, if you are an expert programmer that complains constantly about filler content, you are the perfect audience for this book. If you are a novice that needs hand-holding, you should look elsewhere. Maybe you can come back later to this book, once you have covered your basis.

Structure Of The Book

The book does not really have a formal structure, for the most part: there are 30 short chapters about several aspects you will encounter developing an Android app. An Android developer might notice that the order of the chapters resembles how a real app is developed: you create a working app as soon as possible and then you refactor it to make it beautiful.

Although, to be fair, most of the time the chapters does not seem to follow any particular order. We cannot really understand if there is any reason to explain control flow expressions in chapter 22 of 30. On the other hand, given the audience of the book, this is not really a problem because you are supposed to already know your way around an Android app.

In our opinion, this approach makes sense given the audience (developers with experience on Android). Busy developers can jump quickly to the point they are interested in, while skipping parts that are not extremely important for them right now. Experts do not need someone to draw the path for them, they need pointers to find quickly the information they are looking for.

There are only a few minor issues related to the order of topics. For example, reified generics are discusses before the chapter on generics; the REPL and the online playground are not mentioned in the Getting ready chapter, but in the introduction of the chapter about classes.

The internal structure of each chapter is more consistent: there is usually a problem and the code that solve it, all related to a weather app that is used throughout the book. The code of each chapter is presented in its entirety in the companion repository of the book. The reader is constantly reminded of the repository. Also, frequently the author notes that the chapter only discuss the major modifications to the code and not everything that is in the repository. We think that code should be at the center of books about programming, so we really liked this approach.

There are a few chapters that just list, or explain, things about Kotlin, without any reference to the app. For example, chapter 11, that lists which operators you can overload, or chapter 18, that lists collections and related operations of the Kotlin standard library.

Content Of The Book

The book covers all the main aspects of Kotlin: from variables and null safety to generics and lambdas. So there is no complain to be made there. They are also covered in pragmatic terms, you are rarely going to see a few pages without any code. When this happens is usually because of the few things that needs an explanation, or a list, like the operators that you can overload. There is also a chapter for coroutines, an experimental features of Kotlin 1.1, which is a nice surprise. Of course, all the content is explained with Android development and issues in mind.

The book also covers a few essential libraries and tools: Anko and the Kotlin Android Extensions. Anko is a library composed of several modules and many of them are used in the book: Anko SQLite, Anko Coroutines, etc. The addition of this library, which will probably be used by almost all developers, is a good example of the benefits of the pragmatic approach of the book. You are going to learn most of what you are going to use in your everyday development for Android with Kotlin.

The only important thing that the book does not talk about is Anko Layouts. And the reason is that the author does not care about it, which is a perplexing choice or, at the very least, a perplexing justification.

Anko is a powerful library developed by JetBrains. Its main purpose is the generation of UI layouts by using code instead of XML. This is an interesting feature I recommend you to try, but I won’t be using it in this project. To me (probably due to years of experience writing UIs) using XML is much easier, but you could like this approach.

─ Chapter 7, p. 33

Maybe it is true that most Android developers are used to XML, just like author, but it seems an odd reason to exclude something, especially since the author itself present it as the main purpose of the library.

In any case, with this choice the author miss the chance to talk about type-safe builders, which can be useful to build also HTML layouts or any kind of type-safe hierarchical data.

Summary

Once you understand the audience of the book you are going to agree that it has only a few flaws. The content you need is all there, although you could argue that some chapters devoted to theory are a bit thin.

For instance, the first chapter, that explains why you should use Kotlin for Android is a bit short. It does not really introduce all the good things of Kotlin (e.g., Anko) that the book will talk about, and it does not present well the one it mentions (e.g. Expressiveness shows only data classes and not other features linked to expressiveness). But this is mostly nitpicking.

The structure of the book can be perplexing. However, since the book is for experienced Android developers, this might be annoying for some, but not problematic for the target audience.

On the other hand if you know Android and prefer a pragmatic and code-first approach this book is the best you can find to learn Kotlin to use it for your Android apps.

There is no filler content, not a word more than the one you need to get you going and there is no quicker way to learn how to use Kotlin in your job.

A nice touch is that the author periodically updates the book, also based on the feedback he receives. The updates are sent automatically for the digital version. Buyers of the physical one can ask the author for free access to an updated digital edition.

* Disclaimer: the author gave us a copy of the book for the review but we did not have any agreement for affiliate marketing or any other interest in recommending this book at the time we wrote the review. Now, we do have an affiliate agreement, but our review has not been modified.

The post Review Of the Book Kotlin For Android Developers appeared first on SuperKotlin.

Continue ReadingReview Of the Book Kotlin For Android Developers

Review Of the Book Kotlin For Android Developers

This is a review of the book Kotlin For Android Developers* by Antonio Leiva, an Android Engineer working for an international company.

When you have to pick an educational book the first thing you have to understand is:

  1. what kind of book is
  2. whose the book is for

When it comes to books aimed to teach a new programming language they can roughly divided in two groups: theoretical and pragmatic ones. A theoretical book can be a 1000+ page book that teach all the aspects of the language, from the platform to each construct, usually in a logic order of ascending difficulty. Instead a pragmatic book teaches a language explaining the concepts, while you meet them in the course of building something, like an app.

A book may be too short or change arguments too quickly for a beginner audience or, vice versa, it might have a too slow pace for an advanced user. Granted, some books are just bad, but usually the problem is that the reader picked the wrong book.

Audience Of The Book

The title itself of the book Kotlin For Android Developers does a good job in clarifying its type and audience: it is a pragmatic book for experienced Android developers that want to pick up Kotlin. Which means that it builds upon your Android knowledge, to teach you how to do with Kotlin the stuff you already know how to do with Java.

To put in another way: the book does not explain how to create Android applications, if you do not already know how to do that. In fact, if you are not an experienced Android developer, you will not understand what is going on or why somethings matters. Probably you will not even understand Kotlin that well.

This also means something that might be obvious to some, but not all: there is very little theory. You should already know how the tools work (e.g., Gradle) and what things like delegates or lambda are. Only the chapter on Generics explains a bit of the theory behind them. Also, typically the issues with using a certain feature are not discussed, unless the issue is related to the Kotlin approach.

For instance, when listing the operators that you can overload that is what the book has to say about identity comparison in Kotlin:

Operators === and !== do identity checks (they are == and != in Java respectively)
and can’t be overloaded.

─ Chapter 11, p. 49

In short, if you are an expert programmer that complains constantly about filler content, you are the perfect audience for this book. If you are a novice that needs hand-holding, you should look elsewhere. Maybe you can come back later to this book, once you have covered your basis.

Structure Of The Book

The book does not really have a formal structure, for the most part: there are 30 short chapters about several aspects you will encounter developing an Android app. An Android developer might notice that the order of the chapters resembles how a real app is developed: you create a working app as soon as possible and then you refactor it to make it beautiful.

Although, to be fair, most of the time the chapters does not seem to follow any particular order. We cannot really understand if there is any reason to explain control flow expressions in chapter 22 of 30. On the other hand, given the audience of the book, this is not really a problem because you are supposed to already know your way around an Android app.

In our opinion, this approach makes sense given the audience (developers with experience on Android). Busy developers can jump quickly to the point they are interested in, while skipping parts that are not extremely important for them right now. Experts do not need someone to draw the path for them, they need pointers to find quickly the information they are looking for.

There are only a few minor issues related to the order of topics. For example, reified generics are discusses before the chapter on generics; the REPL and the online playground are not mentioned in the Getting ready chapter, but in the introduction of the chapter about classes.

The internal structure of each chapter is more consistent: there is usually a problem and the code that solve it, all related to a weather app that is used throughout the book. The code of each chapter is presented in its entirety in the companion repository of the book. The reader is constantly reminded of the repository. Also, frequently the author notes that the chapter only discuss the major modifications to the code and not everything that is in the repository. We think that code should be at the center of books about programming, so we really liked this approach.

There are a few chapters that just list, or explain, things about Kotlin, without any reference to the app. For example, chapter 11, that lists which operators you can overload, or chapter 18, that lists collections and related operations of the Kotlin standard library.

Content Of The Book

The book covers all the main aspects of Kotlin: from variables and null safety to generics and lambdas. So there is no complain to be made there. They are also covered in pragmatic terms, you are rarely going to see a few pages without any code. When this happens is usually because of the few things that needs an explanation, or a list, like the operators that you can overload. There is also a chapter for coroutines, an experimental features of Kotlin 1.1, which is a nice surprise. Of course, all the content is explained with Android development and issues in mind.

The book also covers a few essential libraries and tools: Anko and the Kotlin Android Extensions. Anko is a library composed of several modules and many of them are used in the book: Anko SQLite, Anko Coroutines, etc. The addition of this library, which will probably be used by almost all developers, is a good example of the benefits of the pragmatic approach of the book. You are going to learn most of what you are going to use in your everyday development for Android with Kotlin.

The only important thing that the book does not talk about is Anko Layouts. And the reason is that the author does not care about it, which is a perplexing choice or, at the very least, a perplexing justification.

Anko is a powerful library developed by JetBrains. Its main purpose is the generation of UI layouts by using code instead of XML. This is an interesting feature I recommend you to try, but I won’t be using it in this project. To me (probably due to years of experience writing UIs) using XML is much easier, but you could like this approach.

─ Chapter 7, p. 33

Maybe it is true that most Android developers are used to XML, just like author, but it seems an odd reason to exclude something, especially since the author itself present it as the main purpose of the library.

In any case, with this choice the author miss the chance to talk about type-safe builders, which can be useful to build also HTML layouts or any kind of type-safe hierarchical data.

Summary

Once you understand the audience of the book you are going to agree that it has only a few flaws. The content you need is all there, although you could argue that some chapters devoted to theory are a bit thin.

For instance, the first chapter, that explains why you should use Kotlin for Android is a bit short. It does not really introduce all the good things of Kotlin (e.g., Anko) that the book will talk about, and it does not present well the one it mentions (e.g. Expressiveness shows only data classes and not other features linked to expressiveness). But this is mostly nitpicking.

The structure of the book can be perplexing. However, since the book is for experienced Android developers, this might be annoying for some, but not problematic for the target audience.

On the other hand if you know Android and prefer a pragmatic and code-first approach this book is the best you can find to learn Kotlin to use it for your Android apps.

There is no filler content, not a word more than the one you need to get you going and there is no quicker way to learn how to use Kotlin in your job.

A nice touch is that the author periodically updates the book, also based on the feedback he receives. The updates are sent automatically for the digital version. Buyers of the physical one can ask the author for free access to an updated digital edition.

* Disclaimer: the author gave us a copy of the book for the review but we did not have any agreement for affiliate marketing or any other interest in recommending this book at the time we wrote the review. Now, we do have an affiliate agreement, but our review has not been modified.

The post Review Of the Book Kotlin For Android Developers appeared first on SuperKotlin.

Continue ReadingReview Of the Book Kotlin For Android Developers

Review Of the Book Kotlin For Android Developers

This is a review of the book Kotlin For Android Developers* by Antonio Leiva, an Android Engineer working for an international company.

When you have to pick an educational book the first thing you have to understand is:

  1. what kind of book is
  2. whose the book is for

When it comes to books aimed to teach a new programming language they can roughly divided in two groups: theoretical and pragmatic ones. A theoretical book can be a 1000+ page book that teach all the aspects of the language, from the platform to each construct, usually in a logic order of ascending difficulty. Instead a pragmatic book teaches a language explaining the concepts, while you meet them in the course of building something, like an app.

A book may be too short or change arguments too quickly for a beginner audience or, vice versa, it might have a too slow pace for an advanced user. Granted, some books are just bad, but usually the problem is that the reader picked the wrong book.

Audience Of The Book

The title itself of the book Kotlin For Android Developers does a good job in clarifying its type and audience: it is a pragmatic book for experienced Android developers that want to pick up Kotlin. Which means that it builds upon your Android knowledge, to teach you how to do with Kotlin the stuff you already know how to do with Java.

To put in another way: the book does not explain how to create Android applications, if you do not already know how to do that. In fact, if you are not an experienced Android developer, you will not understand what is going on or why somethings matters. Probably you will not even understand Kotlin that well.

This also means something that might be obvious to some, but not all: there is very little theory. You should already know how the tools work (e.g., Gradle) and what things like delegates or lambda are. Only the chapter on Generics explains a bit of the theory behind them. Also, typically the issues with using a certain feature are not discussed, unless the issue is related to the Kotlin approach.

For instance, when listing the operators that you can overload that is what the book has to say about identity comparison in Kotlin:

Operators === and !== do identity checks (they are == and != in Java respectively)
and can’t be overloaded.

─ Chapter 11, p. 49

In short, if you are an expert programmer that complains constantly about filler content, you are the perfect audience for this book. If you are a novice that needs hand-holding, you should look elsewhere. Maybe you can come back later to this book, once you have covered your basis.

Structure Of The Book

The book does not really have a formal structure, for the most part: there are 30 short chapters about several aspects you will encounter developing an Android app. An Android developer might notice that the order of the chapters resembles how a real app is developed: you create a working app as soon as possible and then you refactor it to make it beautiful.

Although, to be fair, most of the time the chapters does not seem to follow any particular order. We cannot really understand if there is any reason to explain control flow expressions in chapter 22 of 30. On the other hand, given the audience of the book, this is not really a problem because you are supposed to already know your way around an Android app.

In our opinion, this approach makes sense given the audience (developers with experience on Android). Busy developers can jump quickly to the point they are interested in, while skipping parts that are not extremely important for them right now. Experts do not need someone to draw the path for them, they need pointers to find quickly the information they are looking for.

There are only a few minor issues related to the order of topics. For example, reified generics are discusses before the chapter on generics; the REPL and the online playground are not mentioned in the Getting ready chapter, but in the introduction of the chapter about classes.

The internal structure of each chapter is more consistent: there is usually a problem and the code that solve it, all related to a weather app that is used throughout the book. The code of each chapter is presented in its entirety in the companion repository of the book. The reader is constantly reminded of the repository. Also, frequently the author notes that the chapter only discuss the major modifications to the code and not everything that is in the repository. We think that code should be at the center of books about programming, so we really liked this approach.

There are a few chapters that just list, or explain, things about Kotlin, without any reference to the app. For example, chapter 11, that lists which operators you can overload, or chapter 18, that lists collections and related operations of the Kotlin standard library.

Content Of The Book

The book covers all the main aspects of Kotlin: from variables and null safety to generics and lambdas. So there is no complain to be made there. They are also covered in pragmatic terms, you are rarely going to see a few pages without any code. When this happens is usually because of the few things that needs an explanation, or a list, like the operators that you can overload. There is also a chapter for coroutines, an experimental features of Kotlin 1.1, which is a nice surprise. Of course, all the content is explained with Android development and issues in mind.

The book also covers a few essential libraries and tools: Anko and the Kotlin Android Extensions. Anko is a library composed of several modules and many of them are used in the book: Anko SQLite, Anko Coroutines, etc. The addition of this library, which will probably be used by almost all developers, is a good example of the benefits of the pragmatic approach of the book. You are going to learn most of what you are going to use in your everyday development for Android with Kotlin.

The only important thing that the book does not talk about is Anko Layouts. And the reason is that the author does not care about it, which is a perplexing choice or, at the very least, a perplexing justification.

Anko is a powerful library developed by JetBrains. Its main purpose is the generation of UI layouts by using code instead of XML. This is an interesting feature I recommend you to try, but I won’t be using it in this project. To me (probably due to years of experience writing UIs) using XML is much easier, but you could like this approach.

─ Chapter 7, p. 33

Maybe it is true that most Android developers are used to XML, just like author, but it seems an odd reason to exclude something, especially since the author itself present it as the main purpose of the library.

In any case, with this choice the author miss the chance to talk about type-safe builders, which can be useful to build also HTML layouts or any kind of type-safe hierarchical data.

Summary

Once you understand the audience of the book you are going to agree that it has only a few flaws. The content you need is all there, although you could argue that some chapters devoted to theory are a bit thin.

For instance, the first chapter, that explains why you should use Kotlin for Android is a bit short. It does not really introduce all the good things of Kotlin (e.g., Anko) that the book will talk about, and it does not present well the one it mentions (e.g. Expressiveness shows only data classes and not other features linked to expressiveness). But this is mostly nitpicking.

The structure of the book can be perplexing. However, since the book is for experienced Android developers, this might be annoying for some, but not problematic for the target audience.

On the other hand if you know Android and prefer a pragmatic and code-first approach this book is the best you can find to learn Kotlin to use it for your Android apps.

There is no filler content, not a word more than the one you need to get you going and there is no quicker way to learn how to use Kotlin in your job.

A nice touch is that the author periodically updates the book, also based on the feedback he receives. The updates are sent automatically for the digital version. Buyers of the physical one can ask the author for free access to an updated digital edition.

* Disclaimer: the author gave us a copy of the book for the review but we did not have any agreement for affiliate marketing or any other interest in recommending this book at the time we wrote the review. Now, we do have an affiliate agreement, but our review has not been modified.

The post Review Of the Book Kotlin For Android Developers appeared first on SuperKotlin.

Continue ReadingReview Of the Book Kotlin For Android Developers

Kotlin Courses: Reviews And Comparison

You have seen the benefits Kotlin can bring to you, however you have to learn Kotlin. You can do learn it on your own, pick a book or get access to a course.

The problem is to you have to figure out which course is best for you: we have reviewed the most relevant ones and in this article we are going to give you the information you need to pick the course that is right for you.

If none of this course is what you are looking for you can still look into our list of 100+ Resources To Learn Kotlin The Right Way.

What you will find in this article?

First of all you will find the review of the courses, divided in four groups. Depending on the level at which you want to learn Kotlin, your background and if you are interested specifically for Android development you can pick one or more specific groups to investigate them further.

The following table provides a summary of the characteristics of the available courses.

Name Platform Type Length Price ($)
Kotlin for Java Developers Treehouse Introductory 02:41 25-49 (subscription)
Learning Kotlin for Android Development Lynda.com Introductory 01:01 15-25 (subscription)
Introduction to Kotlin Programming / Advanced Kotlin Programming Safari (O’Reilly) Course for developers 05:14 / 03:00 39 (subscription)
Introduction To Kotlin Udemy Course for developers 04:55 50
Kotlin Fundamentals Pluralsight Course for developers 04:47 29 (subscription)
Kotlin for Beginners: Learn Programming With Kotlin Udemy Course for non-developers 06:37 95
The Essential Kotlin Programming Course (Android Developers) Udemy Course for non-developers 25:25 150
The Complete Kotlin Developer Course: Become A Pro! Udemy Course for non-developers 04:04 30
Kotlin & Android Developer Masterclass – Beginner to Advanced Udemy Course for Android 19:43 200
The Complete Android Kotlin Developer Udemy Course for Android 26:27 200
Building Spring Boot Applications with the Kotlin Programming Language Manning Course for Developers 07:51 154.99
Kotlin for Android & Java Developers Manning Course for Android 09:18 204.99

Notes: if the price indicate a subscription it is a monthly subscription to a whole library of courses including the one reviewed; Udemy pricing varies wildly and can be lowered even by 90% during promotions; the length of a course could vary since it can be updated.

Beside helping you picking up the right course for you we have a few more considerations to share:

Introductory Courses

A stilyzed representation of programming

Kotlin for Java Developers is a relatively short journey (it lasts 161 minutes) to learn the basics of Kotlin through the development of card games for Android. The course is meant to introduce Android developers to Kotlin and help them get started or evaluate the adoption of Kotlin in their professional life.

Learning Kotlin for Android Development is a short one-hour course for learning the basics of Kotlin and exploring how it can help in your Android development, all by creating a simple app for Android. It also touches on the setup of Android development (eg. creating an emulator) and converting a Java app in Kotlin.

Courses For (Java) Developers

A cup, usually a symbol of Java, with a Kotlin logo

These are course for developers, especially experienced Java programmers. They can be basics or in-depth, but usually takes advantage of previous Java knowledge to skip most of the theory.

Kotlin Programming By O’Reilly

Introduction to Kotlin Programming and Advanced Kotlin Programming are two O’Reilly courses from Hadi Hariri, VP of Developer Advocacy at JetBrains, the company that created Kotlin. The courses do not strictly require a knowledge of Java, in the first one there is even short introduction to the JVM. Having said that, there is one part dedicated to the interoperability with Java, so if you know Java or any other JVM language you are going to get the most out of it.

In any case you need to be a developer. The course covers well how to do things in Kotlin, but not the theory behind the features. The first course covers the basics, that you will use in your everyday job: everything from conditional expressions to the fundamentals of Kotlin lambdas. The second one covers advanced topics like metaprogramming, delegation  and deeper examination of Generics and Functions.

Introduction To Kotlin

Despite the name, Introduction to Kotlin it is a relatively in-depth (5 hours) course to explain Kotlin to Java developers. Technically the overview says only that Java knowledge is beneficial, but there are comparison to Java here and there. Furthermore many reviews laments a very fast pace, so probably Java experience is needed to have the best experience.

The course is essentially divided in two parts: the first covers Kotlin syntax and how to use all its features, even higher-order functions; the second one is about the advanced usage of Kotlin collections and reflection.

The second part seems a bit rushed, I mean there is even a section titled Odds & Ends. On the other hand the section on the usage of the Collections functions of the standard library can be quite useful especially if you come form Java and you have never used a language like C# (with LINQ).

Kotlin Fundamentals

Kotlin Fundamentals is a good course for experienced Java developers with a puzzling title. In fact the course explore all you need to know in your professional life to use of Kotlin in the best way, especially interacting with Java. For instance there is a few sections on how functional interfaces and nullability of Kotlin interact with Java. A more apt title would have been something like Real Life Kotlin For Java Developers.

Having said that, the course offers brief introduction to the topic at hand before developing it. It also focuses on pragmatic problems with can be useful for professional developers and, of course, puzzling for beginners. For instance, there is a section titled Working with Infinite Collections that explains Sequences in Kotlin, an expert would know why it makes sense to care about the issue, while a beginner would ask himself what infinite means.

Building Spring Boot Applications with the Kotlin Programming Language

Building Spring Boot Applications with the Kotlin Programming Language is a course for experienced Java developers. In fact the course will continually reference Java concepts and features to compare them with Kotlin ones. This means that in order to get the most out of it, it is better not just to know Java, but to also have used it in production. This can be great for the intended audience, because there is no time lost for leaning the basics: you frequently get right to the point and get the information you need.

The course is essentially divide in two parts: the first one explains the individual features of Kotlin, the second one explains how to integrate or replace Java features and libraries with Kotlin. For instance, there are sections for Hibernate and testing in Kotlin is compared with testing with JUnit. There is obviously a large section on Spring Boot, but it is not seem the central piece of the course, as it might seem from the tile.

The second part also talk extensively about Java interoperability and advanced topics like reflection or functional programming.

In short, it is a great choice if you use Java in production and want a course focused on helping you to migrate to Kotlin with the mindset of somebody like you. It might not be ideal for people that want to learn to think as a Kotlin user. That is because it is designed to be easy to follow for Java users, but it might not be the best design for learning Kotlin from scratch.

Kotlin Courses For Non-Developers

A clueless person in a lab coat typing on an old computer

These are course for complete beginners in programming, you should expect and hope for a lot of theory.

Kotlin For Beginners: Learn Programming With Kotlin

Kotlin for Beginners: Learn Programming With Kotlin (see note) is a course to learn programming with Kotlin starting from scratch. And with that we mean that really you do not need to know anything even about Udemy, the platform the course uses. In fact there is an introductory video to explain the features of Udemy itself (eg. how to speed-up the video, where to find the companion resources, etc.) and how to best take advantage of the course. You cannot get more beginner friendly than that.

The course will teach you both the basic features and concepts of programming, in general, and the Kotlin language, in particular. Concepts and Kotlin idioms are explained together, for instance the difference between expression and statement is explained while explaining the advanced usage of if and when. However there are also theoretical sections, for example one on binary and hexadecimal numbers.

There are quizzes and coding challenges (i.e. exercises) to help your test and practice your programming skills. The course also offers solutions accessible through GitHub. It is a nice touch and a good way to introduce a professional tool to beginners.

In terms of content, apart from the obvious basics (e.g. variables, lists, etc.), there are a few sections that covers all aspects of object-oriented programming, everything from what methods are to singletons. Both theory (eg. information hiding) and practice are explained. It is important to note that you will not find explanation of the more advanced functional features of Kotlin, such as lambdas and higher order functions.

We would like to thank the author of this course for having given us free access to it. He has also prepared a special offer for our readers, following that link you will get the course for a reduced price.

There is no affiliate marketing agreement between SuperKotlin and the author or Udemy. That is to say we do not receive any money if you purchase the course with a discount or to show you this review or for anything else.

The Essential Kotlin Programming Course (Android Developers)

The Essential Kotlin Programming Course (Android Developers) is a very in-depth course (25 hours) that explains at length the topic at hand and then also explains how it works in Kotlin. Let’s say that there is one hour introductory section that explains the features of Kotlin and what are object oriented and functional programming.

The rest of the course is equally thorough in explaining the theory and how it applies to Kotlin programming. For instance it takes its time (2 hours) to explains Kotlin Collections of the standard library: what they are, the different functions, how they relate to the corresponding Java collections…

The course is both theory and practice, not just because it explain how doing things in Kotlin, but also because there are five hours of exercise lessons. In short this course is the closest equivalent to a traditional university course. Which is great if you think that online courses tend to be too quick and pragmatic, leaving out how things works and why they work that way.

The course lacks parts about Concurrency and Metaprogramming, that are still in the works. The course explains how to use programming tools (ie. IDEs) and in particular Android Studio (including the Emulator), but apart from that there seems to be little on the specifics of Android development.

The Complete Kotlin Developer Course: Become A Pro!

The Complete Kotlin Developer Course: Become A Pro! is a good course for beginners that overpromise a bit. We mean that the course is short (4 hours) for a complete course intended to transform a beginner in a professional developer. It basically covers the basics of programming and the syntax of Kotlin: from variables to what is object oriented programming.

The course is cheap and short for a complete course, so in some sense it is the opposite of some other complete courses, but it is also very popular, so many people find it worthwhile. If you want to quickly and cheaply learn programming and understand that the course does not actually prepare you to become a professional, it can be a good choice.

Courses For PEOPLE Interested In Android

Audience cheering for the announcement of Kotlin support on Android

These are course for people that do not know anything about programming except that they want to create mobile apps for Android, probably for making money with apps. There are also courses for people that know programming, but want to learn Kotlin specifically for Android development.

Kotlin & Android Developer Masterclass – Beginner to Advanced

Kotlin & Android Developer Masterclass – Beginner to Advanced is a comprehensive course (19 hours) that teaches Kotlin in the context of Android development. The course is essentially divided in two parts: the first explains the basics of programming with Kotlin (eg. variables, functions, etc.), the second one covers Android development, everything from using Android Studio to user interfaces, databases and web services.

When it comes to content the only topic that is not explained explicitly are functional features of Kotlin, although some of them are used in practice, for instance when talking about listeners. This is not a big oversight if you only care about Android development, but it matters if you are more interested in a comprehensive Kotlin programming course.

The course could probably use an editor to review the texts for style and clarity, for instance the title of the lessons are unnecessarily complex at times and do not follow a coherent style. The actual lesson videos follow an understandable script. The organization of the course is also a bit perplexing, for example: a lesson to explain return types of functions is inside a section dedicated to object oriented programming; arrays are explained after advanced objected oriented programming.

The Complete Android Kotlin Developer

The Complete Android Kotlin Developer is a very in-depth course (26 hours) to learn programming and Android development using Kotlin. It touches so many topics that we cannot really cover them all, but in short we can say:

  • it starts by covering the basics of programming, both in theory and with Kotlin, with things such as conditional expressions up to object oriented programming
  • it continues with many example Android apps that are used to explain interaction and different layouts available in Android
  • it passes to advanced Android apps to shows how to use important programming tools like databases (SQLite and Firebase), web services and specific Android features like sensors and media player
  • it ends with complete example apps to put everything together

It is one of the longest, most expensive and most followed course for Kotlin on Udemy. It is designed to transform a normal person in a professional junior Android developer. Which means that many people want to become professional developers and they find this course good for their needs. The downside of covering so many topics is that many reviewers mentions that the rapid switch from one topics to the next can leave some people hanging. So keep that in mind.

The only thing that does not cover well is making mobile games. We think that is for the best because to cover the subject professionally it would require a whole new in-depth course and Kotlin might not be the best choice for that kind of apps. However it is relevant to note it for complete beginners. For instance given the limited support for functional programming in Java, the functional programming section is a bit limited by the Java mindset.

Kotlin for Android & Java Developers

Kotlin for Android & Java developers is course designed to help Android developers using Java to switch to Kotlin. The course is best described by the author himself:

This course is your practical hands-on introduction to the world of Kotlin. You start out learning about Kotlin itself, its principles and its benefits, then dive right into functional programming and object orientation in Kotlin. You’ll then dive into building an Android app purely in Kotlin, using powerful language features and best practices.

Peter Sommerhoff

I think this description gives a fair picture: it teaches you Kotlin with a focus on Android development. This course is divided in two sections: one about Kotlin fundamentals, the other one about development in Android.

A positive aspect of the course is that it does not follows a Java-based approach. So, it does not teach you Kotlin as if it were simply an improved Java. It teach you Kotlin, but referring to your Java knowledge.

The second section of the course does not teach you Android development from scratch: it is neither a reference, nor a guide Android development. It is a guide to Android development with Kotlin. It teaches you how to use Kotlin for Menus, Activities, SQLite, etc. but if you do not already know how these elements fits together you may get lost.

The instructor of the course is Peter Sommerhoff, the founder of CodeAlong.tv, which I think many users will find a bonus and a form of quality assurance.

In short, this course works well for Android developers that want to learn Kotlin for developing Android applications. Many people will love this focused and pragmatic approach.

When To Pick A Book, An Online Course Or In-person Training

There are four main different approaches that you could decide to take to learn a programming language:

  1. To learn on your own: using only free online resources and building your custom learning program
  2. To buy a book and follow it
  3. To get access to an online course, follow the lessons and do the exercises
  4. To attend in-person training

The option number zero does not require any monetary investment, however it is the one that requires the most time and pose the most risks, because the person could miss important subjects or using sub-optimal resources. We have already linked our list of resources to help you if you want pick this way, so let’s focus on the other three instead.

These three options offer different balance on different aspects.

  • The risk: the more supervision you have, the more you can be reassured of being on the right track, your errors can be caught sooner.
  • Time to learn: the less supervision you will get, the more you will rely on trial-and-error. It means it will take longer to really master the content.
  • Investment: the investment in term of money grows significantly with the level of supervision. A book can cost tens of euros/dollars, a MOOC could go from the tens to the hundreds of euros/dollars, while in person training will typically be in the thousands of euros/dollars
  • Access: buying books and access to MOOCs is very easy. Once you got access you can read a book everywhere, while typically you will consume a MOOC at your desk, ready to work on exercises. In person training instead requires to hire a teacher and agree on a date to deliver the course, so access is less immediate to get
Kotlin courses vs in person training vs book
Book vs MOOC vs In-person training

So what is the best solution for you to learn Kotlin?

It really depends on the value of your time and the amount of money you can afford to invest.

If you are a student with the head full of dreams and an empty wallet the answer is clear: you should just use free online resources or maybe buy a book for 20-30$. That would be a wise investment. After all, if it takes a few more months to learn Kotlin it will not make a huge difference for you.

As a freelancer or a young professional probably a MOOC is the best compromise: you get lessons from knowledgeable teachers and you typically get exercises to evaluate your progress. MOOC are also usually updated more frequently than books, so you get fresher content, in line with the evolution of Kotlin. Maybe there is also a forum where you can get answers to a few of your questions.

If you are a seasoned professional or you work at a company with an healthy business than in-person training could be the most reasonable choice for you. You cannot afford to learn by trial-and-error, you do not have the time to look for the best resources online and evaluate them. Taking a few months to learn Kotlin would have an impact on the business as projects are delayed or move on slowly. Considering the cost of an employee for a company your time is extremely expensive. Whatever can save you time justify significant investments in terms of money.

So depending on where you are in life, you can value different things and different ways to learn could make more sense for you.

Books For Self-Learners

Historically the favorite tool for learners has been a book, or many books. It is a tool that can be used both by self-learners and students in a regular course or learning institution. The advantage of learning on your own is that you can choose your own pace and pay less than a traditional course, since a book cost much less than a teacher.

The disadvantage is the lack of a person that can help you understand the material, the loneliness of the experience and the static nature of a book. A static nature means that the information can become outdated and it is always in the same form and the same pacing: a written text with a lot of repetitions to insure everybody can understand.

Learning Online: MOOC

A new tool was created and delivered through the internet that could overcome some of the limits of books: MOOC (Massive Open Online Courses). While there is not a rigid formula behind a MOOC, they usually share a few characteristics:

  • different types of videos (lessons, lectures, etc.) and content (exercises, references, etc.)
  • a minimal structure in the learning material
  • permanent access to content that is regularly updated
  • a learning community
  • a teacher available to help through asynchronous methods of communication

The learner must still be willing to put the effort and to learn the material mostly on its own. But if he encounters some problem the community or the teacher can help and they can always provide support and motivation to learn. The content is better organized, provided in different forms. For instance you can have video, test quizzes and even a short reference document. It is also usually updated regularly.

The downside of a video course is that the material is harder to search and access and the cost is higher. It is harder to search and access because it is a video and not a text, so neither humans nor software can quickly scan it. It cost more because it is more expensive to produce and a teacher is usually available to help students.

In-person Training For Learning Kotlin

A lot of devices

Apart from a few cases, usually a business need a tool that can give a definitive time frame for getting the results it needs. That is because planning is fundamental in a business: if a project must be started now, delaying it because the personnel does not have the right skills is going to cost lost revenues.

Preferably it should also be a tool that can save time by being adaptable to the specific needs of the business. There is no need to teach your developers how to make Android application in Kotlin, if you do not plan to create them. Also, a course should be based on the specific background of your personnel.

In the case of learning that tool is a traditional face-to-face course delivered by a teacher, that has experience in the subject and in teaching to professionals. We can provide that: we have courses designed for professional developers and technicians or scientists. Our courses can prepare both Java and non-Java developers to create professional software in idiomatic Kotlin. We can also teach scientists, and all other kinds of technical personnel, scripting and basic programming in Kotlin. If you are interested look at our page for Courses.

Summary

There are may ways to learn depending on where you are in life, how valuable is your time and how you prefer to learn. Online courses are a good options for many of you and we hope that this article will help you pick the right one for you. Whatever way you choose we hope you are going to learn Kotlin soon and have fun doing it.

We are not connected to any author or platform of these courses. We do not have any affiliate marketing agreement with them and we are not getting anything to review any of them.

The post Kotlin Courses: Reviews And Comparison appeared first on SuperKotlin.

Continue ReadingKotlin Courses: Reviews And Comparison

Kotlin Courses: Reviews And Comparison

You have seen the benefits Kotlin can bring to you, however you have to learn Kotlin. You can do learn it on your own, pick a book or get access to a course.

The problem is to you have to figure out which course is best for you: we have reviewed the most relevant ones and in this article we are going to give you the information you need to pick the course that is right for you.

If none of this course is what you are looking for you can still look into our list of 100+ Resources To Learn Kotlin The Right Way.

What you will find in this article?

First of all you will find the review of the courses, divided in four groups. Depending on the level at which you want to learn Kotlin, your background and if you are interested specifically for Android development you can pick one or more specific groups to investigate them further.

The following table provides a summary of the characteristics of the available courses.

Name Platform Type Length Price ($)
Kotlin for Java Developers Treehouse Introductory 02:41 25-49 (subscription)
Learning Kotlin for Android Development Lynda.com Introductory 01:01 15-25 (subscription)
Introduction to Kotlin Programming / Advanced Kotlin Programming Safari (O’Reilly) Course for developers 05:14 / 03:00 39 (subscription)
Introduction To Kotlin Udemy Course for developers 04:55 50
Kotlin Fundamentals Pluralsight Course for developers 04:47 29 (subscription)
Kotlin for Beginners: Learn Programming With Kotlin Udemy Course for non-developers 06:37 95
The Essential Kotlin Programming Course (Android Developers) Udemy Course for non-developers 25:25 150
The Complete Kotlin Developer Course: Become A Pro! Udemy Course for non-developers 04:04 30
Kotlin & Android Developer Masterclass – Beginner to Advanced Udemy Course for Android 19:43 200
The Complete Android Kotlin Developer Udemy Course for Android 26:27 200
Building Spring Boot Applications with the Kotlin Programming Language Manning Course for Developers 07:51 154.99
Kotlin for Android & Java Developers Manning Course for Android 09:18 204.99

Notes: if the price indicate a subscription it is a monthly subscription to a whole library of courses including the one reviewed; Udemy pricing varies wildly and can be lowered even by 90% during promotions; the length of a course could vary since it can be updated.

Beside helping you picking up the right course for you we have a few more considerations to share:

Introductory Courses

A stilyzed representation of programming

Kotlin for Java Developers is a relatively short journey (it lasts 161 minutes) to learn the basics of Kotlin through the development of card games for Android. The course is meant to introduce Android developers to Kotlin and help them get started or evaluate the adoption of Kotlin in their professional life.

Learning Kotlin for Android Development is a short one-hour course for learning the basics of Kotlin and exploring how it can help in your Android development, all by creating a simple app for Android. It also touches on the setup of Android development (eg. creating an emulator) and converting a Java app in Kotlin.

Courses For (Java) Developers

A cup, usually a symbol of Java, with a Kotlin logo

These are course for developers, especially experienced Java programmers. They can be basics or in-depth, but usually takes advantage of previous Java knowledge to skip most of the theory.

Kotlin Programming By O’Reilly

Introduction to Kotlin Programming and Advanced Kotlin Programming are two O’Reilly courses from Hadi Hariri, VP of Developer Advocacy at JetBrains, the company that created Kotlin. The courses do not strictly require a knowledge of Java, in the first one there is even short introduction to the JVM. Having said that, there is one part dedicated to the interoperability with Java, so if you know Java or any other JVM language you are going to get the most out of it.

In any case you need to be a developer. The course covers well how to do things in Kotlin, but not the theory behind the features. The first course covers the basics, that you will use in your everyday job: everything from conditional expressions to the fundamentals of Kotlin lambdas. The second one covers advanced topics like metaprogramming, delegation  and deeper examination of Generics and Functions.

Introduction To Kotlin

Despite the name, Introduction to Kotlin it is a relatively in-depth (5 hours) course to explain Kotlin to Java developers. Technically the overview says only that Java knowledge is beneficial, but there are comparison to Java here and there. Furthermore many reviews laments a very fast pace, so probably Java experience is needed to have the best experience.

The course is essentially divided in two parts: the first covers Kotlin syntax and how to use all its features, even higher-order functions; the second one is about the advanced usage of Kotlin collections and reflection.

The second part seems a bit rushed, I mean there is even a section titled Odds & Ends. On the other hand the section on the usage of the Collections functions of the standard library can be quite useful especially if you come form Java and you have never used a language like C# (with LINQ).

Kotlin Fundamentals

Kotlin Fundamentals is a good course for experienced Java developers with a puzzling title. In fact the course explore all you need to know in your professional life to use of Kotlin in the best way, especially interacting with Java. For instance there is a few sections on how functional interfaces and nullability of Kotlin interact with Java. A more apt title would have been something like Real Life Kotlin For Java Developers.

Having said that, the course offers brief introduction to the topic at hand before developing it. It also focuses on pragmatic problems with can be useful for professional developers and, of course, puzzling for beginners. For instance, there is a section titled Working with Infinite Collections that explains Sequences in Kotlin, an expert would know why it makes sense to care about the issue, while a beginner would ask himself what infinite means.

Building Spring Boot Applications with the Kotlin Programming Language

Building Spring Boot Applications with the Kotlin Programming Language is a course for experienced Java developers. In fact the course will continually reference Java concepts and features to compare them with Kotlin ones. This means that in order to get the most out of it, it is better not just to know Java, but to also have used it in production. This can be great for the intended audience, because there is no time lost for leaning the basics: you frequently get right to the point and get the information you need.

The course is essentially divide in two parts: the first one explains the individual features of Kotlin, the second one explains how to integrate or replace Java features and libraries with Kotlin. For instance, there are sections for Hibernate and testing in Kotlin is compared with testing with JUnit. There is obviously a large section on Spring Boot, but it is not seem the central piece of the course, as it might seem from the tile.

The second part also talk extensively about Java interoperability and advanced topics like reflection or functional programming.

In short, it is a great choice if you use Java in production and want a course focused on helping you to migrate to Kotlin with the mindset of somebody like you. It might not be ideal for people that want to learn to think as a Kotlin user. That is because it is designed to be easy to follow for Java users, but it might not be the best design for learning Kotlin from scratch.

Kotlin Courses For Non-Developers

A clueless person in a lab coat typing on an old computer

These are course for complete beginners in programming, you should expect and hope for a lot of theory.

Kotlin For Beginners: Learn Programming With Kotlin

Kotlin for Beginners: Learn Programming With Kotlin (see note) is a course to learn programming with Kotlin starting from scratch. And with that we mean that really you do not need to know anything even about Udemy, the platform the course uses. In fact there is an introductory video to explain the features of Udemy itself (eg. how to speed-up the video, where to find the companion resources, etc.) and how to best take advantage of the course. You cannot get more beginner friendly than that.

The course will teach you both the basic features and concepts of programming, in general, and the Kotlin language, in particular. Concepts and Kotlin idioms are explained together, for instance the difference between expression and statement is explained while explaining the advanced usage of if and when. However there are also theoretical sections, for example one on binary and hexadecimal numbers.

There are quizzes and coding challenges (i.e. exercises) to help your test and practice your programming skills. The course also offers solutions accessible through GitHub. It is a nice touch and a good way to introduce a professional tool to beginners.

In terms of content, apart from the obvious basics (e.g. variables, lists, etc.), there are a few sections that covers all aspects of object-oriented programming, everything from what methods are to singletons. Both theory (eg. information hiding) and practice are explained. It is important to note that you will not find explanation of the more advanced functional features of Kotlin, such as lambdas and higher order functions.

We would like to thank the author of this course for having given us free access to it. He has also prepared a special offer for our readers, following that link you will get the course for a reduced price.

There is no affiliate marketing agreement between SuperKotlin and the author or Udemy. That is to say we do not receive any money if you purchase the course with a discount or to show you this review or for anything else.

The Essential Kotlin Programming Course (Android Developers)

The Essential Kotlin Programming Course (Android Developers) is a very in-depth course (25 hours) that explains at length the topic at hand and then also explains how it works in Kotlin. Let’s say that there is one hour introductory section that explains the features of Kotlin and what are object oriented and functional programming.

The rest of the course is equally thorough in explaining the theory and how it applies to Kotlin programming. For instance it takes its time (2 hours) to explains Kotlin Collections of the standard library: what they are, the different functions, how they relate to the corresponding Java collections…

The course is both theory and practice, not just because it explain how doing things in Kotlin, but also because there are five hours of exercise lessons. In short this course is the closest equivalent to a traditional university course. Which is great if you think that online courses tend to be too quick and pragmatic, leaving out how things works and why they work that way.

The course lacks parts about Concurrency and Metaprogramming, that are still in the works. The course explains how to use programming tools (ie. IDEs) and in particular Android Studio (including the Emulator), but apart from that there seems to be little on the specifics of Android development.

The Complete Kotlin Developer Course: Become A Pro!

The Complete Kotlin Developer Course: Become A Pro! is a good course for beginners that overpromise a bit. We mean that the course is short (4 hours) for a complete course intended to transform a beginner in a professional developer. It basically covers the basics of programming and the syntax of Kotlin: from variables to what is object oriented programming.

The course is cheap and short for a complete course, so in some sense it is the opposite of some other complete courses, but it is also very popular, so many people find it worthwhile. If you want to quickly and cheaply learn programming and understand that the course does not actually prepare you to become a professional, it can be a good choice.

Courses For PEOPLE Interested In Android

Audience cheering for the announcement of Kotlin support on Android

These are course for people that do not know anything about programming except that they want to create mobile apps for Android, probably for making money with apps. There are also courses for people that know programming, but want to learn Kotlin specifically for Android development.

Kotlin & Android Developer Masterclass – Beginner to Advanced

Kotlin & Android Developer Masterclass – Beginner to Advanced is a comprehensive course (19 hours) that teaches Kotlin in the context of Android development. The course is essentially divided in two parts: the first explains the basics of programming with Kotlin (eg. variables, functions, etc.), the second one covers Android development, everything from using Android Studio to user interfaces, databases and web services.

When it comes to content the only topic that is not explained explicitly are functional features of Kotlin, although some of them are used in practice, for instance when talking about listeners. This is not a big oversight if you only care about Android development, but it matters if you are more interested in a comprehensive Kotlin programming course.

The course could probably use an editor to review the texts for style and clarity, for instance the title of the lessons are unnecessarily complex at times and do not follow a coherent style. The actual lesson videos follow an understandable script. The organization of the course is also a bit perplexing, for example: a lesson to explain return types of functions is inside a section dedicated to object oriented programming; arrays are explained after advanced objected oriented programming.

The Complete Android Kotlin Developer

The Complete Android Kotlin Developer is a very in-depth course (26 hours) to learn programming and Android development using Kotlin. It touches so many topics that we cannot really cover them all, but in short we can say:

  • it starts by covering the basics of programming, both in theory and with Kotlin, with things such as conditional expressions up to object oriented programming
  • it continues with many example Android apps that are used to explain interaction and different layouts available in Android
  • it passes to advanced Android apps to shows how to use important programming tools like databases (SQLite and Firebase), web services and specific Android features like sensors and media player
  • it ends with complete example apps to put everything together

It is one of the longest, most expensive and most followed course for Kotlin on Udemy. It is designed to transform a normal person in a professional junior Android developer. Which means that many people want to become professional developers and they find this course good for their needs. The downside of covering so many topics is that many reviewers mentions that the rapid switch from one topics to the next can leave some people hanging. So keep that in mind.

The only thing that does not cover well is making mobile games. We think that is for the best because to cover the subject professionally it would require a whole new in-depth course and Kotlin might not be the best choice for that kind of apps. However it is relevant to note it for complete beginners. For instance given the limited support for functional programming in Java, the functional programming section is a bit limited by the Java mindset.

Kotlin for Android & Java Developers

Kotlin for Android & Java developers is course designed to help Android developers using Java to switch to Kotlin. The course is best described by the author himself:

This course is your practical hands-on introduction to the world of Kotlin. You start out learning about Kotlin itself, its principles and its benefits, then dive right into functional programming and object orientation in Kotlin. You’ll then dive into building an Android app purely in Kotlin, using powerful language features and best practices.

Peter Sommerhoff

I think this description gives a fair picture: it teaches you Kotlin with a focus on Android development. This course is divided in two sections: one about Kotlin fundamentals, the other one about development in Android.

A positive aspect of the course is that it does not follows a Java-based approach. So, it does not teach you Kotlin as if it were simply an improved Java. It teach you Kotlin, but referring to your Java knowledge.

The second section of the course does not teach you Android development from scratch: it is neither a reference, nor a guide Android development. It is a guide to Android development with Kotlin. It teaches you how to use Kotlin for Menus, Activities, SQLite, etc. but if you do not already know how these elements fits together you may get lost.

The instructor of the course is Peter Sommerhoff, the founder of CodeAlong.tv, which I think many users will find a bonus and a form of quality assurance.

In short, this course works well for Android developers that want to learn Kotlin for developing Android applications. Many people will love this focused and pragmatic approach.

When To Pick A Book, An Online Course Or In-person Training

There are four main different approaches that you could decide to take to learn a programming language:

  1. To learn on your own: using only free online resources and building your custom learning program
  2. To buy a book and follow it
  3. To get access to an online course, follow the lessons and do the exercises
  4. To attend in-person training

The option number zero does not require any monetary investment, however it is the one that requires the most time and pose the most risks, because the person could miss important subjects or using sub-optimal resources. We have already linked our list of resources to help you if you want pick this way, so let’s focus on the other three instead.

These three options offer different balance on different aspects.

  • The risk: the more supervision you have, the more you can be reassured of being on the right track, your errors can be caught sooner.
  • Time to learn: the less supervision you will get, the more you will rely on trial-and-error. It means it will take longer to really master the content.
  • Investment: the investment in term of money grows significantly with the level of supervision. A book can cost tens of euros/dollars, a MOOC could go from the tens to the hundreds of euros/dollars, while in person training will typically be in the thousands of euros/dollars
  • Access: buying books and access to MOOCs is very easy. Once you got access you can read a book everywhere, while typically you will consume a MOOC at your desk, ready to work on exercises. In person training instead requires to hire a teacher and agree on a date to deliver the course, so access is less immediate to get
Kotlin courses vs in person training vs book
Book vs MOOC vs In-person training

So what is the best solution for you to learn Kotlin?

It really depends on the value of your time and the amount of money you can afford to invest.

If you are a student with the head full of dreams and an empty wallet the answer is clear: you should just use free online resources or maybe buy a book for 20-30$. That would be a wise investment. After all, if it takes a few more months to learn Kotlin it will not make a huge difference for you.

As a freelancer or a young professional probably a MOOC is the best compromise: you get lessons from knowledgeable teachers and you typically get exercises to evaluate your progress. MOOC are also usually updated more frequently than books, so you get fresher content, in line with the evolution of Kotlin. Maybe there is also a forum where you can get answers to a few of your questions.

If you are a seasoned professional or you work at a company with an healthy business than in-person training could be the most reasonable choice for you. You cannot afford to learn by trial-and-error, you do not have the time to look for the best resources online and evaluate them. Taking a few months to learn Kotlin would have an impact on the business as projects are delayed or move on slowly. Considering the cost of an employee for a company your time is extremely expensive. Whatever can save you time justify significant investments in terms of money.

So depending on where you are in life, you can value different things and different ways to learn could make more sense for you.

Books For Self-Learners

Historically the favorite tool for learners has been a book, or many books. It is a tool that can be used both by self-learners and students in a regular course or learning institution. The advantage of learning on your own is that you can choose your own pace and pay less than a traditional course, since a book cost much less than a teacher.

The disadvantage is the lack of a person that can help you understand the material, the loneliness of the experience and the static nature of a book. A static nature means that the information can become outdated and it is always in the same form and the same pacing: a written text with a lot of repetitions to insure everybody can understand.

Learning Online: MOOC

A new tool was created and delivered through the internet that could overcome some of the limits of books: MOOC (Massive Open Online Courses). While there is not a rigid formula behind a MOOC, they usually share a few characteristics:

  • different types of videos (lessons, lectures, etc.) and content (exercises, references, etc.)
  • a minimal structure in the learning material
  • permanent access to content that is regularly updated
  • a learning community
  • a teacher available to help through asynchronous methods of communication

The learner must still be willing to put the effort and to learn the material mostly on its own. But if he encounters some problem the community or the teacher can help and they can always provide support and motivation to learn. The content is better organized, provided in different forms. For instance you can have video, test quizzes and even a short reference document. It is also usually updated regularly.

The downside of a video course is that the material is harder to search and access and the cost is higher. It is harder to search and access because it is a video and not a text, so neither humans nor software can quickly scan it. It cost more because it is more expensive to produce and a teacher is usually available to help students.

In-person Training For Learning Kotlin

A lot of devices

Apart from a few cases, usually a business need a tool that can give a definitive time frame for getting the results it needs. That is because planning is fundamental in a business: if a project must be started now, delaying it because the personnel does not have the right skills is going to cost lost revenues.

Preferably it should also be a tool that can save time by being adaptable to the specific needs of the business. There is no need to teach your developers how to make Android application in Kotlin, if you do not plan to create them. Also, a course should be based on the specific background of your personnel.

In the case of learning that tool is a traditional face-to-face course delivered by a teacher, that has experience in the subject and in teaching to professionals. We can provide that: we have courses designed for professional developers and technicians or scientists. Our courses can prepare both Java and non-Java developers to create professional software in idiomatic Kotlin. We can also teach scientists, and all other kinds of technical personnel, scripting and basic programming in Kotlin. If you are interested look at our page for Courses.

Summary

There are may ways to learn depending on where you are in life, how valuable is your time and how you prefer to learn. Online courses are a good options for many of you and we hope that this article will help you pick the right one for you. Whatever way you choose we hope you are going to learn Kotlin soon and have fun doing it.

We are not connected to any author or platform of these courses. We do not have any affiliate marketing agreement with them and we are not getting anything to review any of them.

The post Kotlin Courses: Reviews And Comparison appeared first on SuperKotlin.

Continue ReadingKotlin Courses: Reviews And Comparison

Kotlin Courses: Reviews And Comparison

You have seen the benefits Kotlin can bring to you, however you have to learn Kotlin. You can do learn it on your own, pick a book or get access to a course.

The problem is to you have to figure out which course is best for you: we have reviewed the most relevant ones and in this article we are going to give you the information you need to pick the course that is right for you.

If none of this course is what you are looking for you can still look into our list of 100+ Resources To Learn Kotlin The Right Way.

What you will find in this article?

First of all you will find the review of the courses, divided in four groups. Depending on the level at which you want to learn Kotlin, your background and if you are interested specifically for Android development you can pick one or more specific groups to investigate them further.

The following table provides a summary of the characteristics of the available courses.

Name Platform Type Length Price ($)
Kotlin for Java Developers Treehouse Introductory 02:41 25-49 (subscription)
Learning Kotlin for Android Development Lynda.com Introductory 01:01 15-25 (subscription)
Introduction to Kotlin Programming / Advanced Kotlin Programming Safari (O’Reilly) Course for developers 05:14 / 03:00 39 (subscription)
Introduction To Kotlin Udemy Course for developers 04:55 50
Kotlin Fundamentals Pluralsight Course for developers 04:47 29 (subscription)
Kotlin for Beginners: Learn Programming With Kotlin Udemy Course for non-developers 06:37 95
The Essential Kotlin Programming Course (Android Developers) Udemy Course for non-developers 25:25 150
The Complete Kotlin Developer Course: Become A Pro! Udemy Course for non-developers 04:04 30
Kotlin & Android Developer Masterclass – Beginner to Advanced Udemy Course for Android 19:43 200
The Complete Android Kotlin Developer Udemy Course for Android 26:27 200
Building Spring Boot Applications with the Kotlin Programming Language Manning Course for Developers 07:51 154.99
Kotlin for Android & Java Developers Manning Course for Android 09:18 204.99

Notes: if the price indicate a subscription it is a monthly subscription to a whole library of courses including the one reviewed; Udemy pricing varies wildly and can be lowered even by 90% during promotions; the length of a course could vary since it can be updated.

Beside helping you picking up the right course for you we have a few more considerations to share:

Introductory Courses

A stilyzed representation of programming

Kotlin for Java Developers is a relatively short journey (it lasts 161 minutes) to learn the basics of Kotlin through the development of card games for Android. The course is meant to introduce Android developers to Kotlin and help them get started or evaluate the adoption of Kotlin in their professional life.

Learning Kotlin for Android Development is a short one-hour course for learning the basics of Kotlin and exploring how it can help in your Android development, all by creating a simple app for Android. It also touches on the setup of Android development (eg. creating an emulator) and converting a Java app in Kotlin.

Courses For (Java) Developers

A cup, usually a symbol of Java, with a Kotlin logo

These are course for developers, especially experienced Java programmers. They can be basics or in-depth, but usually takes advantage of previous Java knowledge to skip most of the theory.

Kotlin Programming By O’Reilly

Introduction to Kotlin Programming and Advanced Kotlin Programming are two O’Reilly courses from Hadi Hariri, VP of Developer Advocacy at JetBrains, the company that created Kotlin. The courses do not strictly require a knowledge of Java, in the first one there is even short introduction to the JVM. Having said that, there is one part dedicated to the interoperability with Java, so if you know Java or any other JVM language you are going to get the most out of it.

In any case you need to be a developer. The course covers well how to do things in Kotlin, but not the theory behind the features. The first course covers the basics, that you will use in your everyday job: everything from conditional expressions to the fundamentals of Kotlin lambdas. The second one covers advanced topics like metaprogramming, delegation  and deeper examination of Generics and Functions.

Introduction To Kotlin

Despite the name, Introduction to Kotlin it is a relatively in-depth (5 hours) course to explain Kotlin to Java developers. Technically the overview says only that Java knowledge is beneficial, but there are comparison to Java here and there. Furthermore many reviews laments a very fast pace, so probably Java experience is needed to have the best experience.

The course is essentially divided in two parts: the first covers Kotlin syntax and how to use all its features, even higher-order functions; the second one is about the advanced usage of Kotlin collections and reflection.

The second part seems a bit rushed, I mean there is even a section titled Odds & Ends. On the other hand the section on the usage of the Collections functions of the standard library can be quite useful especially if you come form Java and you have never used a language like C# (with LINQ).

Kotlin Fundamentals

Kotlin Fundamentals is a good course for experienced Java developers with a puzzling title. In fact the course explore all you need to know in your professional life to use of Kotlin in the best way, especially interacting with Java. For instance there is a few sections on how functional interfaces and nullability of Kotlin interact with Java. A more apt title would have been something like Real Life Kotlin For Java Developers.

Having said that, the course offers brief introduction to the topic at hand before developing it. It also focuses on pragmatic problems with can be useful for professional developers and, of course, puzzling for beginners. For instance, there is a section titled Working with Infinite Collections that explains Sequences in Kotlin, an expert would know why it makes sense to care about the issue, while a beginner would ask himself what infinite means.

Building Spring Boot Applications with the Kotlin Programming Language

Building Spring Boot Applications with the Kotlin Programming Language is a course for experienced Java developers. In fact the course will continually reference Java concepts and features to compare them with Kotlin ones. This means that in order to get the most out of it, it is better not just to know Java, but to also have used it in production. This can be great for the intended audience, because there is no time lost for leaning the basics: you frequently get right to the point and get the information you need.

The course is essentially divide in two parts: the first one explains the individual features of Kotlin, the second one explains how to integrate or replace Java features and libraries with Kotlin. For instance, there are sections for Hibernate and testing in Kotlin is compared with testing with JUnit. There is obviously a large section on Spring Boot, but it is not seem the central piece of the course, as it might seem from the tile.

The second part also talk extensively about Java interoperability and advanced topics like reflection or functional programming.

In short, it is a great choice if you use Java in production and want a course focused on helping you to migrate to Kotlin with the mindset of somebody like you. It might not be ideal for people that want to learn to think as a Kotlin user. That is because it is designed to be easy to follow for Java users, but it might not be the best design for learning Kotlin from scratch.

Kotlin Courses For Non-Developers

A clueless person in a lab coat typing on an old computer

These are course for complete beginners in programming, you should expect and hope for a lot of theory.

Kotlin For Beginners: Learn Programming With Kotlin

Kotlin for Beginners: Learn Programming With Kotlin (see note) is a course to learn programming with Kotlin starting from scratch. And with that we mean that really you do not need to know anything even about Udemy, the platform the course uses. In fact there is an introductory video to explain the features of Udemy itself (eg. how to speed-up the video, where to find the companion resources, etc.) and how to best take advantage of the course. You cannot get more beginner friendly than that.

The course will teach you both the basic features and concepts of programming, in general, and the Kotlin language, in particular. Concepts and Kotlin idioms are explained together, for instance the difference between expression and statement is explained while explaining the advanced usage of if and when. However there are also theoretical sections, for example one on binary and hexadecimal numbers.

There are quizzes and coding challenges (i.e. exercises) to help your test and practice your programming skills. The course also offers solutions accessible through GitHub. It is a nice touch and a good way to introduce a professional tool to beginners.

In terms of content, apart from the obvious basics (e.g. variables, lists, etc.), there are a few sections that covers all aspects of object-oriented programming, everything from what methods are to singletons. Both theory (eg. information hiding) and practice are explained. It is important to note that you will not find explanation of the more advanced functional features of Kotlin, such as lambdas and higher order functions.

We would like to thank the author of this course for having given us free access to it. He has also prepared a special offer for our readers, following that link you will get the course for a reduced price.

There is no affiliate marketing agreement between SuperKotlin and the author or Udemy. That is to say we do not receive any money if you purchase the course with a discount or to show you this review or for anything else.

The Essential Kotlin Programming Course (Android Developers)

The Essential Kotlin Programming Course (Android Developers) is a very in-depth course (25 hours) that explains at length the topic at hand and then also explains how it works in Kotlin. Let’s say that there is one hour introductory section that explains the features of Kotlin and what are object oriented and functional programming.

The rest of the course is equally thorough in explaining the theory and how it applies to Kotlin programming. For instance it takes its time (2 hours) to explains Kotlin Collections of the standard library: what they are, the different functions, how they relate to the corresponding Java collections…

The course is both theory and practice, not just because it explain how doing things in Kotlin, but also because there are five hours of exercise lessons. In short this course is the closest equivalent to a traditional university course. Which is great if you think that online courses tend to be too quick and pragmatic, leaving out how things works and why they work that way.

The course lacks parts about Concurrency and Metaprogramming, that are still in the works. The course explains how to use programming tools (ie. IDEs) and in particular Android Studio (including the Emulator), but apart from that there seems to be little on the specifics of Android development.

The Complete Kotlin Developer Course: Become A Pro!

The Complete Kotlin Developer Course: Become A Pro! is a good course for beginners that overpromise a bit. We mean that the course is short (4 hours) for a complete course intended to transform a beginner in a professional developer. It basically covers the basics of programming and the syntax of Kotlin: from variables to what is object oriented programming.

The course is cheap and short for a complete course, so in some sense it is the opposite of some other complete courses, but it is also very popular, so many people find it worthwhile. If you want to quickly and cheaply learn programming and understand that the course does not actually prepare you to become a professional, it can be a good choice.

Courses For PEOPLE Interested In Android

Audience cheering for the announcement of Kotlin support on Android

These are course for people that do not know anything about programming except that they want to create mobile apps for Android, probably for making money with apps. There are also courses for people that know programming, but want to learn Kotlin specifically for Android development.

Kotlin & Android Developer Masterclass – Beginner to Advanced

Kotlin & Android Developer Masterclass – Beginner to Advanced is a comprehensive course (19 hours) that teaches Kotlin in the context of Android development. The course is essentially divided in two parts: the first explains the basics of programming with Kotlin (eg. variables, functions, etc.), the second one covers Android development, everything from using Android Studio to user interfaces, databases and web services.

When it comes to content the only topic that is not explained explicitly are functional features of Kotlin, although some of them are used in practice, for instance when talking about listeners. This is not a big oversight if you only care about Android development, but it matters if you are more interested in a comprehensive Kotlin programming course.

The course could probably use an editor to review the texts for style and clarity, for instance the title of the lessons are unnecessarily complex at times and do not follow a coherent style. The actual lesson videos follow an understandable script. The organization of the course is also a bit perplexing, for example: a lesson to explain return types of functions is inside a section dedicated to object oriented programming; arrays are explained after advanced objected oriented programming.

The Complete Android Kotlin Developer

The Complete Android Kotlin Developer is a very in-depth course (26 hours) to learn programming and Android development using Kotlin. It touches so many topics that we cannot really cover them all, but in short we can say:

  • it starts by covering the basics of programming, both in theory and with Kotlin, with things such as conditional expressions up to object oriented programming
  • it continues with many example Android apps that are used to explain interaction and different layouts available in Android
  • it passes to advanced Android apps to shows how to use important programming tools like databases (SQLite and Firebase), web services and specific Android features like sensors and media player
  • it ends with complete example apps to put everything together

It is one of the longest, most expensive and most followed course for Kotlin on Udemy. It is designed to transform a normal person in a professional junior Android developer. Which means that many people want to become professional developers and they find this course good for their needs. The downside of covering so many topics is that many reviewers mentions that the rapid switch from one topics to the next can leave some people hanging. So keep that in mind.

The only thing that does not cover well is making mobile games. We think that is for the best because to cover the subject professionally it would require a whole new in-depth course and Kotlin might not be the best choice for that kind of apps. However it is relevant to note it for complete beginners. For instance given the limited support for functional programming in Java, the functional programming section is a bit limited by the Java mindset.

Kotlin for Android & Java Developers

Kotlin for Android & Java developers is course designed to help Android developers using Java to switch to Kotlin. The course is best described by the author himself:

This course is your practical hands-on introduction to the world of Kotlin. You start out learning about Kotlin itself, its principles and its benefits, then dive right into functional programming and object orientation in Kotlin. You’ll then dive into building an Android app purely in Kotlin, using powerful language features and best practices.

Peter Sommerhoff

I think this description gives a fair picture: it teaches you Kotlin with a focus on Android development. This course is divided in two sections: one about Kotlin fundamentals, the other one about development in Android.

A positive aspect of the course is that it does not follows a Java-based approach. So, it does not teach you Kotlin as if it were simply an improved Java. It teach you Kotlin, but referring to your Java knowledge.

The second section of the course does not teach you Android development from scratch: it is neither a reference, nor a guide Android development. It is a guide to Android development with Kotlin. It teaches you how to use Kotlin for Menus, Activities, SQLite, etc. but if you do not already know how these elements fits together you may get lost.

The instructor of the course is Peter Sommerhoff, the founder of CodeAlong.tv, which I think many users will find a bonus and a form of quality assurance.

In short, this course works well for Android developers that want to learn Kotlin for developing Android applications. Many people will love this focused and pragmatic approach.

When To Pick A Book, An Online Course Or In-person Training

There are four main different approaches that you could decide to take to learn a programming language:

  1. To learn on your own: using only free online resources and building your custom learning program
  2. To buy a book and follow it
  3. To get access to an online course, follow the lessons and do the exercises
  4. To attend in-person training

The option number zero does not require any monetary investment, however it is the one that requires the most time and pose the most risks, because the person could miss important subjects or using sub-optimal resources. We have already linked our list of resources to help you if you want pick this way, so let’s focus on the other three instead.

These three options offer different balance on different aspects.

  • The risk: the more supervision you have, the more you can be reassured of being on the right track, your errors can be caught sooner.
  • Time to learn: the less supervision you will get, the more you will rely on trial-and-error. It means it will take longer to really master the content.
  • Investment: the investment in term of money grows significantly with the level of supervision. A book can cost tens of euros/dollars, a MOOC could go from the tens to the hundreds of euros/dollars, while in person training will typically be in the thousands of euros/dollars
  • Access: buying books and access to MOOCs is very easy. Once you got access you can read a book everywhere, while typically you will consume a MOOC at your desk, ready to work on exercises. In person training instead requires to hire a teacher and agree on a date to deliver the course, so access is less immediate to get
Kotlin courses vs in person training vs book
Book vs MOOC vs In-person training

So what is the best solution for you to learn Kotlin?

It really depends on the value of your time and the amount of money you can afford to invest.

If you are a student with the head full of dreams and an empty wallet the answer is clear: you should just use free online resources or maybe buy a book for 20-30$. That would be a wise investment. After all, if it takes a few more months to learn Kotlin it will not make a huge difference for you.

As a freelancer or a young professional probably a MOOC is the best compromise: you get lessons from knowledgeable teachers and you typically get exercises to evaluate your progress. MOOC are also usually updated more frequently than books, so you get fresher content, in line with the evolution of Kotlin. Maybe there is also a forum where you can get answers to a few of your questions.

If you are a seasoned professional or you work at a company with an healthy business than in-person training could be the most reasonable choice for you. You cannot afford to learn by trial-and-error, you do not have the time to look for the best resources online and evaluate them. Taking a few months to learn Kotlin would have an impact on the business as projects are delayed or move on slowly. Considering the cost of an employee for a company your time is extremely expensive. Whatever can save you time justify significant investments in terms of money.

So depending on where you are in life, you can value different things and different ways to learn could make more sense for you.

Books For Self-Learners

Historically the favorite tool for learners has been a book, or many books. It is a tool that can be used both by self-learners and students in a regular course or learning institution. The advantage of learning on your own is that you can choose your own pace and pay less than a traditional course, since a book cost much less than a teacher.

The disadvantage is the lack of a person that can help you understand the material, the loneliness of the experience and the static nature of a book. A static nature means that the information can become outdated and it is always in the same form and the same pacing: a written text with a lot of repetitions to insure everybody can understand.

Learning Online: MOOC

A new tool was created and delivered through the internet that could overcome some of the limits of books: MOOC (Massive Open Online Courses). While there is not a rigid formula behind a MOOC, they usually share a few characteristics:

  • different types of videos (lessons, lectures, etc.) and content (exercises, references, etc.)
  • a minimal structure in the learning material
  • permanent access to content that is regularly updated
  • a learning community
  • a teacher available to help through asynchronous methods of communication

The learner must still be willing to put the effort and to learn the material mostly on its own. But if he encounters some problem the community or the teacher can help and they can always provide support and motivation to learn. The content is better organized, provided in different forms. For instance you can have video, test quizzes and even a short reference document. It is also usually updated regularly.

The downside of a video course is that the material is harder to search and access and the cost is higher. It is harder to search and access because it is a video and not a text, so neither humans nor software can quickly scan it. It cost more because it is more expensive to produce and a teacher is usually available to help students.

In-person Training For Learning Kotlin

A lot of devices

Apart from a few cases, usually a business need a tool that can give a definitive time frame for getting the results it needs. That is because planning is fundamental in a business: if a project must be started now, delaying it because the personnel does not have the right skills is going to cost lost revenues.

Preferably it should also be a tool that can save time by being adaptable to the specific needs of the business. There is no need to teach your developers how to make Android application in Kotlin, if you do not plan to create them. Also, a course should be based on the specific background of your personnel.

In the case of learning that tool is a traditional face-to-face course delivered by a teacher, that has experience in the subject and in teaching to professionals. We can provide that: we have courses designed for professional developers and technicians or scientists. Our courses can prepare both Java and non-Java developers to create professional software in idiomatic Kotlin. We can also teach scientists, and all other kinds of technical personnel, scripting and basic programming in Kotlin. If you are interested look at our page for Courses.

Summary

There are may ways to learn depending on where you are in life, how valuable is your time and how you prefer to learn. Online courses are a good options for many of you and we hope that this article will help you pick the right one for you. Whatever way you choose we hope you are going to learn Kotlin soon and have fun doing it.

We are not connected to any author or platform of these courses. We do not have any affiliate marketing agreement with them and we are not getting anything to review any of them.

The post Kotlin Courses: Reviews And Comparison appeared first on SuperKotlin.

Continue ReadingKotlin Courses: Reviews And Comparison

Kotlin Courses: Reviews And Comparison

You have seen the benefits Kotlin can bring to you, however you have to learn Kotlin. You can do learn it on your own, pick a book or get access to a course.

The problem is to you have to figure out which course is best for you: we have reviewed the most relevant ones and in this article we are going to give you the information you need to pick the course that is right for you.

If none of this course is what you are looking for you can still look into our list of 100+ Resources To Learn Kotlin The Right Way.

What you will find in this article?

First of all you will find the review of the courses, divided in four groups. Depending on the level at which you want to learn Kotlin, your background and if you are interested specifically for Android development you can pick one or more specific groups to investigate them further.

The following table provides a summary of the characteristics of the available courses.

Name Platform Type Length Price ($)
Kotlin for Java Developers Treehouse Introductory 02:41 25-49 (subscription)
Learning Kotlin for Android Development Lynda.com Introductory 01:01 15-25 (subscription)
Introduction to Kotlin Programming / Advanced Kotlin Programming Safari (O’Reilly) Course for developers 05:14 / 03:00 39 (subscription)
Introduction To Kotlin Udemy Course for developers 04:55 50
Kotlin Fundamentals Pluralsight Course for developers 04:47 29 (subscription)
Kotlin for Beginners: Learn Programming With Kotlin Udemy Course for non-developers 06:37 95
The Essential Kotlin Programming Course (Android Developers) Udemy Course for non-developers 25:25 150
The Complete Kotlin Developer Course: Become A Pro! Udemy Course for non-developers 04:04 30
Kotlin & Android Developer Masterclass – Beginner to Advanced Udemy Course for Android 19:43 200
The Complete Android Kotlin Developer Udemy Course for Android 26:27 200
Building Spring Boot Applications with the Kotlin Programming Language Manning Course for Developers 07:51 154.99
Kotlin for Android & Java Developers Manning Course for Android 09:18 204.99

Notes: if the price indicate a subscription it is a monthly subscription to a whole library of courses including the one reviewed; Udemy pricing varies wildly and can be lowered even by 90% during promotions; the length of a course could vary since it can be updated.

Beside helping you picking up the right course for you we have a few more considerations to share:

Introductory Courses

A stilyzed representation of programming

Kotlin for Java Developers is a relatively short journey (it lasts 161 minutes) to learn the basics of Kotlin through the development of card games for Android. The course is meant to introduce Android developers to Kotlin and help them get started or evaluate the adoption of Kotlin in their professional life.

Learning Kotlin for Android Development is a short one-hour course for learning the basics of Kotlin and exploring how it can help in your Android development, all by creating a simple app for Android. It also touches on the setup of Android development (eg. creating an emulator) and converting a Java app in Kotlin.

Courses For (Java) Developers

A cup, usually a symbol of Java, with a Kotlin logo

These are course for developers, especially experienced Java programmers. They can be basics or in-depth, but usually takes advantage of previous Java knowledge to skip most of the theory.

Kotlin Programming By O’Reilly

Introduction to Kotlin Programming and Advanced Kotlin Programming are two O’Reilly courses from Hadi Hariri, VP of Developer Advocacy at JetBrains, the company that created Kotlin. The courses do not strictly require a knowledge of Java, in the first one there is even short introduction to the JVM. Having said that, there is one part dedicated to the interoperability with Java, so if you know Java or any other JVM language you are going to get the most out of it.

In any case you need to be a developer. The course covers well how to do things in Kotlin, but not the theory behind the features. The first course covers the basics, that you will use in your everyday job: everything from conditional expressions to the fundamentals of Kotlin lambdas. The second one covers advanced topics like metaprogramming, delegation  and deeper examination of Generics and Functions.

Introduction To Kotlin

Despite the name, Introduction to Kotlin it is a relatively in-depth (5 hours) course to explain Kotlin to Java developers. Technically the overview says only that Java knowledge is beneficial, but there are comparison to Java here and there. Furthermore many reviews laments a very fast pace, so probably Java experience is needed to have the best experience.

The course is essentially divided in two parts: the first covers Kotlin syntax and how to use all its features, even higher-order functions; the second one is about the advanced usage of Kotlin collections and reflection.

The second part seems a bit rushed, I mean there is even a section titled Odds & Ends. On the other hand the section on the usage of the Collections functions of the standard library can be quite useful especially if you come form Java and you have never used a language like C# (with LINQ).

Kotlin Fundamentals

Kotlin Fundamentals is a good course for experienced Java developers with a puzzling title. In fact the course explore all you need to know in your professional life to use of Kotlin in the best way, especially interacting with Java. For instance there is a few sections on how functional interfaces and nullability of Kotlin interact with Java. A more apt title would have been something like Real Life Kotlin For Java Developers.

Having said that, the course offers brief introduction to the topic at hand before developing it. It also focuses on pragmatic problems with can be useful for professional developers and, of course, puzzling for beginners. For instance, there is a section titled Working with Infinite Collections that explains Sequences in Kotlin, an expert would know why it makes sense to care about the issue, while a beginner would ask himself what infinite means.

Building Spring Boot Applications with the Kotlin Programming Language

Building Spring Boot Applications with the Kotlin Programming Language is a course for experienced Java developers. In fact the course will continually reference Java concepts and features to compare them with Kotlin ones. This means that in order to get the most out of it, it is better not just to know Java, but to also have used it in production. This can be great for the intended audience, because there is no time lost for leaning the basics: you frequently get right to the point and get the information you need.

The course is essentially divide in two parts: the first one explains the individual features of Kotlin, the second one explains how to integrate or replace Java features and libraries with Kotlin. For instance, there are sections for Hibernate and testing in Kotlin is compared with testing with JUnit. There is obviously a large section on Spring Boot, but it is not seem the central piece of the course, as it might seem from the tile.

The second part also talk extensively about Java interoperability and advanced topics like reflection or functional programming.

In short, it is a great choice if you use Java in production and want a course focused on helping you to migrate to Kotlin with the mindset of somebody like you. It might not be ideal for people that want to learn to think as a Kotlin user. That is because it is designed to be easy to follow for Java users, but it might not be the best design for learning Kotlin from scratch.

Kotlin Courses For Non-Developers

A clueless person in a lab coat typing on an old computer

These are course for complete beginners in programming, you should expect and hope for a lot of theory.

Kotlin For Beginners: Learn Programming With Kotlin

Kotlin for Beginners: Learn Programming With Kotlin (see note) is a course to learn programming with Kotlin starting from scratch. And with that we mean that really you do not need to know anything even about Udemy, the platform the course uses. In fact there is an introductory video to explain the features of Udemy itself (eg. how to speed-up the video, where to find the companion resources, etc.) and how to best take advantage of the course. You cannot get more beginner friendly than that.

The course will teach you both the basic features and concepts of programming, in general, and the Kotlin language, in particular. Concepts and Kotlin idioms are explained together, for instance the difference between expression and statement is explained while explaining the advanced usage of if and when. However there are also theoretical sections, for example one on binary and hexadecimal numbers.

There are quizzes and coding challenges (i.e. exercises) to help your test and practice your programming skills. The course also offers solutions accessible through GitHub. It is a nice touch and a good way to introduce a professional tool to beginners.

In terms of content, apart from the obvious basics (e.g. variables, lists, etc.), there are a few sections that covers all aspects of object-oriented programming, everything from what methods are to singletons. Both theory (eg. information hiding) and practice are explained. It is important to note that you will not find explanation of the more advanced functional features of Kotlin, such as lambdas and higher order functions.

We would like to thank the author of this course for having given us free access to it. He has also prepared a special offer for our readers, following that link you will get the course for a reduced price.

There is no affiliate marketing agreement between SuperKotlin and the author or Udemy. That is to say we do not receive any money if you purchase the course with a discount or to show you this review or for anything else.

The Essential Kotlin Programming Course (Android Developers)

The Essential Kotlin Programming Course (Android Developers) is a very in-depth course (25 hours) that explains at length the topic at hand and then also explains how it works in Kotlin. Let’s say that there is one hour introductory section that explains the features of Kotlin and what are object oriented and functional programming.

The rest of the course is equally thorough in explaining the theory and how it applies to Kotlin programming. For instance it takes its time (2 hours) to explains Kotlin Collections of the standard library: what they are, the different functions, how they relate to the corresponding Java collections…

The course is both theory and practice, not just because it explain how doing things in Kotlin, but also because there are five hours of exercise lessons. In short this course is the closest equivalent to a traditional university course. Which is great if you think that online courses tend to be too quick and pragmatic, leaving out how things works and why they work that way.

The course lacks parts about Concurrency and Metaprogramming, that are still in the works. The course explains how to use programming tools (ie. IDEs) and in particular Android Studio (including the Emulator), but apart from that there seems to be little on the specifics of Android development.

The Complete Kotlin Developer Course: Become A Pro!

The Complete Kotlin Developer Course: Become A Pro! is a good course for beginners that overpromise a bit. We mean that the course is short (4 hours) for a complete course intended to transform a beginner in a professional developer. It basically covers the basics of programming and the syntax of Kotlin: from variables to what is object oriented programming.

The course is cheap and short for a complete course, so in some sense it is the opposite of some other complete courses, but it is also very popular, so many people find it worthwhile. If you want to quickly and cheaply learn programming and understand that the course does not actually prepare you to become a professional, it can be a good choice.

Courses For PEOPLE Interested In Android

Audience cheering for the announcement of Kotlin support on Android

These are course for people that do not know anything about programming except that they want to create mobile apps for Android, probably for making money with apps. There are also courses for people that know programming, but want to learn Kotlin specifically for Android development.

Kotlin & Android Developer Masterclass – Beginner to Advanced

Kotlin & Android Developer Masterclass – Beginner to Advanced is a comprehensive course (19 hours) that teaches Kotlin in the context of Android development. The course is essentially divided in two parts: the first explains the basics of programming with Kotlin (eg. variables, functions, etc.), the second one covers Android development, everything from using Android Studio to user interfaces, databases and web services.

When it comes to content the only topic that is not explained explicitly are functional features of Kotlin, although some of them are used in practice, for instance when talking about listeners. This is not a big oversight if you only care about Android development, but it matters if you are more interested in a comprehensive Kotlin programming course.

The course could probably use an editor to review the texts for style and clarity, for instance the title of the lessons are unnecessarily complex at times and do not follow a coherent style. The actual lesson videos follow an understandable script. The organization of the course is also a bit perplexing, for example: a lesson to explain return types of functions is inside a section dedicated to object oriented programming; arrays are explained after advanced objected oriented programming.

The Complete Android Kotlin Developer

The Complete Android Kotlin Developer is a very in-depth course (26 hours) to learn programming and Android development using Kotlin. It touches so many topics that we cannot really cover them all, but in short we can say:

  • it starts by covering the basics of programming, both in theory and with Kotlin, with things such as conditional expressions up to object oriented programming
  • it continues with many example Android apps that are used to explain interaction and different layouts available in Android
  • it passes to advanced Android apps to shows how to use important programming tools like databases (SQLite and Firebase), web services and specific Android features like sensors and media player
  • it ends with complete example apps to put everything together

It is one of the longest, most expensive and most followed course for Kotlin on Udemy. It is designed to transform a normal person in a professional junior Android developer. Which means that many people want to become professional developers and they find this course good for their needs. The downside of covering so many topics is that many reviewers mentions that the rapid switch from one topics to the next can leave some people hanging. So keep that in mind.

The only thing that does not cover well is making mobile games. We think that is for the best because to cover the subject professionally it would require a whole new in-depth course and Kotlin might not be the best choice for that kind of apps. However it is relevant to note it for complete beginners. For instance given the limited support for functional programming in Java, the functional programming section is a bit limited by the Java mindset.

Kotlin for Android & Java Developers

Kotlin for Android & Java developers is course designed to help Android developers using Java to switch to Kotlin. The course is best described by the author himself:

This course is your practical hands-on introduction to the world of Kotlin. You start out learning about Kotlin itself, its principles and its benefits, then dive right into functional programming and object orientation in Kotlin. You’ll then dive into building an Android app purely in Kotlin, using powerful language features and best practices.

Peter Sommerhoff

I think this description gives a fair picture: it teaches you Kotlin with a focus on Android development. This course is divided in two sections: one about Kotlin fundamentals, the other one about development in Android.

A positive aspect of the course is that it does not follows a Java-based approach. So, it does not teach you Kotlin as if it were simply an improved Java. It teach you Kotlin, but referring to your Java knowledge.

The second section of the course does not teach you Android development from scratch: it is neither a reference, nor a guide Android development. It is a guide to Android development with Kotlin. It teaches you how to use Kotlin for Menus, Activities, SQLite, etc. but if you do not already know how these elements fits together you may get lost.

The instructor of the course is Peter Sommerhoff, the founder of CodeAlong.tv, which I think many users will find a bonus and a form of quality assurance.

In short, this course works well for Android developers that want to learn Kotlin for developing Android applications. Many people will love this focused and pragmatic approach.

When To Pick A Book, An Online Course Or In-person Training

There are four main different approaches that you could decide to take to learn a programming language:

  1. To learn on your own: using only free online resources and building your custom learning program
  2. To buy a book and follow it
  3. To get access to an online course, follow the lessons and do the exercises
  4. To attend in-person training

The option number zero does not require any monetary investment, however it is the one that requires the most time and pose the most risks, because the person could miss important subjects or using sub-optimal resources. We have already linked our list of resources to help you if you want pick this way, so let’s focus on the other three instead.

These three options offer different balance on different aspects.

  • The risk: the more supervision you have, the more you can be reassured of being on the right track, your errors can be caught sooner.
  • Time to learn: the less supervision you will get, the more you will rely on trial-and-error. It means it will take longer to really master the content.
  • Investment: the investment in term of money grows significantly with the level of supervision. A book can cost tens of euros/dollars, a MOOC could go from the tens to the hundreds of euros/dollars, while in person training will typically be in the thousands of euros/dollars
  • Access: buying books and access to MOOCs is very easy. Once you got access you can read a book everywhere, while typically you will consume a MOOC at your desk, ready to work on exercises. In person training instead requires to hire a teacher and agree on a date to deliver the course, so access is less immediate to get
Kotlin courses vs in person training vs book
Book vs MOOC vs In-person training

So what is the best solution for you to learn Kotlin?

It really depends on the value of your time and the amount of money you can afford to invest.

If you are a student with the head full of dreams and an empty wallet the answer is clear: you should just use free online resources or maybe buy a book for 20-30$. That would be a wise investment. After all, if it takes a few more months to learn Kotlin it will not make a huge difference for you.

As a freelancer or a young professional probably a MOOC is the best compromise: you get lessons from knowledgeable teachers and you typically get exercises to evaluate your progress. MOOC are also usually updated more frequently than books, so you get fresher content, in line with the evolution of Kotlin. Maybe there is also a forum where you can get answers to a few of your questions.

If you are a seasoned professional or you work at a company with an healthy business than in-person training could be the most reasonable choice for you. You cannot afford to learn by trial-and-error, you do not have the time to look for the best resources online and evaluate them. Taking a few months to learn Kotlin would have an impact on the business as projects are delayed or move on slowly. Considering the cost of an employee for a company your time is extremely expensive. Whatever can save you time justify significant investments in terms of money.

So depending on where you are in life, you can value different things and different ways to learn could make more sense for you.

Books For Self-Learners

Historically the favorite tool for learners has been a book, or many books. It is a tool that can be used both by self-learners and students in a regular course or learning institution. The advantage of learning on your own is that you can choose your own pace and pay less than a traditional course, since a book cost much less than a teacher.

The disadvantage is the lack of a person that can help you understand the material, the loneliness of the experience and the static nature of a book. A static nature means that the information can become outdated and it is always in the same form and the same pacing: a written text with a lot of repetitions to insure everybody can understand.

Learning Online: MOOC

A new tool was created and delivered through the internet that could overcome some of the limits of books: MOOC (Massive Open Online Courses). While there is not a rigid formula behind a MOOC, they usually share a few characteristics:

  • different types of videos (lessons, lectures, etc.) and content (exercises, references, etc.)
  • a minimal structure in the learning material
  • permanent access to content that is regularly updated
  • a learning community
  • a teacher available to help through asynchronous methods of communication

The learner must still be willing to put the effort and to learn the material mostly on its own. But if he encounters some problem the community or the teacher can help and they can always provide support and motivation to learn. The content is better organized, provided in different forms. For instance you can have video, test quizzes and even a short reference document. It is also usually updated regularly.

The downside of a video course is that the material is harder to search and access and the cost is higher. It is harder to search and access because it is a video and not a text, so neither humans nor software can quickly scan it. It cost more because it is more expensive to produce and a teacher is usually available to help students.

In-person Training For Learning Kotlin

A lot of devices

Apart from a few cases, usually a business need a tool that can give a definitive time frame for getting the results it needs. That is because planning is fundamental in a business: if a project must be started now, delaying it because the personnel does not have the right skills is going to cost lost revenues.

Preferably it should also be a tool that can save time by being adaptable to the specific needs of the business. There is no need to teach your developers how to make Android application in Kotlin, if you do not plan to create them. Also, a course should be based on the specific background of your personnel.

In the case of learning that tool is a traditional face-to-face course delivered by a teacher, that has experience in the subject and in teaching to professionals. We can provide that: we have courses designed for professional developers and technicians or scientists. Our courses can prepare both Java and non-Java developers to create professional software in idiomatic Kotlin. We can also teach scientists, and all other kinds of technical personnel, scripting and basic programming in Kotlin. If you are interested look at our page for Courses.

Summary

There are may ways to learn depending on where you are in life, how valuable is your time and how you prefer to learn. Online courses are a good options for many of you and we hope that this article will help you pick the right one for you. Whatever way you choose we hope you are going to learn Kotlin soon and have fun doing it.

We are not connected to any author or platform of these courses. We do not have any affiliate marketing agreement with them and we are not getting anything to review any of them.

The post Kotlin Courses: Reviews And Comparison appeared first on SuperKotlin.

Continue ReadingKotlin Courses: Reviews And Comparison

Kotlin Courses: Reviews And Comparison

You have seen the benefits Kotlin can bring to you, however you have to learn Kotlin. You can do learn it on your own, pick a book or get access to a course.

The problem is to you have to figure out which course is best for you: we have reviewed the most relevant ones and in this article we are going to give you the information you need to pick the course that is right for you.

If none of this course is what you are looking for you can still look into our list of 100+ Resources To Learn Kotlin The Right Way.

What you will find in this article?

First of all you will find the review of the courses, divided in four groups. Depending on the level at which you want to learn Kotlin, your background and if you are interested specifically for Android development you can pick one or more specific groups to investigate them further.

The following table provides a summary of the characteristics of the available courses.

Name Platform Type Length Price ($)
Kotlin for Java Developers Treehouse Introductory 02:41 25-49 (subscription)
Learning Kotlin for Android Development Lynda.com Introductory 01:01 15-25 (subscription)
Introduction to Kotlin Programming / Advanced Kotlin Programming Safari (O’Reilly) Course for developers 05:14 / 03:00 39 (subscription)
Introduction To Kotlin Udemy Course for developers 04:55 50
Kotlin Fundamentals Pluralsight Course for developers 04:47 29 (subscription)
Kotlin for Beginners: Learn Programming With Kotlin Udemy Course for non-developers 06:37 95
The Essential Kotlin Programming Course (Android Developers) Udemy Course for non-developers 25:25 150
The Complete Kotlin Developer Course: Become A Pro! Udemy Course for non-developers 04:04 30
Kotlin & Android Developer Masterclass – Beginner to Advanced Udemy Course for Android 19:43 200
The Complete Android Kotlin Developer Udemy Course for Android 26:27 200
Building Spring Boot Applications with the Kotlin Programming Language Manning Course for Developers 07:51 154.99
Kotlin for Android & Java Developers Manning Course for Android 09:18 204.99

Notes: if the price indicate a subscription it is a monthly subscription to a whole library of courses including the one reviewed; Udemy pricing varies wildly and can be lowered even by 90% during promotions; the length of a course could vary since it can be updated.

Beside helping you picking up the right course for you we have a few more considerations to share:

Introductory Courses

A stilyzed representation of programming

Kotlin for Java Developers is a relatively short journey (it lasts 161 minutes) to learn the basics of Kotlin through the development of card games for Android. The course is meant to introduce Android developers to Kotlin and help them get started or evaluate the adoption of Kotlin in their professional life.

Learning Kotlin for Android Development is a short one-hour course for learning the basics of Kotlin and exploring how it can help in your Android development, all by creating a simple app for Android. It also touches on the setup of Android development (eg. creating an emulator) and converting a Java app in Kotlin.

Courses For (Java) Developers

A cup, usually a symbol of Java, with a Kotlin logo

These are course for developers, especially experienced Java programmers. They can be basics or in-depth, but usually takes advantage of previous Java knowledge to skip most of the theory.

Kotlin Programming By O’Reilly

Introduction to Kotlin Programming and Advanced Kotlin Programming are two O’Reilly courses from Hadi Hariri, VP of Developer Advocacy at JetBrains, the company that created Kotlin. The courses do not strictly require a knowledge of Java, in the first one there is even short introduction to the JVM. Having said that, there is one part dedicated to the interoperability with Java, so if you know Java or any other JVM language you are going to get the most out of it.

In any case you need to be a developer. The course covers well how to do things in Kotlin, but not the theory behind the features. The first course covers the basics, that you will use in your everyday job: everything from conditional expressions to the fundamentals of Kotlin lambdas. The second one covers advanced topics like metaprogramming, delegation  and deeper examination of Generics and Functions.

Introduction To Kotlin

Despite the name, Introduction to Kotlin it is a relatively in-depth (5 hours) course to explain Kotlin to Java developers. Technically the overview says only that Java knowledge is beneficial, but there are comparison to Java here and there. Furthermore many reviews laments a very fast pace, so probably Java experience is needed to have the best experience.

The course is essentially divided in two parts: the first covers Kotlin syntax and how to use all its features, even higher-order functions; the second one is about the advanced usage of Kotlin collections and reflection.

The second part seems a bit rushed, I mean there is even a section titled Odds & Ends. On the other hand the section on the usage of the Collections functions of the standard library can be quite useful especially if you come form Java and you have never used a language like C# (with LINQ).

Kotlin Fundamentals

Kotlin Fundamentals is a good course for experienced Java developers with a puzzling title. In fact the course explore all you need to know in your professional life to use of Kotlin in the best way, especially interacting with Java. For instance there is a few sections on how functional interfaces and nullability of Kotlin interact with Java. A more apt title would have been something like Real Life Kotlin For Java Developers.

Having said that, the course offers brief introduction to the topic at hand before developing it. It also focuses on pragmatic problems with can be useful for professional developers and, of course, puzzling for beginners. For instance, there is a section titled Working with Infinite Collections that explains Sequences in Kotlin, an expert would know why it makes sense to care about the issue, while a beginner would ask himself what infinite means.

Building Spring Boot Applications with the Kotlin Programming Language

Building Spring Boot Applications with the Kotlin Programming Language is a course for experienced Java developers. In fact the course will continually reference Java concepts and features to compare them with Kotlin ones. This means that in order to get the most out of it, it is better not just to know Java, but to also have used it in production. This can be great for the intended audience, because there is no time lost for leaning the basics: you frequently get right to the point and get the information you need.

The course is essentially divide in two parts: the first one explains the individual features of Kotlin, the second one explains how to integrate or replace Java features and libraries with Kotlin. For instance, there are sections for Hibernate and testing in Kotlin is compared with testing with JUnit. There is obviously a large section on Spring Boot, but it is not seem the central piece of the course, as it might seem from the tile.

The second part also talk extensively about Java interoperability and advanced topics like reflection or functional programming.

In short, it is a great choice if you use Java in production and want a course focused on helping you to migrate to Kotlin with the mindset of somebody like you. It might not be ideal for people that want to learn to think as a Kotlin user. That is because it is designed to be easy to follow for Java users, but it might not be the best design for learning Kotlin from scratch.

Kotlin Courses For Non-Developers

A clueless person in a lab coat typing on an old computer

These are course for complete beginners in programming, you should expect and hope for a lot of theory.

Kotlin For Beginners: Learn Programming With Kotlin

Kotlin for Beginners: Learn Programming With Kotlin (see note) is a course to learn programming with Kotlin starting from scratch. And with that we mean that really you do not need to know anything even about Udemy, the platform the course uses. In fact there is an introductory video to explain the features of Udemy itself (eg. how to speed-up the video, where to find the companion resources, etc.) and how to best take advantage of the course. You cannot get more beginner friendly than that.

The course will teach you both the basic features and concepts of programming, in general, and the Kotlin language, in particular. Concepts and Kotlin idioms are explained together, for instance the difference between expression and statement is explained while explaining the advanced usage of if and when. However there are also theoretical sections, for example one on binary and hexadecimal numbers.

There are quizzes and coding challenges (i.e. exercises) to help your test and practice your programming skills. The course also offers solutions accessible through GitHub. It is a nice touch and a good way to introduce a professional tool to beginners.

In terms of content, apart from the obvious basics (e.g. variables, lists, etc.), there are a few sections that covers all aspects of object-oriented programming, everything from what methods are to singletons. Both theory (eg. information hiding) and practice are explained. It is important to note that you will not find explanation of the more advanced functional features of Kotlin, such as lambdas and higher order functions.

We would like to thank the author of this course for having given us free access to it. He has also prepared a special offer for our readers, following that link you will get the course for a reduced price.

There is no affiliate marketing agreement between SuperKotlin and the author or Udemy. That is to say we do not receive any money if you purchase the course with a discount or to show you this review or for anything else.

The Essential Kotlin Programming Course (Android Developers)

The Essential Kotlin Programming Course (Android Developers) is a very in-depth course (25 hours) that explains at length the topic at hand and then also explains how it works in Kotlin. Let’s say that there is one hour introductory section that explains the features of Kotlin and what are object oriented and functional programming.

The rest of the course is equally thorough in explaining the theory and how it applies to Kotlin programming. For instance it takes its time (2 hours) to explains Kotlin Collections of the standard library: what they are, the different functions, how they relate to the corresponding Java collections…

The course is both theory and practice, not just because it explain how doing things in Kotlin, but also because there are five hours of exercise lessons. In short this course is the closest equivalent to a traditional university course. Which is great if you think that online courses tend to be too quick and pragmatic, leaving out how things works and why they work that way.

The course lacks parts about Concurrency and Metaprogramming, that are still in the works. The course explains how to use programming tools (ie. IDEs) and in particular Android Studio (including the Emulator), but apart from that there seems to be little on the specifics of Android development.

The Complete Kotlin Developer Course: Become A Pro!

The Complete Kotlin Developer Course: Become A Pro! is a good course for beginners that overpromise a bit. We mean that the course is short (4 hours) for a complete course intended to transform a beginner in a professional developer. It basically covers the basics of programming and the syntax of Kotlin: from variables to what is object oriented programming.

The course is cheap and short for a complete course, so in some sense it is the opposite of some other complete courses, but it is also very popular, so many people find it worthwhile. If you want to quickly and cheaply learn programming and understand that the course does not actually prepare you to become a professional, it can be a good choice.

Courses For PEOPLE Interested In Android

Audience cheering for the announcement of Kotlin support on Android

These are course for people that do not know anything about programming except that they want to create mobile apps for Android, probably for making money with apps. There are also courses for people that know programming, but want to learn Kotlin specifically for Android development.

Kotlin & Android Developer Masterclass – Beginner to Advanced

Kotlin & Android Developer Masterclass – Beginner to Advanced is a comprehensive course (19 hours) that teaches Kotlin in the context of Android development. The course is essentially divided in two parts: the first explains the basics of programming with Kotlin (eg. variables, functions, etc.), the second one covers Android development, everything from using Android Studio to user interfaces, databases and web services.

When it comes to content the only topic that is not explained explicitly are functional features of Kotlin, although some of them are used in practice, for instance when talking about listeners. This is not a big oversight if you only care about Android development, but it matters if you are more interested in a comprehensive Kotlin programming course.

The course could probably use an editor to review the texts for style and clarity, for instance the title of the lessons are unnecessarily complex at times and do not follow a coherent style. The actual lesson videos follow an understandable script. The organization of the course is also a bit perplexing, for example: a lesson to explain return types of functions is inside a section dedicated to object oriented programming; arrays are explained after advanced objected oriented programming.

The Complete Android Kotlin Developer

The Complete Android Kotlin Developer is a very in-depth course (26 hours) to learn programming and Android development using Kotlin. It touches so many topics that we cannot really cover them all, but in short we can say:

  • it starts by covering the basics of programming, both in theory and with Kotlin, with things such as conditional expressions up to object oriented programming
  • it continues with many example Android apps that are used to explain interaction and different layouts available in Android
  • it passes to advanced Android apps to shows how to use important programming tools like databases (SQLite and Firebase), web services and specific Android features like sensors and media player
  • it ends with complete example apps to put everything together

It is one of the longest, most expensive and most followed course for Kotlin on Udemy. It is designed to transform a normal person in a professional junior Android developer. Which means that many people want to become professional developers and they find this course good for their needs. The downside of covering so many topics is that many reviewers mentions that the rapid switch from one topics to the next can leave some people hanging. So keep that in mind.

The only thing that does not cover well is making mobile games. We think that is for the best because to cover the subject professionally it would require a whole new in-depth course and Kotlin might not be the best choice for that kind of apps. However it is relevant to note it for complete beginners. For instance given the limited support for functional programming in Java, the functional programming section is a bit limited by the Java mindset.

Kotlin for Android & Java Developers

Kotlin for Android & Java developers is course designed to help Android developers using Java to switch to Kotlin. The course is best described by the author himself:

This course is your practical hands-on introduction to the world of Kotlin. You start out learning about Kotlin itself, its principles and its benefits, then dive right into functional programming and object orientation in Kotlin. You’ll then dive into building an Android app purely in Kotlin, using powerful language features and best practices.

Peter Sommerhoff

I think this description gives a fair picture: it teaches you Kotlin with a focus on Android development. This course is divided in two sections: one about Kotlin fundamentals, the other one about development in Android.

A positive aspect of the course is that it does not follows a Java-based approach. So, it does not teach you Kotlin as if it were simply an improved Java. It teach you Kotlin, but referring to your Java knowledge.

The second section of the course does not teach you Android development from scratch: it is neither a reference, nor a guide Android development. It is a guide to Android development with Kotlin. It teaches you how to use Kotlin for Menus, Activities, SQLite, etc. but if you do not already know how these elements fits together you may get lost.

The instructor of the course is Peter Sommerhoff, the founder of CodeAlong.tv, which I think many users will find a bonus and a form of quality assurance.

In short, this course works well for Android developers that want to learn Kotlin for developing Android applications. Many people will love this focused and pragmatic approach.

When To Pick A Book, An Online Course Or In-person Training

There are four main different approaches that you could decide to take to learn a programming language:

  1. To learn on your own: using only free online resources and building your custom learning program
  2. To buy a book and follow it
  3. To get access to an online course, follow the lessons and do the exercises
  4. To attend in-person training

The option number zero does not require any monetary investment, however it is the one that requires the most time and pose the most risks, because the person could miss important subjects or using sub-optimal resources. We have already linked our list of resources to help you if you want pick this way, so let’s focus on the other three instead.

These three options offer different balance on different aspects.

  • The risk: the more supervision you have, the more you can be reassured of being on the right track, your errors can be caught sooner.
  • Time to learn: the less supervision you will get, the more you will rely on trial-and-error. It means it will take longer to really master the content.
  • Investment: the investment in term of money grows significantly with the level of supervision. A book can cost tens of euros/dollars, a MOOC could go from the tens to the hundreds of euros/dollars, while in person training will typically be in the thousands of euros/dollars
  • Access: buying books and access to MOOCs is very easy. Once you got access you can read a book everywhere, while typically you will consume a MOOC at your desk, ready to work on exercises. In person training instead requires to hire a teacher and agree on a date to deliver the course, so access is less immediate to get
Kotlin courses vs in person training vs book
Book vs MOOC vs In-person training

So what is the best solution for you to learn Kotlin?

It really depends on the value of your time and the amount of money you can afford to invest.

If you are a student with the head full of dreams and an empty wallet the answer is clear: you should just use free online resources or maybe buy a book for 20-30$. That would be a wise investment. After all, if it takes a few more months to learn Kotlin it will not make a huge difference for you.

As a freelancer or a young professional probably a MOOC is the best compromise: you get lessons from knowledgeable teachers and you typically get exercises to evaluate your progress. MOOC are also usually updated more frequently than books, so you get fresher content, in line with the evolution of Kotlin. Maybe there is also a forum where you can get answers to a few of your questions.

If you are a seasoned professional or you work at a company with an healthy business than in-person training could be the most reasonable choice for you. You cannot afford to learn by trial-and-error, you do not have the time to look for the best resources online and evaluate them. Taking a few months to learn Kotlin would have an impact on the business as projects are delayed or move on slowly. Considering the cost of an employee for a company your time is extremely expensive. Whatever can save you time justify significant investments in terms of money.

So depending on where you are in life, you can value different things and different ways to learn could make more sense for you.

Books For Self-Learners

Historically the favorite tool for learners has been a book, or many books. It is a tool that can be used both by self-learners and students in a regular course or learning institution. The advantage of learning on your own is that you can choose your own pace and pay less than a traditional course, since a book cost much less than a teacher.

The disadvantage is the lack of a person that can help you understand the material, the loneliness of the experience and the static nature of a book. A static nature means that the information can become outdated and it is always in the same form and the same pacing: a written text with a lot of repetitions to insure everybody can understand.

Learning Online: MOOC

A new tool was created and delivered through the internet that could overcome some of the limits of books: MOOC (Massive Open Online Courses). While there is not a rigid formula behind a MOOC, they usually share a few characteristics:

  • different types of videos (lessons, lectures, etc.) and content (exercises, references, etc.)
  • a minimal structure in the learning material
  • permanent access to content that is regularly updated
  • a learning community
  • a teacher available to help through asynchronous methods of communication

The learner must still be willing to put the effort and to learn the material mostly on its own. But if he encounters some problem the community or the teacher can help and they can always provide support and motivation to learn. The content is better organized, provided in different forms. For instance you can have video, test quizzes and even a short reference document. It is also usually updated regularly.

The downside of a video course is that the material is harder to search and access and the cost is higher. It is harder to search and access because it is a video and not a text, so neither humans nor software can quickly scan it. It cost more because it is more expensive to produce and a teacher is usually available to help students.

In-person Training For Learning Kotlin

A lot of devices

Apart from a few cases, usually a business need a tool that can give a definitive time frame for getting the results it needs. That is because planning is fundamental in a business: if a project must be started now, delaying it because the personnel does not have the right skills is going to cost lost revenues.

Preferably it should also be a tool that can save time by being adaptable to the specific needs of the business. There is no need to teach your developers how to make Android application in Kotlin, if you do not plan to create them. Also, a course should be based on the specific background of your personnel.

In the case of learning that tool is a traditional face-to-face course delivered by a teacher, that has experience in the subject and in teaching to professionals. We can provide that: we have courses designed for professional developers and technicians or scientists. Our courses can prepare both Java and non-Java developers to create professional software in idiomatic Kotlin. We can also teach scientists, and all other kinds of technical personnel, scripting and basic programming in Kotlin. If you are interested look at our page for Courses.

Summary

There are may ways to learn depending on where you are in life, how valuable is your time and how you prefer to learn. Online courses are a good options for many of you and we hope that this article will help you pick the right one for you. Whatever way you choose we hope you are going to learn Kotlin soon and have fun doing it.

We are not connected to any author or platform of these courses. We do not have any affiliate marketing agreement with them and we are not getting anything to review any of them.

The post Kotlin Courses: Reviews And Comparison appeared first on SuperKotlin.

Continue ReadingKotlin Courses: Reviews And Comparison

Kotlin Courses: Reviews And Comparison

You have seen the benefits Kotlin can bring to you, however you have to learn Kotlin. You can do learn it on your own, pick a book or get access to a course.

The problem is to you have to figure out which course is best for you: we have reviewed the most relevant ones and in this article we are going to give you the information you need to pick the course that is right for you.

If none of this course is what you are looking for you can still look into our list of 100+ Resources To Learn Kotlin The Right Way.

What you will find in this article?

First of all you will find the review of the courses, divided in four groups. Depending on the level at which you want to learn Kotlin, your background and if you are interested specifically for Android development you can pick one or more specific groups to investigate them further.

The following table provides a summary of the characteristics of the available courses.

Name Platform Type Length Price ($)
Kotlin for Java Developers Treehouse Introductory 02:41 25-49 (subscription)
Learning Kotlin for Android Development Lynda.com Introductory 01:01 15-25 (subscription)
Introduction to Kotlin Programming / Advanced Kotlin Programming Safari (O’Reilly) Course for developers 05:14 / 03:00 39 (subscription)
Introduction To Kotlin Udemy Course for developers 04:55 50
Kotlin Fundamentals Pluralsight Course for developers 04:47 29 (subscription)
Kotlin for Beginners: Learn Programming With Kotlin Udemy Course for non-developers 06:37 95
The Essential Kotlin Programming Course (Android Developers) Udemy Course for non-developers 25:25 150
The Complete Kotlin Developer Course: Become A Pro! Udemy Course for non-developers 04:04 30
Kotlin & Android Developer Masterclass – Beginner to Advanced Udemy Course for Android 19:43 200
The Complete Android Kotlin Developer Udemy Course for Android 26:27 200
Building Spring Boot Applications with the Kotlin Programming Language Manning Course for Developers 07:51 154.99
Kotlin for Android & Java Developers Manning Course for Android 09:18 204.99

Notes: if the price indicate a subscription it is a monthly subscription to a whole library of courses including the one reviewed; Udemy pricing varies wildly and can be lowered even by 90% during promotions; the length of a course could vary since it can be updated.

Beside helping you picking up the right course for you we have a few more considerations to share:

Introductory Courses

A stilyzed representation of programming

Kotlin for Java Developers is a relatively short journey (it lasts 161 minutes) to learn the basics of Kotlin through the development of card games for Android. The course is meant to introduce Android developers to Kotlin and help them get started or evaluate the adoption of Kotlin in their professional life.

Learning Kotlin for Android Development is a short one-hour course for learning the basics of Kotlin and exploring how it can help in your Android development, all by creating a simple app for Android. It also touches on the setup of Android development (eg. creating an emulator) and converting a Java app in Kotlin.

Courses For (Java) Developers

A cup, usually a symbol of Java, with a Kotlin logo

These are course for developers, especially experienced Java programmers. They can be basics or in-depth, but usually takes advantage of previous Java knowledge to skip most of the theory.

Kotlin Programming By O’Reilly

Introduction to Kotlin Programming and Advanced Kotlin Programming are two O’Reilly courses from Hadi Hariri, VP of Developer Advocacy at JetBrains, the company that created Kotlin. The courses do not strictly require a knowledge of Java, in the first one there is even short introduction to the JVM. Having said that, there is one part dedicated to the interoperability with Java, so if you know Java or any other JVM language you are going to get the most out of it.

In any case you need to be a developer. The course covers well how to do things in Kotlin, but not the theory behind the features. The first course covers the basics, that you will use in your everyday job: everything from conditional expressions to the fundamentals of Kotlin lambdas. The second one covers advanced topics like metaprogramming, delegation  and deeper examination of Generics and Functions.

Introduction To Kotlin

Despite the name, Introduction to Kotlin it is a relatively in-depth (5 hours) course to explain Kotlin to Java developers. Technically the overview says only that Java knowledge is beneficial, but there are comparison to Java here and there. Furthermore many reviews laments a very fast pace, so probably Java experience is needed to have the best experience.

The course is essentially divided in two parts: the first covers Kotlin syntax and how to use all its features, even higher-order functions; the second one is about the advanced usage of Kotlin collections and reflection.

The second part seems a bit rushed, I mean there is even a section titled Odds & Ends. On the other hand the section on the usage of the Collections functions of the standard library can be quite useful especially if you come form Java and you have never used a language like C# (with LINQ).

Kotlin Fundamentals

Kotlin Fundamentals is a good course for experienced Java developers with a puzzling title. In fact the course explore all you need to know in your professional life to use of Kotlin in the best way, especially interacting with Java. For instance there is a few sections on how functional interfaces and nullability of Kotlin interact with Java. A more apt title would have been something like Real Life Kotlin For Java Developers.

Having said that, the course offers brief introduction to the topic at hand before developing it. It also focuses on pragmatic problems with can be useful for professional developers and, of course, puzzling for beginners. For instance, there is a section titled Working with Infinite Collections that explains Sequences in Kotlin, an expert would know why it makes sense to care about the issue, while a beginner would ask himself what infinite means.

Building Spring Boot Applications with the Kotlin Programming Language

Building Spring Boot Applications with the Kotlin Programming Language is a course for experienced Java developers. In fact the course will continually reference Java concepts and features to compare them with Kotlin ones. This means that in order to get the most out of it, it is better not just to know Java, but to also have used it in production. This can be great for the intended audience, because there is no time lost for leaning the basics: you frequently get right to the point and get the information you need.

The course is essentially divide in two parts: the first one explains the individual features of Kotlin, the second one explains how to integrate or replace Java features and libraries with Kotlin. For instance, there are sections for Hibernate and testing in Kotlin is compared with testing with JUnit. There is obviously a large section on Spring Boot, but it is not seem the central piece of the course, as it might seem from the tile.

The second part also talk extensively about Java interoperability and advanced topics like reflection or functional programming.

In short, it is a great choice if you use Java in production and want a course focused on helping you to migrate to Kotlin with the mindset of somebody like you. It might not be ideal for people that want to learn to think as a Kotlin user. That is because it is designed to be easy to follow for Java users, but it might not be the best design for learning Kotlin from scratch.

Kotlin Courses For Non-Developers

A clueless person in a lab coat typing on an old computer

These are course for complete beginners in programming, you should expect and hope for a lot of theory.

Kotlin For Beginners: Learn Programming With Kotlin

Kotlin for Beginners: Learn Programming With Kotlin (see note) is a course to learn programming with Kotlin starting from scratch. And with that we mean that really you do not need to know anything even about Udemy, the platform the course uses. In fact there is an introductory video to explain the features of Udemy itself (eg. how to speed-up the video, where to find the companion resources, etc.) and how to best take advantage of the course. You cannot get more beginner friendly than that.

The course will teach you both the basic features and concepts of programming, in general, and the Kotlin language, in particular. Concepts and Kotlin idioms are explained together, for instance the difference between expression and statement is explained while explaining the advanced usage of if and when. However there are also theoretical sections, for example one on binary and hexadecimal numbers.

There are quizzes and coding challenges (i.e. exercises) to help your test and practice your programming skills. The course also offers solutions accessible through GitHub. It is a nice touch and a good way to introduce a professional tool to beginners.

In terms of content, apart from the obvious basics (e.g. variables, lists, etc.), there are a few sections that covers all aspects of object-oriented programming, everything from what methods are to singletons. Both theory (eg. information hiding) and practice are explained. It is important to note that you will not find explanation of the more advanced functional features of Kotlin, such as lambdas and higher order functions.

We would like to thank the author of this course for having given us free access to it. He has also prepared a special offer for our readers, following that link you will get the course for a reduced price.

There is no affiliate marketing agreement between SuperKotlin and the author or Udemy. That is to say we do not receive any money if you purchase the course with a discount or to show you this review or for anything else.

The Essential Kotlin Programming Course (Android Developers)

The Essential Kotlin Programming Course (Android Developers) is a very in-depth course (25 hours) that explains at length the topic at hand and then also explains how it works in Kotlin. Let’s say that there is one hour introductory section that explains the features of Kotlin and what are object oriented and functional programming.

The rest of the course is equally thorough in explaining the theory and how it applies to Kotlin programming. For instance it takes its time (2 hours) to explains Kotlin Collections of the standard library: what they are, the different functions, how they relate to the corresponding Java collections…

The course is both theory and practice, not just because it explain how doing things in Kotlin, but also because there are five hours of exercise lessons. In short this course is the closest equivalent to a traditional university course. Which is great if you think that online courses tend to be too quick and pragmatic, leaving out how things works and why they work that way.

The course lacks parts about Concurrency and Metaprogramming, that are still in the works. The course explains how to use programming tools (ie. IDEs) and in particular Android Studio (including the Emulator), but apart from that there seems to be little on the specifics of Android development.

The Complete Kotlin Developer Course: Become A Pro!

The Complete Kotlin Developer Course: Become A Pro! is a good course for beginners that overpromise a bit. We mean that the course is short (4 hours) for a complete course intended to transform a beginner in a professional developer. It basically covers the basics of programming and the syntax of Kotlin: from variables to what is object oriented programming.

The course is cheap and short for a complete course, so in some sense it is the opposite of some other complete courses, but it is also very popular, so many people find it worthwhile. If you want to quickly and cheaply learn programming and understand that the course does not actually prepare you to become a professional, it can be a good choice.

Courses For PEOPLE Interested In Android

Audience cheering for the announcement of Kotlin support on Android

These are course for people that do not know anything about programming except that they want to create mobile apps for Android, probably for making money with apps. There are also courses for people that know programming, but want to learn Kotlin specifically for Android development.

Kotlin & Android Developer Masterclass – Beginner to Advanced

Kotlin & Android Developer Masterclass – Beginner to Advanced is a comprehensive course (19 hours) that teaches Kotlin in the context of Android development. The course is essentially divided in two parts: the first explains the basics of programming with Kotlin (eg. variables, functions, etc.), the second one covers Android development, everything from using Android Studio to user interfaces, databases and web services.

When it comes to content the only topic that is not explained explicitly are functional features of Kotlin, although some of them are used in practice, for instance when talking about listeners. This is not a big oversight if you only care about Android development, but it matters if you are more interested in a comprehensive Kotlin programming course.

The course could probably use an editor to review the texts for style and clarity, for instance the title of the lessons are unnecessarily complex at times and do not follow a coherent style. The actual lesson videos follow an understandable script. The organization of the course is also a bit perplexing, for example: a lesson to explain return types of functions is inside a section dedicated to object oriented programming; arrays are explained after advanced objected oriented programming.

The Complete Android Kotlin Developer

The Complete Android Kotlin Developer is a very in-depth course (26 hours) to learn programming and Android development using Kotlin. It touches so many topics that we cannot really cover them all, but in short we can say:

  • it starts by covering the basics of programming, both in theory and with Kotlin, with things such as conditional expressions up to object oriented programming
  • it continues with many example Android apps that are used to explain interaction and different layouts available in Android
  • it passes to advanced Android apps to shows how to use important programming tools like databases (SQLite and Firebase), web services and specific Android features like sensors and media player
  • it ends with complete example apps to put everything together

It is one of the longest, most expensive and most followed course for Kotlin on Udemy. It is designed to transform a normal person in a professional junior Android developer. Which means that many people want to become professional developers and they find this course good for their needs. The downside of covering so many topics is that many reviewers mentions that the rapid switch from one topics to the next can leave some people hanging. So keep that in mind.

The only thing that does not cover well is making mobile games. We think that is for the best because to cover the subject professionally it would require a whole new in-depth course and Kotlin might not be the best choice for that kind of apps. However it is relevant to note it for complete beginners. For instance given the limited support for functional programming in Java, the functional programming section is a bit limited by the Java mindset.

Kotlin for Android & Java Developers

Kotlin for Android & Java developers is course designed to help Android developers using Java to switch to Kotlin. The course is best described by the author himself:

This course is your practical hands-on introduction to the world of Kotlin. You start out learning about Kotlin itself, its principles and its benefits, then dive right into functional programming and object orientation in Kotlin. You’ll then dive into building an Android app purely in Kotlin, using powerful language features and best practices.

Peter Sommerhoff

I think this description gives a fair picture: it teaches you Kotlin with a focus on Android development. This course is divided in two sections: one about Kotlin fundamentals, the other one about development in Android.

A positive aspect of the course is that it does not follows a Java-based approach. So, it does not teach you Kotlin as if it were simply an improved Java. It teach you Kotlin, but referring to your Java knowledge.

The second section of the course does not teach you Android development from scratch: it is neither a reference, nor a guide Android development. It is a guide to Android development with Kotlin. It teaches you how to use Kotlin for Menus, Activities, SQLite, etc. but if you do not already know how these elements fits together you may get lost.

The instructor of the course is Peter Sommerhoff, the founder of CodeAlong.tv, which I think many users will find a bonus and a form of quality assurance.

In short, this course works well for Android developers that want to learn Kotlin for developing Android applications. Many people will love this focused and pragmatic approach.

When To Pick A Book, An Online Course Or In-person Training

There are four main different approaches that you could decide to take to learn a programming language:

  1. To learn on your own: using only free online resources and building your custom learning program
  2. To buy a book and follow it
  3. To get access to an online course, follow the lessons and do the exercises
  4. To attend in-person training

The option number zero does not require any monetary investment, however it is the one that requires the most time and pose the most risks, because the person could miss important subjects or using sub-optimal resources. We have already linked our list of resources to help you if you want pick this way, so let’s focus on the other three instead.

These three options offer different balance on different aspects.

  • The risk: the more supervision you have, the more you can be reassured of being on the right track, your errors can be caught sooner.
  • Time to learn: the less supervision you will get, the more you will rely on trial-and-error. It means it will take longer to really master the content.
  • Investment: the investment in term of money grows significantly with the level of supervision. A book can cost tens of euros/dollars, a MOOC could go from the tens to the hundreds of euros/dollars, while in person training will typically be in the thousands of euros/dollars
  • Access: buying books and access to MOOCs is very easy. Once you got access you can read a book everywhere, while typically you will consume a MOOC at your desk, ready to work on exercises. In person training instead requires to hire a teacher and agree on a date to deliver the course, so access is less immediate to get
Kotlin courses vs in person training vs book
Book vs MOOC vs In-person training

So what is the best solution for you to learn Kotlin?

It really depends on the value of your time and the amount of money you can afford to invest.

If you are a student with the head full of dreams and an empty wallet the answer is clear: you should just use free online resources or maybe buy a book for 20-30$. That would be a wise investment. After all, if it takes a few more months to learn Kotlin it will not make a huge difference for you.

As a freelancer or a young professional probably a MOOC is the best compromise: you get lessons from knowledgeable teachers and you typically get exercises to evaluate your progress. MOOC are also usually updated more frequently than books, so you get fresher content, in line with the evolution of Kotlin. Maybe there is also a forum where you can get answers to a few of your questions.

If you are a seasoned professional or you work at a company with an healthy business than in-person training could be the most reasonable choice for you. You cannot afford to learn by trial-and-error, you do not have the time to look for the best resources online and evaluate them. Taking a few months to learn Kotlin would have an impact on the business as projects are delayed or move on slowly. Considering the cost of an employee for a company your time is extremely expensive. Whatever can save you time justify significant investments in terms of money.

So depending on where you are in life, you can value different things and different ways to learn could make more sense for you.

Books For Self-Learners

Historically the favorite tool for learners has been a book, or many books. It is a tool that can be used both by self-learners and students in a regular course or learning institution. The advantage of learning on your own is that you can choose your own pace and pay less than a traditional course, since a book cost much less than a teacher.

The disadvantage is the lack of a person that can help you understand the material, the loneliness of the experience and the static nature of a book. A static nature means that the information can become outdated and it is always in the same form and the same pacing: a written text with a lot of repetitions to insure everybody can understand.

Learning Online: MOOC

A new tool was created and delivered through the internet that could overcome some of the limits of books: MOOC (Massive Open Online Courses). While there is not a rigid formula behind a MOOC, they usually share a few characteristics:

  • different types of videos (lessons, lectures, etc.) and content (exercises, references, etc.)
  • a minimal structure in the learning material
  • permanent access to content that is regularly updated
  • a learning community
  • a teacher available to help through asynchronous methods of communication

The learner must still be willing to put the effort and to learn the material mostly on its own. But if he encounters some problem the community or the teacher can help and they can always provide support and motivation to learn. The content is better organized, provided in different forms. For instance you can have video, test quizzes and even a short reference document. It is also usually updated regularly.

The downside of a video course is that the material is harder to search and access and the cost is higher. It is harder to search and access because it is a video and not a text, so neither humans nor software can quickly scan it. It cost more because it is more expensive to produce and a teacher is usually available to help students.

In-person Training For Learning Kotlin

A lot of devices

Apart from a few cases, usually a business need a tool that can give a definitive time frame for getting the results it needs. That is because planning is fundamental in a business: if a project must be started now, delaying it because the personnel does not have the right skills is going to cost lost revenues.

Preferably it should also be a tool that can save time by being adaptable to the specific needs of the business. There is no need to teach your developers how to make Android application in Kotlin, if you do not plan to create them. Also, a course should be based on the specific background of your personnel.

In the case of learning that tool is a traditional face-to-face course delivered by a teacher, that has experience in the subject and in teaching to professionals. We can provide that: we have courses designed for professional developers and technicians or scientists. Our courses can prepare both Java and non-Java developers to create professional software in idiomatic Kotlin. We can also teach scientists, and all other kinds of technical personnel, scripting and basic programming in Kotlin. If you are interested look at our page for Courses.

Summary

There are may ways to learn depending on where you are in life, how valuable is your time and how you prefer to learn. Online courses are a good options for many of you and we hope that this article will help you pick the right one for you. Whatever way you choose we hope you are going to learn Kotlin soon and have fun doing it.

We are not connected to any author or platform of these courses. We do not have any affiliate marketing agreement with them and we are not getting anything to review any of them.

The post Kotlin Courses: Reviews And Comparison appeared first on SuperKotlin.

Continue ReadingKotlin Courses: Reviews And Comparison

End of content

No more pages to load