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 Metaprogramming12
Reflection and Runtime Features13
Testing in Kotlin14
Best Practices and Code QualityMaster 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 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