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.
- Introductory courses on Kotlin: shorter than the other courses, good to get an idea of the language and get started
- Courses For (Java) Developers: if you are a developer these are the courses you are looking for
- Kotlin Courses For Non-Developers: you want to learn to program and doing so by learning Kotlin? Look into these courses
- Courses For People Interested In Android: for those who want to learn programming and/or specifically for creating Android apps in Kotlin
The following table provides a summary of the characteristics of the available courses.
|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:
- When to pick a book, an online course or in-person training: there are different ways to learn. Which is the right one for you?
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
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 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
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
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.
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:
- To learn on your own: using only free online resources and building your custom learning program
- To buy a book and follow it
- To get access to an online course, follow the lessons and do the exercises
- 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
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
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.
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.