Master Kotlin from hello world to internals

Take the ONLY Kotlin course you need to confidently use it in any environment - Android, KMP, backend or even web.

– This course is for anyone wanting to write efficient & smart Kotlin code –

You want to…

  • ... learn Kotlin from the first hello world up to understanding its internals?
  • ... confidently write efficient Kotlin code  for Android, Kotlin Multiplatform, backend or web?
  • ...always know which Kotlin language feature is the best to achieve what you want?
  • … take a deeper look at Kotlin than the official docs give you?
  • … master OOP (object-oriented programming) in software development to gain a skill relevant even across fields?
Enroll now

Developers from these companies are learning with Philipp’s Courses…

Accenture
dpd
Allegion
IBM
Jetbrains
Siemens
Check24
Lovoo

Who is this course for?

Absolute Beginners

Even if you are completely new to coding and the Kotlin world, this Masterclass will help you learn everything needed to apply it on a more advanced level.

Intermediate Developers

You already know the fundamentals of Kotlin? No problem!

This Masterclass is structured into a beginner and advanced part. In the advanced part you will go much deeper into all topics you currently just know on the surface - the compiler, generated bytecode, advanced language features, and more.

Interview Prep

Questions about Kotlin language features are among the most common questions in Android & Kotlin coding interviews.

With this Masterclass, you will confidently nail any Kotlin-related question.

Enroll now

Philipp Lackner has over 14 years of experience in the software field. Over the past years, he built a following of over 250,000 developers on social media who trust his work. With over 25,000 sold copies of his courses and 1,000h+ spent for teaching Android concepts, he already helped hundreds of thousands people to learn practical skills they can immediately apply.

He has a degree in computer science, however it didn’t go as expected. The amount of theory that was taught in university made him think about a better approach to learn what is really needed in the real world. Over time, Philipp found mentors who taught him exactly that in a practical setting. That was the game changer for his career.

After having worked for dozens of companies around the globe as a consultant, Philipp now wants to teach other Kotlin developers what really counts for becoming an outstanding developer in today’s competitive industry.

800
h
+

Of created Android content

15.000
+

Enrolled students

14
+

Years of software dev

1

The Basics

To make sure nobody feels left behind, this course covers the entire fundamentals of Kotlin. From your first hello world program over to variables, nullability, if-statements, loops, and so on.
2

Functions & Lambdas

You’ll experience a deep-dive into all sorts of functions in Kotlin, such as extension functions, overloading, scope functions and lambdas.The advanced part then extends this with inline functions, operator overloading, non-local returns and more - all with a deeper look at generated bytecode.
3

Fundamental Data Structures

Understand and utilize arrays, lists, sets, maps and other collections in Kotlin.
4

Object-Oriented Programming

Learn how to apply OOP with realistic and easy to understand examples. You will get to know all types of classes & functions as well as lots of language features for syntactic sugar.
5

Generics

Master using generics in every environment. From simple type parameters up to concepts like invariance, covariance and contravariance - everything is explained with simple, but practical examples.
6

Kotlin’s Type System

Get a deep dive into special types in Kotlin, such as Unit, Any or Nothing and experience how Kotlin’s type system works on a lower level.
7

Reflection

Understand how you can practically use reflection and when you should absolutely avoid it.
8

The Kotlin Compiler

Truly understand how the Kotlin compiler and K2 work under the hood and what its responsibilities are.
9

Kotlin Interop

Get an overview of the different targets your Kotlin code can compile to and in how far they differentiate.
Enroll now

These 200+ Kotlin videos are waiting for you

1. Introduction
    • Your guide through the course
    • What even is Kotlin?Installing
    • IntelliJ
2. First steps with Kotlin
    • Project creation
    • IDE overview
    • Console application basics
    • The main function
    • Your first hello world program

3. Variables & Strings
    • Binary number crash course
    • What is a variable?
    • var, val & the assignment operator
    • Whole numbers (Byte, Short, Int, Long)
    • Floats & Doubles
    • Booleans
    • Characters
    • Strings
    • String templates
    • Escaping characters
    • Triple quote strings
    • Naming conventions
    • Constants
4. Console Input & Nullability
    • Accepting user input
    • The null value
    • Null-safety
    • Non-null assertion operator (!!)
    • The Elvis operator
    • The null-safety operator (?.)
    • Arithmetics with nullables
5. If Conditions
    • if and else statement
    • Nullables in if-conditionselse
    • if & FizzBuzz game
    • if-statement as an expression
6. The when Expression
    • when expressionwithout subject
    • when expression with subject
    • when with type-checks
    • when as an expression

7. Arrays
    • Arrays & indices
    • Typed arrays
    • Byte arrays
    • 2D arrays
    • Strings are arrays!

8. Collections & Ranges
    • What is a collection?
    • Read-only lists
    • Mutable lists & Array lists
    • The in operator
    • Set & HashSet
    • Map & HashMap
    • Ranges
    • ..<, downTo & step
    • when expression with ranges

9. Loops
    • While loop
    • For loop
    • Iterables & for each loop
    • Do while loop
    • Nested loops
    • Break & continue
    • Labels
10.  Function Fundamentals
    • What is a function?
    • Normal functions
    • Function parameters
    • Functions with return values
    • Return without a value & early returns
    • Default parameters
    • Named parameters
    • Extension functions
    • Function overloading
    • vararg keyword
    • Recursion
    • Function naming convention

11. Exceptions & Throwables
    • What is an exception?
    • Catching exceptions with try/catch
    • The finally clause
    • Throwing exceptions
    • Try/catch as an expression
    • Throwable, Error & Exception

12. Lambda Functions
    • What is a lambda function?
    • Constructing a lambda function
    • Anonymous functions
    • Lambdas return the last line!
    • Lambdas with a receiver type
    • The invoke operator
13. Kotlin Scope Functions
    • What are scope functions?
    • Apply
    • Run
    • With
    • Let
    • Also

14. OOP Fundamentals
    • What is OOP and an object?
    • Normal class & member variables
    • Constructors & init
    • Member functions
    • Secondary constructors
    • Inheritance
    • Abstract classes
    • Default implementations & the super keyword
    • this keyword in a class
    • toString() function
    • equals() function
    • hashCode() function
    • Getters
    • Setters
    • Initialization order of classes
    • Visibility modifiers
    • The safe cast operator (as?)
    • Smart casting
    • The lateinit keyword
    • data classes
    • Destructuring
    • Encapsulation
    • Explicit backing fields
    • Interfaces
    • Interfaces vs. abstract classes
    • Sealed class
    • Sealed interface
    • Enum class
    • Objects & data objects
    • Enum classes vs. sealed classes
    • Companion objects
    • Anonymous classes
    • Nested and inner classes
    • References vs. values

15. Generics Fundamentals
    • What are generics?
    • Generics for functions
    • Generics for classes
16. Imports, packages & modules
    • Importing packages
    • Import aliases
    • Importing a library
    • Modules & the internal keyword
17. Collection Operations
    • The 3 types of collection operations
    • Terminal operations #1 - Aggregations
    • Terminal operations #2 - Element access
    • Terminal operations #3 - Reductions
    • Terminal operations #4 - Conversions
    • Transform operations #1 - Mapping
    • Transform operations #2 - Filtering
    • Transform operations #3 - Sorting
    • Transform operations #4 - Grouping / partitioning
    • Side-effect operations - forEach & onEach

18. The Kotlin Compiler
    • How the Kotlin Compiler works
    • K2
    • Kotlin JVM & Bytecode
19. Advanced functions
    • Inline functions
    • Non-local returns, break & continue
    • crossinline keyword
    • noinline keyword
    • Builder & DSL functions
    • Infix functions
    • Backtick function names
    • Operator functions
    • Nested functions
20. Reflection
    • What is reflection?
    • Adding reflection to a project
    • Practical reflection example
    • Callable references
    • Property references
    • Constructor references
    • The downsides of reflection

21. Advanced OOP Principles
    • Annotation classes & targets
    • @JvmStatic
    • Value classes
    • Functional interfaces & SAM
    • Class delegation
    • Delegated properties
    • Typealiases
    • Triple equals operator
    • Properties vs. backing fields
    • Context parameters

22. Advanced Generics
    • Type erasure & star projection
    • Type constraints & where keyword
    • reified keyword
    • Passing around class references
    • Covariance
    • Contravariance

23. Advanced Types
    • The Nothing type
    • Platform types
    • Type boxing

24. Advanced Kotlin Standard Library
    • Regular expressions
    • Sequences

25. Documentation & Comments
    • Writing good inline comments
    • TODO comments & custom comments
    • Doc comments & writing good documentation

26. Kotlin Interop
    • What do these targets define?
    • Kotlin/Native
    • Kotlin/JS
    • Kotlin/Wasm

Enroll now

“Becoming a world-class developer starts at mastering the fundamentals. Most people sadly skip them in favor of the shiniest new technologies. Those shiny objects however aren't going to pay your salary.”

Philipp Lackner
Founder of PL Coding
Master the fundamentals

Results & case studies from our students

Martin Kiper convinced his interviewers thanks to Philipp’s courses.

Martin
,
Argentina
🇦🇷
Before Learning With PL Coding:
  • Felt lost in his own projects
  • Didn't feel confident in Android interviews
After Learning With PL Coding:
  • Confidently nailing coding interviews
  • Feels confident about advanced topics like multi-module architecture
  • Convinced employers of having a higher seniority than before
Rahul
,
Canada
🇨🇦
Before Learning With PL Coding:
  • Android developer in India
  • No real hands-on experience on developing complex apps
  • Low salary
After Learning With PL Coding:
  • Got a well-paying job in Canada
  • Understood the new company's tech stack the moment he joined
  • Confidently develops real-world applications
Pavel
,
Croatia
🇭🇷
Before Learning With PL Coding:
  • Wasn't able to build his own apps
  • Felt insecure about architecture, Compose and more advanced topics
After Learning With PL Coding:
  • Approaches projects for himself and clients confidently
  • Truly understands the entire relevant Android tech stack

What people are saying
about Philipp’s courses

Real-world insights, structured learning, and expert mentorship that transform careers.

"This course brought me back on track really fast and Philipp really took care to convey general knowledge that can be applied on every Android project."

Matthias Kerat

"I have been using modularization for a long time, but I learned new cool stuff and tricks in your course that will change my way of thinking about how I should design my code."

Amer Hadi

"What’s unique about Philipp, that he cares about those who are looking for help, he answers to PM’s, I’ve never had experience like that."

Ozzy

"Your course let me also the opportunity to enhance my jetpack compose and unit test skills . So, I can consider me super satisfied. Please, don’t stop mentoring."

Vitanio Daniele

"Taking any of Philipp’s courses makes you go from 0 to almost 100 in understanding the concepts in no time. He explains the basics so well and teaches real world application use cases."

Messy Limes

"I’ve had struggles working with big projects, but after this course I feel so much more confident in my skills in building large robust apps."

Luka Luković

"I recently completed this course, and I couldn't be more thrilled with the experience! This course exceeded my expectations in every way. Philipp's real-world experience was evident. He covered everything from Ul design to integrating APls and managing databases,... Overall, this course was an incredible learning journey. I highly recommend it to anyone looking to start or advance their career in Android development!"

Erdem Kaya

"Philipp is an amazing developer who explains the most difficult topics in a way that's digestible and it stays with you. Everything is through practical examples. He's someone you'd want to go to, to understand something that you can't understand"

Omer Quadri

"This is one of the best courses for android development I have taken, not only we get to learn a lot but we also get an insight of where the industry is heading and how to approach problems and projects."

Jose Agustin Reinoso

View all
Total value:
299€
Launch Deal:
129€
Spring Sale
:
#
You save
#
Enroll now
30% On All Courses & Bundles
We celebrate our website relaunch! Discount is already applied in checkout!
07
Day
:
07
Hours
:
07
Minutes
:
07
Seconds
FAQ

Frequently
asked questions

What are the prerequisites to take this course?
Does this course also cover Coroutines & Flows?
Will I get a certificate on completion?
Is there a money back guarantee?
Do I get lifetime access?