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 Syntax2
Control Flow and Functions3
Null Safety and the Type System4
Object-Oriented Programming5
Collections and Data Structures6
Functional Programming7
Exception Handling and Error Management8
Generics and Type Parameters9
Coroutines and Async Programming (Language Intro)10
Advanced Language Features11
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 SyntaxFoundation concepts, basic syntax, and getting started with Kotlin
Kotlin Introduction and Setup (K2 compiler, IntelliJ/AS)
video • 15 min
Variables and Data Types
video • 20 min
val vs var and Immutability
video • 18 min
String Templates and Operations
video • 15 min
Basic Input/Output Operations
video • 12 min
Comments and KDoc Basics
video • 10 min
Kotlin vs Java (syntax & semantics quick tour)
article • 15 min
Practice: Basic Kotlin Programs
exercise • 45 min
2
Control Flow and FunctionsControl structures, function declarations, and program flow
if Expressions and when Statements
video • 22 min
Loops: for, while, do-while
video • 18 min
Ranges and Progressions
video • 15 min
Functions: parameters, defaults, named args
video • 20 min
Single-Expression Functions
video • 12 min
Return and Jump Expressions
article • 15 min
Practice: Control Flow Exercises
exercise • 40 min
3
Null Safety and the Type SystemKotlin's null safety and core type-system features
Nullable vs Non-nullable Types
video • 20 min
Safe Calls, Elvis, and let
video • 18 min
Not-null Assertion (!!) — why to avoid it
video • 12 min
Smart Casts and is-checks
video • 20 min
Scope Functions: run, with, apply, also
video • 22 min
Type Checking & Casting, Nothing/Unit/Any quick tour
video • 18 min
Null-Safety Best Practices
article • 12 min
Practice: Null-Safety Implementation
exercise • 35 min
4
Object-Oriented ProgrammingClasses, objects, inheritance, and OOP principles in Kotlin
Classes and Objects Basics
video • 25 min
Primary & Secondary Constructors; init
video • 22 min
Properties and Custom Accessors
video • 20 min
Inheritance, open/final, and Overriding
video • 25 min
Abstract Classes and Interfaces (incl. sealed interfaces)
video • 22 min
Visibility Modifiers
video • 18 min
Data Classes & Data Objects (Kotlin 1.9+)
video • 20 min
Sealed Classes & Exhaustive when
video • 22 min
Object Declarations, Companion Objects
video • 18 min
Nested and Inner Classes
article • 15 min
Practice: OOP Design Patterns
exercise • 60 min
5
Collections and Data StructuresWorking with collections, sequences, and data manipulation
Arrays and Array Operations
video • 18 min
Lists: Mutable vs Read-only
video • 20 min
Sets and Maps Overview
video • 22 min
Collection Operations: filter/map/reduce
video • 30 min
Sequences for Lazy Evaluation
video • 25 min
Grouping, Partitioning, Windowing
video • 18 min
Sorting and Searching
video • 20 min
Custom Collection Operations
video • 22 min
Performance Considerations & immutability tips
article • 15 min
Practice: Data Processing Pipeline
exercise • 50 min
6
Functional ProgrammingFunctional concepts, higher-order functions, and inline performance
Higher-Order Functions & Function Types
video • 25 min
Lambdas & Anonymous Functions (with receiver)
video • 22 min
Closures and Captured Variables
video • 18 min
inline/noinline/crossinline & performance
video • 22 min
Function Composition & Partial Application
video • 20 min
Tail Recursion (tailrec)
video • 18 min
Functional Patterns in Kotlin (Option/Result style)
article • 18 min
Practice: FP Challenges
exercise • 55 min
7
Exception Handling and Error ManagementExceptions, Result type, and defensive programming
Exception Hierarchy in Kotlin
video • 18 min
try/catch/finally Patterns
video • 20 min
Throwing & Custom Exceptions
video • 15 min
Result & runCatching; error mapping
video • 22 min
Best Practices (checked vs unchecked mindset)
video • 18 min
Defensive Programming Techniques
article • 15 min
Practice: Robust Error Handling
exercise • 35 min
8
Generics and Type ParametersGeneric programming, constraints, and variance
Generic Classes and Functions
video • 25 min
Type Parameters and where-Constraints
video • 22 min
Variance: in/out (use-site & declaration-site)
video • 30 min
Star Projections & Type Projections
video • 18 min
Reified Type Parameters & inline
video • 20 min
Type Inference tips & pitfalls
video • 15 min
Best Practices with Generics
article • 12 min
Practice: Generic Data Structures
exercise • 45 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.
Coroutines Fundamentals (suspend, builders, scopes)
video • 20 min
Dispatchers & withContext (overview)
video • 18 min
Flows at a Glance (cold vs hot)
video • 18 min
Exceptions & Cancellation — quick rules
article • 12 min
Practice: Async tasks with structured concurrency
exercise • 45 min
10
Advanced Language FeaturesModern Kotlin features you’ll actually use
Extension Functions & Properties
video • 25 min
Operator Overloading (do’s & don’ts)
video • 20 min
Delegated Properties & patterns (lazy, observable, vetoable)
video • 22 min
Type Aliases & Destructuring
video • 18 min
Value Classes (a.k.a. inline classes) + @JvmInline
video • 20 min
Contracts (opt-in): callsInPlace, returns
video • 20 min
Context Parameters (replacing context receivers) — status & examples
article • 15 min
Annotations & Annotation Processing (kapt/ksp overview)
video • 25 min
Practice: Advanced Feature Implementation
exercise • 55 min
11
DSL Creation and MetaprogrammingType-safe builders, receivers, and @DslMarker
DSL Design Principles
video • 20 min
Function Literals with Receiver
video • 25 min
Type-Safe Builders & nested scopes
video • 30 min
DSL Scope Control with @DslMarker
video • 18 min
HTML/SQL DSL Examples
video • 25 min
DSL Testing & Docs
article • 15 min
Practice: Custom DSL Development
exercise • 50 min
12
Reflection and Runtime FeaturesKotlin reflection API and runtime type info
Reflection Basics & KClass
video • 22 min
Property & Function Reflection
video • 20 min
Callable References
video • 18 min
Runtime Annotation Processing (brief)
video • 20 min
Reflection Performance & alternatives
video • 15 min
Reflection Use Cases & pitfalls
article • 12 min
Practice: Reflection-Based Utilities
exercise • 40 min
13
Testing in KotlinTesting strategies and frameworks
Unit Testing Fundamentals
video • 20 min
JUnit 5 with Kotlin
video • 22 min
kotlin.test & Assertions
video • 18 min
Mocking with MockK
video • 25 min
Property-Based Testing (Kotest/quickcheck)
video • 20 min
Testing Coroutines (pointer to the full course)
video • 20 min
TDD workflow in Kotlin
article • 15 min
Practice: Comprehensive Test Suite
exercise • 50 min
14
Best Practices and Code QualityConventions, performance, and professional practices
Kotlin Coding Conventions & Style
video • 20 min
Static Analysis with Detekt & ktlint
video • 20 min
Performance: allocations, boxing, inline/value classes
video • 25 min
Memory & GC basics (JVM/Native notes)
video • 18 min
Opt-in APIs: @RequiresOptIn / @OptIn and stability levels
video • 18 min
Kotlin Evolution & K2 Migration Tips
article • 15 min
Capstone: Advanced Kotlin Application
exercise • 90 min