I have the most comprehensive free Kotlin programming language course on YouTube.
From zero to hero in 9 hours.
Over 9 hours of instruction, over 130 different lessons.
This is the course that will teach you Kotlin from the ground up.
There are full college courses that will take you months to learn the Kotlin programming language and will cost you thousands of dollars in tuition, time and frustration. I have condensed this down into 9 hours of content.
Watch it here (or below).
Here’s the great thing about this free Kotlin course:
- 🧠 You don’t need to know any Kotlin to start.
- 💵 It’s free.
- 💻 You will use a free IDE (IntelliJ IDEA Community Edition)
- 🙂 You can watch it at your own pace.
- 🧱 Each lesson is taught by building on what you’ve learned before.
- 💨 There is no fluff in this course, its 100% focused on getting you up to speed quickly.
You can easily follow along and I’ll teach you the syntax, how to write functions, classes, use extension functions and much much more. The full list of lessons and links to each lesson is listed below.
What others have to say …
I'm a Java & Flutter developer, and I can say that your Kotlin tutorial is one of the best free tutorial on internet.
— NM Naufaldo (@nmnaufaldo) October 14, 2021
I knew a little bit of kotlin before I started your course but I gained a ton of valuable knowledge I have used to improve both my kotlin knowledge and apply that to our Android app
— Derril Lucci (@thederril) October 14, 2021
Its just the right amount for any enthusiastic who wants to know kotlin. You got an absolute overall idea with these videos. Thank you don, for your hard work and more importantly, you just made it free. Hats off.
— Rajib 💀 (@RShoukhin) October 14, 2021
Loved this video course, Donn has a great way of explaining concepts in a simple and clear way.
— Maskiest Mike (@mikewolfson) October 14, 2021
I'm currently taking that course on your website. It's good
— Gnv Saikiran (@gnv_kiran) August 30, 2020
I hope you enjoy. This will be the best free kotlin course you’ll encounter.
Table of Contents
0:00:00 Welcome
0:02:07 Installing IntelliJ
0:03:20 Creating your First Kotlin File
0:04:38 Updating the Kotlin Plugin
0:05:43 Hello World
0:06:49 Creating a Variable
0:10:06 Creating a Read only Variable
0:12:19 Providing a Type on a Variable
0:14:00 Basic Types: Numbers
0:21:14 Basic Types: String and Char
0:24:11 String Interpolation and Triple Quotes
0:29:26 Basic Types: Boolean
0:31:18 If/Else Conditionals
0:36:25 One Line If/Else Conditional
0:40:17 Understanding Truth Tables
0:46:08 Structural Equality
0:48:19 Referential Equality
0:50:46 Nullable Types
0:52:12 Nullable Safe Calls
0:55:48 The Elvis Operator
0:57:49 Your First Kotlin Function
1:03:29 Functions with Return Types
1:08:49 Functions inside of Functions
1:11:51 Single Line Expressions
1:15:59 Function Arguments
1:21:49 Named Parameters
1:26:14 Default Function Arguments
1:30:44 IDE Refactoring to New LInes and Named Arguments
1:32:13 Multiple Args with varargs
1:34:57 Function Overloading
1:38:30 Creating your First Kotlin Class
1:45:31 Class Primary Constructors
1:49:18 Multiple Class Constructors
1:57:18 Constructor Init Blocks
2:00:57 Class Properties
2:04:00 Read Class Properties
2:04:54 Overriding a Property Getter
2:06:35 Overriding a Property Setter
2:09:42 Multiple Properties in a Class
2:11:11 Class Functions
2:15:51 Companion Objects
2:21:32 How to Create a Singleton
2:29:09 Declaring Constants
2:36:09 The lateinit modifier
2:40:23 How to Nest Classes
2:43:57 Inner Classes
2:46:56 Creating an Enum
2:51:36 Enum Constructor Parameters
2:55:27 Abstract Functions in Kotlin
2:58:51 Iterating over Enum Values
3:00:04 Adding Static Methods to Enums
3:01:37 The When Statement (Kotlin Switch Statement)
3:08:19 Exhaustive vs Non-Exhaustive When
3:15:09 Data Classes
3:19:27 Data Class with Parameterless Constructor
3:20:40 Data Class: Component1-N functions
3:24:15 Destructuring Data Classes
3:27:47 Copying Data Class Instances
3:31:17 The Pair and Triple Data Classes
3:33:50 Protected Modifier for Variables
3:40:53 Protected Modifier for Functions
3:47:02 Internal Modifier for Classes
3:55:07 Abstract Classes
3:59:45 Implementing an Abstract Class
4:13:30 Understanding Abstractions with Abstract Classes
4:17:52 What interfaces are used for
4:26:28 Creating an Interface
4:27:32 Implementing an Interface
4:28:51 Real World Interface Example
4:35:39 Anonymous Interfaces
4:40:34 Creating Arrays
4:47:06 Creating Immutable Lists
4:52:46 Creating Mutable Lists
5:00:47 Filtering a List
5:06:28 Finding Items in a List
5:12:44 Using “filterNot” on a List
5:14:10 filterTo and filterNotTo on Lists
5:16:40 Flattening Lists and Arrays
5:19:39 Combining Immutable Lists
5:21:21 List vs Map
5:29:40 Map vs FlatMap
5:34:15 Set Data Structure (a List with no Duplicates)
5:39:05 For Loops
5:44:13 While Loops
5:47:59 For Each Loops
5:51:03 Combining Lists with the Union Operator
5:53:53 Iterating over a List with an Index
5:55:28 Ranges
5:56:59 Immutable Maps
6:00:49 Mutable Maps
6:08:29 Filtering and Transforming Maps
6:16:30 Using mapNotNull on a Map
6:20:22 Generating Large Sequences
6:23:11 Measuring Performance
6:31:33 Kotlin Sequences
6:44:19 List vs Set vs Map vs Sequence
6:49:25 Kotlin Ternary Operator: Single Line If
6:50:51 Double Bang !! Operator
6:54:58 Using requireNotNull()
6:59:04 Using checkNotNull()
7:01:05 Filtering a List with filterNotNull()
7:02:20 Type Checking with ‘is’
7:08:52 Casting
7:11:36 Safe Casting with ‘as’
7:14:58 Generic Lists and Maps
7:19:50 Your First Generic Class
7:27:06 Throwing Exceptions
7:29:54 Creating a Custom Exception
7:32:44 Catching Exceptions with Try/Catch
7:36:09 Catching Multiple Exception Types
7:40:43 Try/Catch/Finally blocks
7:44:52 Try/Catch vs Try/Finally
7:47:27 Creating a typealias
7:50:38 Extension Functions
7:59:14 Lazy Evaluation
8:02:26 Lazy Initializer Block
8:05:42 Packages and Imports
8:14:04 Type Inference
8:21:09 Simple Lambda Expressions
8:34:29 Lambdas as Function Parameters
8:40:23 Passing Values to Lambda Function Parameters
8:51:37 Underscore Parameters in Lamba Functions
8:54:24 The ‘it’ Paramter in Lambda Functions
8:56:38 Calling Kotlin from Java
8:59:39 Calling Java from Kotlin
9:04:51 Calling an Extension Function from Java
9:07:50 @JvmName Annotation
9:10:21 Top Level Main Functions
9:11:15 Kotlin REPL
9:13:52 Project: Setup
9:15:54 Project: Reading Input
9:20:16 Project: Calculator Logic
9:28:04 Project: Adding Validation
9:35:54 Project: Compiling to a Jar File and Execution
9:38:21 Kotlin Koans
9:40:09 Congratulations