Learn Kotlin in 134 Lessons
Written by Nikos Vaggalis   
Friday, 23 April 2021

Kotlin For Beginners is a free 9-hours long course covering the basics of Kotlin by Donn Felker and delivered on YouTube.

Donn Felker is a pro who has a lot of experience under his belt -Founder of Caster.io, author (Android Application Development for Dummies, Android Tablet Application Development for Dummies), consultant and co-host of the software developer podcast Fragmented. And, of course, he developed mobile apps such as MyFitnessPal, Groupon and more.

This kind of background tells a lot about the course's quality. But let's take a closer look.

"Kotlin Tutorial for Beginners" does what it says. But let's define what is meant with beginners.In this case, beginners are those with previous experience in programming and not someone that has none. For instance while it goes over how Kotlin uses variables, it doesn't explain the concept of what actually a variable is. But still it stays true to the "beginners" statement as it doesn't cover very advanced topics such as Coroutines, Flow etc.

To follow along the course requires the use of Intellij Community edition, and as well as teach Kotlin, the course also shows how to use the IDE from point zero in constructing Kotlin programs, leveraging its features for more productive output.

​The course can be watched as a long continuous 9-hour piece or you can pick the lesson you need from the detailed playlist which contains a whopping 134 lessons!

  • Welcome
  • Installing IntelliJ
  • Creating your First Kotlin File
  • Updating the Kotlin Plugin
  • Hello World
  • Creating a Variable
  • Creating a Read only Variable
  • Providing a Type on a Variable
  • Basic Types: Numbers
  • Basic Types: String and Char
  • ​String Interpolation and Triple Quotes
  • ​Basic Types: Boolean
  • If/Else Conditionals
  • One Line If/Else Conditional
  • Understanding Truth Tables
  • Structural Equality
  • Referential Equality
  • Nullable Types
  • Nullable Safe Calls
  • The Elvis Operator
  • Your First Kotlin Function
  • Functions with Return Types
  • Functions inside of Functions
  • Single Line Expressions
  • Function Arguments
  • Named Parameters
  • Default Function Arguments
  • IDE Refactoring to New LInes and Named Arguments
  • Multiple Args with varargs
  • Function Overloading
  • Creating your First Kotlin Class
  • Class Primary Constructors
  • Multiple Class Constructors
  • Constructor Init Blocks
  • Class Properties
  • Read Class Properties
  • Overriding a Property Getter
  • Overriding a Property Setter
  • Multiple Properties in a Class
  • Class Functions
  • Companion Objects
  • How to Create a Singleton
  • Declaring Constants
  • The lateinit modifier
  • How to Nest Classes
  • Inner Classes
  • Creating an Enum
  • Enum Constructor Parameters
  • Abstract Functions in Kotlin
  • Iterating over Enum Values
  • Adding Static Methods to Enums
  • The When Statement (Kotlin Switch Statement)
  • Exhaustive vs Non-Exhaustive When
  • Data Classes
  • Data Class with Parameterless Constructor
  • Data Class: Component1-N functions
  • Destructuring Data Classes
  • Copying Data Class Instances
  • The Pair and Triple Data Classes
  • Protected Modifier for Variables
  • Protected Modifier for Functions
  • Internal Modifier for Classes
  • Abstract Classes
  • Implementing an Abstract Class
  • Understanding Abstractions with Abstract Classes
  • What interfaces are used for

  • Creating an Interface
  • Implementing an Interface
  • Real World Interface Example
  • Anonymous Interfaces
  • Creating Arrays
  • Creating Immutable Lists
  • Creating Mutable Lists
  • Filtering a List
  • Finding Items in a List
  • Using "filterNot" on a List
  • filterTo and filterNotTo on Lists
  • Flattening Lists and Arrays
  • Combining Immutable Lists
  • List vs Map
  • Map vs FlatMap
  • Set Data Structure (a List with no Duplicates)
  • For Loops
  • While Loops
  • For Each Loops
  • Combining Lists with the Union Operator
  • Iterating over a List with an Index
  • Ranges
  • Immutable Maps
  • Mutable Maps
  • Filtering and Transforming Maps
  • Using mapNotNull on a Map
  • Generating Large Sequences
  • Measuring Performance
  • Kotlin Sequences
  • List vs Set vs Map vs Sequence
  • Kotlin Ternary Operator: Single Line If
  • Double Bang !! Operator
  • Using requireNotNull()
  • Using checkNotNull()
  • Filtering a List with filterNotNull()
  • Type Checking with 'is'
  • Casting
  • Safe Casting with 'as'
  • Generic Lists and Maps
  • Your First Generic Class
  • Throwing Exceptions
  • Creating a Custom Exception
  • Catching Exceptions with Try/Catch
  • Catching Multiple Exception Types
  • Try/Catch/Finally blocks
  • Try/Catch vs Try/Finally
  • Creating a typealias
  • Extension Functions
  • Lazy Evaluation
  • Lazy Initializer Block
  • Packages and Imports
  • Type Inference
  • Simple Lambda Expressions
  • Lambdas as Function Parameters
  • Passing Values to Lambda Function Parameters
  • Underscore Parameters in Lamba Functions
  • The 'it' Paramter in Lambda Functions
  • Calling Kotlin from Java
  • Calling Java from Kotlin
  • Calling an Extension Function from Java
  • @JvmName Annotation
  • Top Level Main Functions
  • Kotlin REPL
  • Project: Setup
  • Project: Reading Input
  • Project: Calculator Logic
  • Project: Adding Validation
  • Project: Compiling to a Jar File and Execution
  • Kotlin Koans
  • Congratulations

Despite no accompanying code being provided, the course ends up with the student having to code a trivial Calculator app.

From this list you cab see that the course is very detailed and provides value to either new or seasoned developers depending on the angle you look at it. For those already familiar with programming's concepts,they can focus on the parts of the course that make up Kotlin's extensions. For example the concept of Nullable types and Nullable safe calls, Named Parameters,Default Function Arguments, the Lateinit modifier, When expressions etc, that is the things that make the language stand out. In my case I just wanted to understand which features make Kotlin differ from the rest, hence focused on those sections alone.

It also important to note that although Donn is first a mobile dev, the course is not Android-oriented but treats Kotlin as a general-purpose language that can be used on any project. 

All in all, this is a top quality course both from the standpoint of the comprehensive material provided but also from its crisp presentation.


More Information

Kotlin Tutorial for Beginners: Playlist

Kotlin Tutorial for Beginners: 9 hours single piece

Related Articles

Udacity's Developing Android Apps with Kotlin

Introducing The Android Kotlin Developer Nanodegree

Kotlin Versus Java - A Developer's Rosetta Stone

Udacity Kotlin BootCamp for Programmers

Refactoring to Kotlin Codelab

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.


The WinterJS Javascript Runtime Is Asking For Your Attention

WinterJS is a brand new Javascript runtime by Wasmer which comes with the claim that it's the fastest of them all. Let's find out if that holds true.

Quantum Computing Prize Awarded

John Preskill, Professor of Theoretical Physics at the California Institute of Technology, is the eighth recipient of the John Stewart Bell Prize for Research on Fundamental Issues in Quantu [ ... ]

More News

raspberry pi books



or email your comment to: comments@i-programmer.info

Last Updated ( Thursday, 22 April 2021 )