🚀 Enrollments Open for Jetpack Compose Cohort 3 — 4 Weeks 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
12
Reflection and Runtime Features
13
Testing in Kotlin
14
Best Practices and Code Quality
Master Jetpack Compose1:1 Coaching

Stuck on advanced concepts like Side Effects or Graphics Layer? Get unblocked with a personalized session from a GDE.

Interested in the 7-Day Sprint Cohort?
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