🚀 Enrollments Open for Jetpack Compose Cohort 2 — 7 Days of Live Learning to Build Modern Android UIs 💚Join Now
Roadmap/Kotlin Core Programming
Beginner to Advanced

Kotlin Core Programming

Master Kotlin language fundamentals, advanced features, and modern programming paradigms from basics to expert level

14-16 weeks
18.5k students
4.9 rating
Progress0/110 lessons

Key Topics You'll Master

1
Kotlin Basics and Syntax
2
Control Flow and Functions
3
Null Safety and the Type System
4
Object-Oriented Programming
5
Collections and Data Structures
6
Functional Programming
7
Exception Handling and Error Management
8
Generics and Type Parameters
9
Coroutines and Async Programming (Language Intro)
10
Advanced Language Features
11
DSL Creation and Metaprogramming
+2
more...
Learning Outcomes
  • Write idiomatic and expressive Kotlin code
  • Master functional programming concepts in Kotlin
  • Understand and use advanced language features (value classes, contracts, context parameters)
  • Build type-safe domain-specific languages (DSLs)
  • Implement asynchronous programming with coroutines (intro here; deep dive in Coroutines course)
  • Use Kotlin reflection and metaprogramming
  • Apply design patterns and best practices
  • Develop Kotlin Multiplatform applications
Prerequisites
  • Basic programming concepts (variables, loops, functions)
  • Understanding of object-oriented programming
  • Familiarity with any programming language (Java, Python, C++, etc.)
  • Basic knowledge of software development principles
1
Kotlin Basics and Syntax
Foundation concepts, basic syntax, and getting started with Kotlin
2 weeks
Kotlin Introduction and Setup (K2 compiler, IntelliJ/AS)
video15 min
Variables and Data Types
video20 min
val vs var and Immutability
video18 min
String Templates and Operations
video15 min
Basic Input/Output Operations
video12 min
Comments and KDoc Basics
video10 min
Kotlin vs Java (syntax & semantics quick tour)
article15 min
Practice: Basic Kotlin Programs
exercise45 min
2
Control Flow and Functions
Control structures, function declarations, and program flow
1.5 weeks
if Expressions and when Statements
video22 min
Loops: for, while, do-while
video18 min
Ranges and Progressions
video15 min
Functions: parameters, defaults, named args
video20 min
Single-Expression Functions
video12 min
Return and Jump Expressions
article15 min
Practice: Control Flow Exercises
exercise40 min
3
Null Safety and the Type System
Kotlin's null safety and core type-system features
1.5 weeks
Nullable vs Non-nullable Types
video20 min
Safe Calls, Elvis, and let
video18 min
Not-null Assertion (!!) — why to avoid it
video12 min
Smart Casts and is-checks
video20 min
Scope Functions: run, with, apply, also
video22 min
Type Checking & Casting, Nothing/Unit/Any quick tour
video18 min
Null-Safety Best Practices
article12 min
Practice: Null-Safety Implementation
exercise35 min
4
Object-Oriented Programming
Classes, objects, inheritance, and OOP principles in Kotlin
2.5 weeks
Classes and Objects Basics
video25 min
Primary & Secondary Constructors; init
video22 min
Properties and Custom Accessors
video20 min
Inheritance, open/final, and Overriding
video25 min
Abstract Classes and Interfaces (incl. sealed interfaces)
video22 min
Visibility Modifiers
video18 min
Data Classes & Data Objects (Kotlin 1.9+)
video20 min
Sealed Classes & Exhaustive when
video22 min
Object Declarations, Companion Objects
video18 min
Nested and Inner Classes
article15 min
Practice: OOP Design Patterns
exercise60 min
5
Collections and Data Structures
Working with collections, sequences, and data manipulation
2 weeks
Arrays and Array Operations
video18 min
Lists: Mutable vs Read-only
video20 min
Sets and Maps Overview
video22 min
Collection Operations: filter/map/reduce
video30 min
Sequences for Lazy Evaluation
video25 min
Grouping, Partitioning, Windowing
video18 min
Sorting and Searching
video20 min
Custom Collection Operations
video22 min
Performance Considerations & immutability tips
article15 min
Practice: Data Processing Pipeline
exercise50 min
6
Functional Programming
Functional concepts, higher-order functions, and inline performance
2 weeks
Higher-Order Functions & Function Types
video25 min
Lambdas & Anonymous Functions (with receiver)
video22 min
Closures and Captured Variables
video18 min
inline/noinline/crossinline & performance
video22 min
Function Composition & Partial Application
video20 min
Tail Recursion (tailrec)
video18 min
Functional Patterns in Kotlin (Option/Result style)
article18 min
Practice: FP Challenges
exercise55 min
7
Exception Handling and Error Management
Exceptions, Result type, and defensive programming
1 week
Exception Hierarchy in Kotlin
video18 min
try/catch/finally Patterns
video20 min
Throwing & Custom Exceptions
video15 min
Result & runCatching; error mapping
video22 min
Best Practices (checked vs unchecked mindset)
video18 min
Defensive Programming Techniques
article15 min
Practice: Robust Error Handling
exercise35 min
8
Generics and Type Parameters
Generic programming, constraints, and variance
1.5 weeks
Generic Classes and Functions
video25 min
Type Parameters and where-Constraints
video22 min
Variance: in/out (use-site & declaration-site)
video30 min
Star Projections & Type Projections
video18 min
Reified Type Parameters & inline
video20 min
Type Inference tips & pitfalls
video15 min
Best Practices with Generics
article12 min
Practice: Generic Data Structures
exercise45 min
9
Coroutines and Async Programming (Language Intro)
Language-level intro so you can read coroutine code; the full deep-dive is a separate course.
1 week
Coroutines Fundamentals (suspend, builders, scopes)
video20 min
Dispatchers & withContext (overview)
video18 min
Flows at a Glance (cold vs hot)
video18 min
Exceptions & Cancellation — quick rules
article12 min
Practice: Async tasks with structured concurrency
exercise45 min
10
Advanced Language Features
Modern Kotlin features you’ll actually use
2 weeks
Extension Functions & Properties
video25 min
Operator Overloading (do’s & don’ts)
video20 min
Delegated Properties & patterns (lazy, observable, vetoable)
video22 min
Type Aliases & Destructuring
video18 min
Value Classes (a.k.a. inline classes) + @JvmInline
video20 min
Contracts (opt-in): callsInPlace, returns
video20 min
Context Parameters (replacing context receivers) — status & examples
article15 min
Annotations & Annotation Processing (kapt/ksp overview)
video25 min
Practice: Advanced Feature Implementation
exercise55 min
11
DSL Creation and Metaprogramming
Type-safe builders, receivers, and @DslMarker
1.5 weeks
DSL Design Principles
video20 min
Function Literals with Receiver
video25 min
Type-Safe Builders & nested scopes
video30 min
DSL Scope Control with @DslMarker
video18 min
HTML/SQL DSL Examples
video25 min
DSL Testing & Docs
article15 min
Practice: Custom DSL Development
exercise50 min
12
Reflection and Runtime Features
Kotlin reflection API and runtime type info
1 week
Reflection Basics & KClass
video22 min
Property & Function Reflection
video20 min
Callable References
video18 min
Runtime Annotation Processing (brief)
video20 min
Reflection Performance & alternatives
video15 min
Reflection Use Cases & pitfalls
article12 min
Practice: Reflection-Based Utilities
exercise40 min
13
Testing in Kotlin
Testing strategies and frameworks
1.5 weeks
Unit Testing Fundamentals
video20 min
JUnit 5 with Kotlin
video22 min
kotlin.test & Assertions
video18 min
Mocking with MockK
video25 min
Property-Based Testing (Kotest/quickcheck)
video20 min
Testing Coroutines (pointer to the full course)
video20 min
TDD workflow in Kotlin
article15 min
Practice: Comprehensive Test Suite
exercise50 min
14
Best Practices and Code Quality
Conventions, performance, and professional practices
1 week
Kotlin Coding Conventions & Style
video20 min
Static Analysis with Detekt & ktlint
video20 min
Performance: allocations, boxing, inline/value classes
video25 min
Memory & GC basics (JVM/Native notes)
video18 min
Opt-in APIs: @RequiresOptIn / @OptIn and stability levels
video18 min
Kotlin Evolution & K2 Migration Tips
article15 min
Capstone: Advanced Kotlin Application
exercise90 min
Android Engineers - Master Android App Development